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 `-Wmisleading-indentation`_, `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
241
242
243-Walloca
244--------
245**Diagnostic text:**
246
247+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
248|:warning:`warning:` |nbsp| :diagtext:`use of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability`|
249+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
250
251
252-Walloca-with-align-alignof
253---------------------------
254This diagnostic is enabled by default.
255
256**Diagnostic text:**
257
258+--------------------------------------------------------------------------------------------------------------------+
259|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
260+--------------------------------------------------------------------------------------------------------------------+
261
262
263-Wambiguous-delete
264------------------
265This diagnostic is enabled by default.
266
267**Diagnostic text:**
268
269+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
270|: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`|
271+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
272
273
274-Wambiguous-ellipsis
275--------------------
276This diagnostic is enabled by default.
277
278**Diagnostic text:**
279
280+------------------------------------------------------------------------------------------------+---------------------------------------------+
281|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
282|                                                                                                ||:diagtext:`, not a function parameter pack`||
283|                                                                                                |+-------------------------------------------+|
284|                                                                                                ||                                           ||
285|                                                                                                |+-------------------------------------------+|
286+------------------------------------------------------------------------------------------------+---------------------------------------------+
287
288
289-Wambiguous-macro
290-----------------
291This diagnostic is enabled by default.
292
293**Diagnostic text:**
294
295+-------------------------------------------------------------------------------------------+
296|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
297+-------------------------------------------------------------------------------------------+
298
299
300-Wambiguous-member-template
301---------------------------
302This diagnostic is enabled by default.
303
304**Diagnostic text:**
305
306+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
307|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
308+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
309
310
311-Wambiguous-reversed-operator
312-----------------------------
313This diagnostic is enabled by default.
314
315**Diagnostic text:**
316
317+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+
318|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 considers use of overloaded operator '`:placeholder:`A`:diagtext:`' (with operand types` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`:diagtext:`) to be ambiguous despite there being a unique best viable function`|+-----------------------------------------------+|
319|                                                                                                                                                                                                                                                                                              || |nbsp| :diagtext:`with non-reversed arguments`||
320|                                                                                                                                                                                                                                                                                              |+-----------------------------------------------+|
321|                                                                                                                                                                                                                                                                                              ||                                               ||
322|                                                                                                                                                                                                                                                                                              |+-----------------------------------------------+|
323+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+
324
325
326-Wanalyzer-incompatible-plugin
327------------------------------
328This diagnostic is enabled by default.
329
330**Diagnostic text:**
331
332+----------------------------------------------------------------------------------------------------------------------------------------+
333|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
334+----------------------------------------------------------------------------------------------------------------------------------------+
335
336
337-Wanon-enum-enum-conversion
338---------------------------
339Some of the diagnostics controlled by this flag are enabled by default.
340
341Also controls `-Wdeprecated-anon-enum-enum-conversion`_.
342
343**Diagnostic text:**
344
345+---------------------------+--------------------------------------------+-----------------------------------------------+
346|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
347|                           ||:diagtext:`arithmetic between`            ||                                               |
348|                           |+------------------------------------------+|                                               |
349|                           ||:diagtext:`bitwise operation between`     ||                                               |
350|                           |+------------------------------------------+|                                               |
351|                           ||:diagtext:`comparison of`                 ||                                               |
352|                           |+------------------------------------------+|                                               |
353|                           ||:diagtext:`conditional expression between`||                                               |
354|                           |+------------------------------------------+|                                               |
355|                           ||:diagtext:`compound assignment of`        ||                                               |
356|                           |+------------------------------------------+|                                               |
357+---------------------------+--------------------------------------------+-----------------------------------------------+
358
359
360-Wanonymous-pack-parens
361-----------------------
362This diagnostic is enabled by default.
363
364**Diagnostic text:**
365
366+---------------------------------------------------------------------------------------------------------+
367|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
368+---------------------------------------------------------------------------------------------------------+
369
370
371-Warc
372-----
373This diagnostic is enabled by default.
374
375Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
376
377
378-Warc-bridge-casts-disallowed-in-nonarc
379---------------------------------------
380This diagnostic is enabled by default.
381
382**Diagnostic text:**
383
384+-------------------------------------------------------------------------------------------------------------+
385|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
386+-------------------------------------------------------------------------------------------------------------+
387
388
389-Warc-maybe-repeated-use-of-weak
390--------------------------------
391**Diagnostic text:**
392
393+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
394|: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`|
395|                                                   ||:diagtext:`variable`         ||                                                                                          ||:diagtext:`function`||                                                                                                             |
396|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
397|                                                   ||:diagtext:`property`         ||                                                                                          ||:diagtext:`method`  ||                                                                                                             |
398|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
399|                                                   ||:diagtext:`implicit property`||                                                                                          ||:diagtext:`block`   ||                                                                                                             |
400|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
401|                                                   ||:diagtext:`instance variable`||                                                                                          ||:diagtext:`lambda`  ||                                                                                                             |
402|                                                   |+-----------------------------+|                                                                                          |+--------------------+|                                                                                                             |
403+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
404
405
406-Warc-non-pod-memaccess
407-----------------------
408This diagnostic is enabled by default.
409
410**Diagnostic text:**
411
412+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
413|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
414|                           ||:diagtext:`destination for`||                                                                                                                                         |
415|                           |+---------------------------+|                                                                                                                                         |
416|                           ||:diagtext:`source of`      ||                                                                                                                                         |
417|                           |+---------------------------+|                                                                                                                                         |
418+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
419
420
421-Warc-performSelector-leaks
422---------------------------
423This diagnostic is enabled by default.
424
425**Diagnostic text:**
426
427+-------------------------------------------------------------------------------------------------------+
428|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
429+-------------------------------------------------------------------------------------------------------+
430
431
432-Warc-repeated-use-of-weak
433--------------------------
434Also controls `-Warc-maybe-repeated-use-of-weak`_.
435
436**Diagnostic text:**
437
438+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
439|: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`|
440|                                                   ||:diagtext:`variable`         ||                                                                                      ||:diagtext:`function`||                                                                                                             |
441|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
442|                                                   ||:diagtext:`property`         ||                                                                                      ||:diagtext:`method`  ||                                                                                                             |
443|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
444|                                                   ||:diagtext:`implicit property`||                                                                                      ||:diagtext:`block`   ||                                                                                                             |
445|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
446|                                                   ||:diagtext:`instance variable`||                                                                                      ||:diagtext:`lambda`  ||                                                                                                             |
447|                                                   |+-----------------------------+|                                                                                      |+--------------------+|                                                                                                             |
448+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
449
450
451-Warc-retain-cycles
452-------------------
453This diagnostic is enabled by default.
454
455**Diagnostic text:**
456
457+------------------------------------------------------------------------------------------------------------------------------------------------------+
458|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
459+------------------------------------------------------------------------------------------------------------------------------------------------------+
460
461
462-Warc-unsafe-retained-assign
463----------------------------
464This diagnostic is enabled by default.
465
466**Diagnostic text:**
467
468+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
469|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
470|                                                        ||:diagtext:`array literal`      ||                                     ||:diagtext:`property`||                                                      |
471|                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
472|                                                        ||:diagtext:`dictionary literal` ||                                     ||:diagtext:`variable`||                                                      |
473|                                                        |+-------------------------------+|                                     |+--------------------+|                                                      |
474|                                                        ||:diagtext:`numeric literal`    ||                                     |                      |                                                      |
475|                                                        |+-------------------------------+|                                     |                      |                                                      |
476|                                                        ||:diagtext:`boxed expression`   ||                                     |                      |                                                      |
477|                                                        |+-------------------------------+|                                     |                      |                                                      |
478|                                                        ||:diagtext:`<should not happen>`||                                     |                      |                                                      |
479|                                                        |+-------------------------------+|                                     |                      |                                                      |
480|                                                        ||:diagtext:`block literal`      ||                                     |                      |                                                      |
481|                                                        |+-------------------------------+|                                     |                      |                                                      |
482+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
483
484+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
485|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
486|                                                                           ||:diagtext:`weak`              ||        ||:diagtext:`property`||                                                      |
487|                                                                           |+------------------------------+|        |+--------------------+|                                                      |
488|                                                                           ||:diagtext:`unsafe\_unretained`||        ||:diagtext:`variable`||                                                      |
489|                                                                           |+------------------------------+|        |+--------------------+|                                                      |
490+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
491
492+-----------------------------------------------------------------------------------------------------------------------------+
493|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
494+-----------------------------------------------------------------------------------------------------------------------------+
495
496
497-Wargument-outside-range
498------------------------
499This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error.
500
501**Diagnostic text:**
502
503+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
504|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`|
505+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
506
507
508-Warray-bounds
509--------------
510This diagnostic is enabled by default.
511
512**Diagnostic text:**
513
514+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
515|: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:`)`|
516|                                                                                                                                                                                             ||             ||             |
517|                                                                                                                                                                                             |+-------------+|             |
518|                                                                                                                                                                                             ||:diagtext:`s`||             |
519|                                                                                                                                                                                             |+-------------+|             |
520+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
521
522+----------------------------------------------------------------------------------------------------------------------------------+
523|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
524+----------------------------------------------------------------------------------------------------------------------------------+
525
526+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+
527|:warning:`warning:` |nbsp| :diagtext:`array argument is too small;` |nbsp| |+--------------------------------------------------------------------------+|:diagtext:`, callee requires at least` |nbsp| :placeholder:`B`|
528|                                                                           ||+------------------------------------------------------------------------+||                                                              |
529|                                                                           |||:diagtext:`contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements`|||                                                              |
530|                                                                           ||+------------------------------------------------------------------------+||                                                              |
531|                                                                           |+--------------------------------------------------------------------------+|                                                              |
532|                                                                           ||+----------------------------------------------+                          ||                                                              |
533|                                                                           |||:diagtext:`is of size` |nbsp| :placeholder:`A`|                          ||                                                              |
534|                                                                           ||+----------------------------------------------+                          ||                                                              |
535|                                                                           |+--------------------------------------------------------------------------+|                                                              |
536+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+
537
538+-----------------------------------------------------------------------------------+
539|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
540+-----------------------------------------------------------------------------------+
541
542
543-Warray-bounds-pointer-arithmetic
544---------------------------------
545**Diagnostic text:**
546
547+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
548|: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:`)`|
549|                                                                                                                                                                                                               ||             ||             |
550|                                                                                                                                                                                                               |+-------------+|             |
551|                                                                                                                                                                                                               ||:diagtext:`s`||             |
552|                                                                                                                                                                                                               |+-------------+|             |
553+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
554
555+-----------------------------------------------------------------------------------------------------------------------------------------------------+
556|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
557+-----------------------------------------------------------------------------------------------------------------------------------------------------+
558
559
560-Wasm
561-----
562Synonym for `-Wasm-operand-widths`_.
563
564
565-Wasm-operand-widths
566--------------------
567This diagnostic is enabled by default.
568
569**Diagnostic text:**
570
571+-----------------------------------------------------------------------------------------------------------------------+
572|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
573+-----------------------------------------------------------------------------------------------------------------------+
574
575
576-Wassign-enum
577-------------
578**Diagnostic text:**
579
580+---------------------------------------------------------------------------------------------------------------+
581|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
582+---------------------------------------------------------------------------------------------------------------+
583
584
585-Wassume
586--------
587This diagnostic is enabled by default.
588
589**Diagnostic text:**
590
591+-----------------------------------------------------------------------------------------------------------------------------------------+
592|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
593+-----------------------------------------------------------------------------------------------------------------------------------------+
594
595
596-Wat-protocol
597-------------
598This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
599
600-Watimport-in-framework-header
601------------------------------
602This diagnostic is enabled by default.
603
604**Diagnostic text:**
605
606+------------------------------------------------------------------------------------------------------------------------------------+
607|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`|
608+------------------------------------------------------------------------------------------------------------------------------------+
609
610
611-Watomic-alignment
612------------------
613This diagnostic is enabled by default.
614
615**Diagnostic text:**
616
617+---------------------------+------------------------+------------------------------------------------------------------------------+
618|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`|
619|                           ||:diagtext:`large`     ||                                                                              |
620|                           |+----------------------+|                                                                              |
621|                           ||:diagtext:`misaligned`||                                                                              |
622|                           |+----------------------+|                                                                              |
623+---------------------------+------------------------+------------------------------------------------------------------------------+
624
625
626-Watomic-implicit-seq-cst
627-------------------------
628**Diagnostic text:**
629
630+---------------------------------------------------------------------------------------------------------------------------------------+
631|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`|
632+---------------------------------------------------------------------------------------------------------------------------------------+
633
634
635-Watomic-memory-ordering
636------------------------
637This diagnostic is enabled by default.
638
639**Diagnostic text:**
640
641+-------------------------------------------------------------------------------------------+
642|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
643+-------------------------------------------------------------------------------------------+
644
645
646-Watomic-properties
647-------------------
648Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
649
650
651-Watomic-property-with-user-defined-accessor
652--------------------------------------------
653This diagnostic is enabled by default.
654
655**Diagnostic text:**
656
657+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
658|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
659|                                                                                                                                            ||:diagtext:`getter`||                                               ||:diagtext:`getter`||
660|                                                                                                                                            |+------------------+|                                               |+------------------+|
661|                                                                                                                                            ||:diagtext:`setter`||                                               ||:diagtext:`setter`||
662|                                                                                                                                            |+------------------+|                                               |+------------------+|
663+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
664
665
666-Wattribute-packed-for-bitfield
667-------------------------------
668This diagnostic is enabled by default.
669
670**Diagnostic text:**
671
672+-------------------------------------------------------------------------------------------------------------------------------------------------+
673|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
674+-------------------------------------------------------------------------------------------------------------------------------------------------+
675
676
677-Wattributes
678------------
679This diagnostic is enabled by default.
680
681Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
682
683
684-Wauto-disable-vptr-sanitizer
685-----------------------------
686This diagnostic is enabled by default.
687
688**Diagnostic text:**
689
690+------------------------------------------------------------------------------------------------------+
691|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
692+------------------------------------------------------------------------------------------------------+
693
694
695-Wauto-import
696-------------
697**Diagnostic text:**
698
699+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
700|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
701|                                                 ||:diagtext:`include`            ||                                                                         |
702|                                                 |+-------------------------------+|                                                                         |
703|                                                 ||:diagtext:`import`             ||                                                                         |
704|                                                 |+-------------------------------+|                                                                         |
705|                                                 ||:diagtext:`include\_next`      ||                                                                         |
706|                                                 |+-------------------------------+|                                                                         |
707|                                                 ||:diagtext:`\_\_include\_macros`||                                                                         |
708|                                                 |+-------------------------------+|                                                                         |
709+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
710
711
712-Wauto-storage-class
713--------------------
714This diagnostic is enabled by default.
715
716**Diagnostic text:**
717
718+---------------------------------------------------------------------------------------------------------------------------------------------+
719|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
720+---------------------------------------------------------------------------------------------------------------------------------------------+
721
722
723-Wauto-var-id
724-------------
725This diagnostic is enabled by default.
726
727**Diagnostic text:**
728
729+-------------------------------------------------------------------------------------------------------+
730|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
731+-------------------------------------------------------------------------------------------------------+
732
733
734-Wavailability
735--------------
736This diagnostic is enabled by default.
737
738**Diagnostic text:**
739
740+--------------------------------------------------------------------------------------------------------------+
741|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
742+--------------------------------------------------------------------------------------------------------------+
743
744+------------------------------------------------------------------------------+----------------------------------------+
745|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+|
746|                                                                              ||:diagtext:`on '+load' method`         ||
747|                                                                              |+--------------------------------------+|
748|                                                                              ||:diagtext:`with constructor attribute`||
749|                                                                              |+--------------------------------------+|
750|                                                                              ||:diagtext:`with destructor attribute` ||
751|                                                                              |+--------------------------------------+|
752+------------------------------------------------------------------------------+----------------------------------------+
753
754+---------------------------------------------------------------------------------------------------------------+
755|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`|
756+---------------------------------------------------------------------------------------------------------------+
757
758+------------------------------------------------------------------------------------------------------------------------+
759|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
760+------------------------------------------------------------------------------------------------------------------------+
761
762+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
763|: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`|
764|                                                                ||:diagtext:`introduced`||                                                                                                                                          ||:diagtext:`introduced`||                                                                                     |
765|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
766|                                                                ||:diagtext:`deprecated`||                                                                                                                                          ||:diagtext:`deprecated`||                                                                                     |
767|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
768|                                                                ||:diagtext:`obsoleted` ||                                                                                                                                          ||:diagtext:`obsoleted` ||                                                                                     |
769|                                                                |+----------------------+|                                                                                                                                          |+----------------------+|                                                                                     |
770+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
771
772+---------------------------------------------------------------------------------------------------------------------------+
773|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
774+---------------------------------------------------------------------------------------------------------------------------+
775
776+---------------------------------------------------------------------------------------+
777|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
778+---------------------------------------------------------------------------------------+
779
780+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
781|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
782|                           ||                              ||                          ||:diagtext:`introduced after` ||        ||:diagtext:`the protocol method it implements`||                                                                                                                                               |
783|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
784|                           ||:diagtext:`overriding` |nbsp| ||                          ||:diagtext:`deprecated before`||        ||:diagtext:`overridden method`                ||                                                                                                                                               |
785|                           |+------------------------------+|                          |+-----------------------------+|        |+---------------------------------------------+|                                                                                                                                               |
786|                           |                                |                          ||:diagtext:`obsoleted before` ||        |                                               |                                                                                                                                               |
787|                           |                                |                          |+-----------------------------+|        |                                               |                                                                                                                                               |
788+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
789
790+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
791|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
792|                           ||                              ||                                                                                                   ||:diagtext:`the protocol method it implements`||                                |
793|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
794|                           ||:diagtext:`overriding` |nbsp| ||                                                                                                   ||:diagtext:`its overridden method`            ||                                |
795|                           |+------------------------------+|                                                                                                   |+---------------------------------------------+|                                |
796+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
797
798
799-Wavr-rtlib-linking-quirks
800--------------------------
801This diagnostic is enabled by default.
802
803**Diagnostic text:**
804
805+----------------------------------------------------------------------------------------------------------------------------------------+
806|:warning:`warning:` |nbsp| :diagtext:`support for linking stdlibs for microcontroller '`:placeholder:`A`:diagtext:`' is not implemented`|
807+----------------------------------------------------------------------------------------------------------------------------------------+
808
809+-------------------------------------------------------------------------------------------------------------------------+
810|:warning:`warning:` |nbsp| :diagtext:`no avr-gcc installation can be found on the system, cannot link standard libraries`|
811+-------------------------------------------------------------------------------------------------------------------------+
812
813+--------------------------------------------------------------------------------------------------------------------------+
814|:warning:`warning:` |nbsp| :diagtext:`no avr-libc installation can be found on the system, cannot link standard libraries`|
815+--------------------------------------------------------------------------------------------------------------------------+
816
817+--------------------------------------------------------------------------------------------------------------------------------------------------------+
818|:warning:`warning:` |nbsp| :diagtext:`no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>`|
819+--------------------------------------------------------------------------------------------------------------------------------------------------------+
820
821+-----------------------------------------------------------------------------------------------------------------------------------------------+
822|:warning:`warning:` |nbsp| :diagtext:`standard library not linked and so no interrupt vector table or compiler runtime routines will be linked`|
823+-----------------------------------------------------------------------------------------------------------------------------------------------+
824
825
826-Wbackend-plugin
827----------------
828This diagnostic is enabled by default.
829
830**Diagnostic text:**
831
832The text of this diagnostic is not controlled by Clang.
833
834
835-Wbackslash-newline-escape
836--------------------------
837This diagnostic is enabled by default.
838
839**Diagnostic text:**
840
841+-------------------------------------------------------------------------------+
842|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
843+-------------------------------------------------------------------------------+
844
845
846-Wbad-function-cast
847-------------------
848**Diagnostic text:**
849
850+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
851|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
852+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
853
854
855-Wbinary-literal
856----------------
857Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
858
859
860-Wbind-to-temporary-copy
861------------------------
862Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
863
864**Diagnostic text:**
865
866+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
867|: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| |+---------------------+|
868|                                                                                                                                                                                              ||:diagtext:`private`  ||
869|                                                                                                                                                                                              |+---------------------+|
870|                                                                                                                                                                                              ||:diagtext:`protected`||
871|                                                                                                                                                                                              |+---------------------+|
872+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
873
874+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
875|: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`|
876|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
877|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
878|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
879|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
880|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
881|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
882|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
883|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
884|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
885|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
886|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
887|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
888|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
889|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
890|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
891|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
892|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
893|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
894|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
895|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
896|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
897|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
898|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
899|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
900+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
901
902
903-Wbinding-in-condition
904----------------------
905This diagnostic is enabled by default.
906
907**Diagnostic text:**
908
909+--------------------------------------------------------------------------------------------------------------+
910|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`|
911+--------------------------------------------------------------------------------------------------------------+
912
913
914-Wbitfield-constant-conversion
915------------------------------
916This diagnostic is enabled by default.
917
918**Diagnostic text:**
919
920+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
921|: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`|
922+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
923
924
925-Wbitfield-enum-conversion
926--------------------------
927**Diagnostic text:**
928
929+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
930|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
931+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
932
933+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
934|: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`|
935+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
936
937+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
938|: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`|
939+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
940
941
942-Wbitfield-width
943----------------
944This diagnostic is enabled by default.
945
946**Diagnostic text:**
947
948+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
949|: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`|+-------------+|
950|                                                                                                                                                                                                                   ||             ||
951|                                                                                                                                                                                                                   |+-------------+|
952|                                                                                                                                                                                                                   ||:diagtext:`s`||
953|                                                                                                                                                                                                                   |+-------------+|
954+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
955
956+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
957|: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`|+-------------+|
958|                                                                                                                                                                                                                                                        ||             ||
959|                                                                                                                                                                                                                                                        |+-------------+|
960|                                                                                                                                                                                                                                                        ||:diagtext:`s`||
961|                                                                                                                                                                                                                                                        |+-------------+|
962+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
963
964
965-Wbitwise-conditional-parentheses
966---------------------------------
967This diagnostic is enabled by default.
968
969**Diagnostic text:**
970
971+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
972|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
973+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
974
975
976-Wbitwise-op-parentheses
977------------------------
978**Diagnostic text:**
979
980+-----------------------------------------------------------------------------------------------------------+
981|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
982+-----------------------------------------------------------------------------------------------------------+
983
984
985-Wblock-capture-autoreleasing
986-----------------------------
987This diagnostic is enabled by default.
988
989**Diagnostic text:**
990
991+-----------------------------------------------------------------------------------------------------------------------------+
992|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
993+-----------------------------------------------------------------------------------------------------------------------------+
994
995
996-Wbool-conversion
997-----------------
998This diagnostic is enabled by default.
999
1000Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
1001
1002**Diagnostic text:**
1003
1004+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
1005|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
1006+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
1007
1008
1009-Wbool-conversions
1010------------------
1011Synonym for `-Wbool-conversion`_.
1012
1013
1014-Wbool-operation
1015----------------
1016This diagnostic is enabled by default.
1017
1018**Diagnostic text:**
1019
1020+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+
1021|:warning:`warning:` |nbsp| :diagtext:`bitwise negation of a boolean expression`|+-----------------------------------------------+| |nbsp| :diagtext:`did you mean logical negation?`|
1022|                                                                               ||:diagtext:`;`                                  ||                                                  |
1023|                                                                               |+-----------------------------------------------+|                                                  |
1024|                                                                               || |nbsp| :diagtext:`always evaluates to 'true';`||                                                  |
1025|                                                                               |+-----------------------------------------------+|                                                  |
1026+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+
1027
1028
1029-Wbraced-scalar-init
1030--------------------
1031This diagnostic is enabled by default.
1032
1033**Diagnostic text:**
1034
1035+------------------------------------------------------------+----------------------------+-----------------------+
1036|:warning:`warning:` |nbsp| :diagtext:`braces around` |nbsp| |+--------------------------+|:diagtext:`initializer`|
1037|                                                            ||:diagtext:`scalar` |nbsp| ||                       |
1038|                                                            |+--------------------------+|                       |
1039|                                                            ||                          ||                       |
1040|                                                            |+--------------------------+|                       |
1041+------------------------------------------------------------+----------------------------+-----------------------+
1042
1043
1044-Wbridge-cast
1045-------------
1046This diagnostic is enabled by default.
1047
1048**Diagnostic text:**
1049
1050+------------------------------------------------------------------------------------------------------------------------------------------+
1051|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
1052+------------------------------------------------------------------------------------------------------------------------------------------+
1053
1054+-------------------------------------------------------------------------------------------------------+
1055|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
1056+-------------------------------------------------------------------------------------------------------+
1057
1058
1059-Wbuiltin-assume-aligned-alignment
1060----------------------------------
1061This diagnostic is enabled by default.
1062
1063**Diagnostic text:**
1064
1065+---------------------------------------------------------------------------------------------------------------------------------------------------------+
1066|:warning:`warning:` |nbsp| :diagtext:`requested alignment must be` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes or smaller; maximum alignment assumed`|
1067+---------------------------------------------------------------------------------------------------------------------------------------------------------+
1068
1069
1070-Wbuiltin-macro-redefined
1071-------------------------
1072This diagnostic is enabled by default.
1073
1074**Diagnostic text:**
1075
1076+---------------------------------------------------------------+
1077|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
1078+---------------------------------------------------------------+
1079
1080+---------------------------------------------------------------+
1081|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
1082+---------------------------------------------------------------+
1083
1084
1085-Wbuiltin-memcpy-chk-size
1086-------------------------
1087This diagnostic is enabled by default.
1088
1089**Diagnostic text:**
1090
1091+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1092|: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`|
1093+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1094
1095
1096-Wbuiltin-requires-header
1097-------------------------
1098This diagnostic is enabled by default.
1099
1100**Diagnostic text:**
1101
1102+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1103|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
1104+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1105
1106
1107-Wc++-compat
1108------------
1109**Diagnostic text:**
1110
1111+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1112|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
1113|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
1114|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1115|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
1116|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
1117+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
1118
1119
1120-Wc++0x-compat
1121--------------
1122Synonym for `-Wc++11-compat`_.
1123
1124
1125-Wc++0x-extensions
1126------------------
1127Synonym for `-Wc++11-extensions`_.
1128
1129
1130-Wc++0x-narrowing
1131-----------------
1132Synonym for `-Wc++11-narrowing`_.
1133
1134
1135-Wc++11-compat
1136--------------
1137Some of the diagnostics controlled by this flag are enabled by default.
1138
1139Also 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`_.
1140
1141**Diagnostic text:**
1142
1143+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1144|: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`|
1145|                                                                                                                                                                                                                 ||:diagtext:`have type 'long long'`||                                    |
1146|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1147|                                                                                                                                                                                                                 ||:diagtext:`be ill-formed`        ||                                    |
1148|                                                                                                                                                                                                                 |+---------------------------------+|                                    |
1149+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1150
1151+--------------------------------------------------------------------------------------------------------------+
1152|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
1153+--------------------------------------------------------------------------------------------------------------+
1154
1155+-------------------------------------------------------------------------------------------------------------------------+
1156|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
1157+-------------------------------------------------------------------------------------------------------------------------+
1158
1159+-------------------------------------------------------------------------------------------+
1160|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
1161+-------------------------------------------------------------------------------------------+
1162
1163+--------------------------------------------------------------------------------------------------------------------------------+
1164|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
1165+--------------------------------------------------------------------------------------------------------------------------------+
1166
1167+--------------------------------------------------------------------------------+
1168|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
1169+--------------------------------------------------------------------------------+
1170
1171+--------------------------------------------------------------------------------------------------------------------------------------+
1172|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
1173+--------------------------------------------------------------------------------------------------------------------------------------+
1174
1175+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1176|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
1177+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1178
1179+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1180|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
1181+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1182
1183+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1184|: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`|
1185|                                                                                                                                                                          ||:diagtext:`have type 'long long'`||                                    |
1186|                                                                                                                                                                          |+---------------------------------+|                                    |
1187|                                                                                                                                                                          ||:diagtext:`be ill-formed`        ||                                    |
1188|                                                                                                                                                                          |+---------------------------------+|                                    |
1189+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1190
1191
1192-Wc++11-compat-deprecated-writable-strings
1193------------------------------------------
1194This diagnostic is enabled by default.
1195
1196**Diagnostic text:**
1197
1198+---------------------------------------------------------------------------------------------------------------------------------+
1199|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
1200+---------------------------------------------------------------------------------------------------------------------------------+
1201
1202
1203-Wc++11-compat-pedantic
1204-----------------------
1205Some of the diagnostics controlled by this flag are enabled by default.
1206
1207Controls `-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`_.
1208
1209
1210-Wc++11-compat-reserved-user-defined-literal
1211--------------------------------------------
1212**Diagnostic text:**
1213
1214+----------------------------------------------------------------------------------------------------------------------------------+
1215|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
1216+----------------------------------------------------------------------------------------------------------------------------------+
1217
1218
1219-Wc++11-extensions
1220------------------
1221Some of the diagnostics controlled by this flag are enabled by default.
1222
1223Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1224
1225**Diagnostic text:**
1226
1227+-------------------------------------------------------------------------------+
1228|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1229+-------------------------------------------------------------------------------+
1230
1231+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1232|: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`|
1233|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
1234|                                                                                                                                                   |+-----------------------+|                                                                                        |
1235|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
1236|                                                                                                                                                   |+-----------------------+|                                                                                        |
1237+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1238
1239+---------------------------------------------------------------------------------+
1240|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1241+---------------------------------------------------------------------------------+
1242
1243+-----------------------------------------------------------------------------------------------------------+
1244|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1245+-----------------------------------------------------------------------------------------------------------+
1246
1247+---------------------------+-----------------------+--------------------------------------------------------------+
1248|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1249|                           ||:diagtext:`defaulted`||                                                              |
1250|                           |+---------------------+|                                                              |
1251|                           ||:diagtext:`deleted`  ||                                                              |
1252|                           |+---------------------+|                                                              |
1253+---------------------------+-----------------------+--------------------------------------------------------------+
1254
1255+-----------------------------------------------------------------------------------------------------------------------------------+
1256|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1257+-----------------------------------------------------------------------------------------------------------------------------------+
1258
1259+--------------------------------------------------------------------------------------------------+
1260|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1261+--------------------------------------------------------------------------------------------------+
1262
1263+------------------------------------------------------------------------------------------+
1264|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1265+------------------------------------------------------------------------------------------+
1266
1267+-----------------------------------------------------------------------------+
1268|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1269+-----------------------------------------------------------------------------+
1270
1271+--------------------------------------------------------------------------------+
1272|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1273+--------------------------------------------------------------------------------+
1274
1275+------------------------------------------------------------------------------------------+
1276|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1277+------------------------------------------------------------------------------------------+
1278
1279+---------------------------------------------------------------------------------------------------------+
1280|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1281+---------------------------------------------------------------------------------------------------------+
1282
1283+----------------------------------------------------------------------------------------------------------------------------+
1284|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1285+----------------------------------------------------------------------------------------------------------------------------+
1286
1287+-------------------------------------------------------------------------------------------------------------+
1288|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1289+-------------------------------------------------------------------------------------------------------------+
1290
1291+--------------------------------------------------------------------------------------------------+
1292|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1293+--------------------------------------------------------------------------------------------------+
1294
1295+----------------------------------------------------------------------------------------------+
1296|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1297+----------------------------------------------------------------------------------------------+
1298
1299+------------------------------------------------------------------------------+
1300|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1301+------------------------------------------------------------------------------+
1302
1303+--------------------------------------------------------------------------------+
1304|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1305+--------------------------------------------------------------------------------+
1306
1307+----------------------------------------------------------------------------------------------------------------------------------+
1308|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1309+----------------------------------------------------------------------------------------------------------------------------------+
1310
1311+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1312|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1313|                                                                                      ||:diagtext:`function`||                                                                                      |
1314|                                                                                      |+--------------------+|                                                                                      |
1315|                                                                                      ||:diagtext:`object`  ||                                                                                      |
1316|                                                                                      |+--------------------+|                                                                                      |
1317+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1318
1319+-------------------------------------------------------------------------------+
1320|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1321+-------------------------------------------------------------------------------+
1322
1323+---------------------------------------------------------------------------------------------------------------+
1324|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1325+---------------------------------------------------------------------------------------------------------------+
1326
1327+------------------------------------------------------------------------------+
1328|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1329+------------------------------------------------------------------------------+
1330
1331+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1332|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1333|                                                                                                      ||:diagtext:`struct`   ||                                                 |
1334|                                                                                                      |+---------------------+|                                                 |
1335|                                                                                                      ||:diagtext:`interface`||                                                 |
1336|                                                                                                      |+---------------------+|                                                 |
1337|                                                                                                      ||:diagtext:`union`    ||                                                 |
1338|                                                                                                      |+---------------------+|                                                 |
1339|                                                                                                      ||:diagtext:`class`    ||                                                 |
1340|                                                                                                      |+---------------------+|                                                 |
1341|                                                                                                      ||:diagtext:`enum`     ||                                                 |
1342|                                                                                                      |+---------------------+|                                                 |
1343+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1344
1345+-------------------------------------------------------------------------------+
1346|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1347+-------------------------------------------------------------------------------+
1348
1349
1350-Wc++11-extra-semi
1351------------------
1352**Diagnostic text:**
1353
1354+-------------------------------------------------------------------------------------------+
1355|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1356+-------------------------------------------------------------------------------------------+
1357
1358
1359-Wc++11-inline-namespace
1360------------------------
1361This diagnostic is enabled by default.
1362
1363**Diagnostic text:**
1364
1365+----------------------------------------------------------------------------+
1366|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1367+----------------------------------------------------------------------------+
1368
1369
1370-Wc++11-long-long
1371-----------------
1372**Diagnostic text:**
1373
1374+-----------------------------------------------------------------------+
1375|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1376+-----------------------------------------------------------------------+
1377
1378
1379-Wc++11-narrowing
1380-----------------
1381Some of the diagnostics controlled by this flag are enabled by default.
1382
1383**Diagnostic text:**
1384
1385+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1386|:error:`error:` |nbsp| |+---------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1387|                       ||:diagtext:`case value`                 ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1388|                       |+---------------------------------------+|        |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|        ||
1389|                       ||:diagtext:`enumerator value`           ||        ||+--------------------------------------------------------------------------------------------------------------+        ||
1390|                       |+---------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1391|                       ||:diagtext:`non-type template argument` ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1392|                       |+---------------------------------------+|        |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1393|                       ||:diagtext:`array size`                 ||        ||+----------------------------------------------------------------------------------------------------------------------+||
1394|                       |+---------------------------------------+|        |+------------------------------------------------------------------------------------------------------------------------+|
1395|                       ||:diagtext:`constexpr if condition`     ||        |                                                                                                                          |
1396|                       |+---------------------------------------+|        |                                                                                                                          |
1397|                       ||:diagtext:`explicit specifier argument`||        |                                                                                                                          |
1398|                       |+---------------------------------------+|        |                                                                                                                          |
1399+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1400
1401+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1402|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1403+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1404
1405+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1406|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1407+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1408
1409+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1410|: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`|
1411+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1412
1413+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1414|: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`|
1415+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1416
1417+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1418|: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`|
1419+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1420
1421+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1422|: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`|
1423+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1424
1425
1426-Wc++14-binary-literal
1427----------------------
1428**Diagnostic text:**
1429
1430+------------------------------------------------------------------------------------+
1431|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1432+------------------------------------------------------------------------------------+
1433
1434
1435-Wc++14-compat
1436--------------
1437Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
1438
1439
1440-Wc++14-compat-pedantic
1441-----------------------
1442Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1443
1444
1445-Wc++14-extensions
1446------------------
1447Some of the diagnostics controlled by this flag are enabled by default.
1448
1449Also controls `-Wc++14-binary-literal`_.
1450
1451**Diagnostic text:**
1452
1453+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1454|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1455|                                                                                   ||:diagtext:`function`   ||                                        |
1456|                                                                                   |+-----------------------+|                                        |
1457|                                                                                   ||:diagtext:`constructor`||                                        |
1458|                                                                                   |+-----------------------+|                                        |
1459+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1460
1461+------------------------------------------------------------------------------------------------------------+
1462|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1463+------------------------------------------------------------------------------------------------------------+
1464
1465+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1466|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1467|                                                                                  ||:diagtext:`function`   ||                                        |
1468|                                                                                  |+-----------------------+|                                        |
1469|                                                                                  ||:diagtext:`constructor`||                                        |
1470|                                                                                  |+-----------------------+|                                        |
1471+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1472
1473+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1474|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1475|                                                                             ||:diagtext:`function`   ||                                        |
1476|                                                                             |+-----------------------+|                                        |
1477|                                                                             ||:diagtext:`constructor`||                                        |
1478|                                                                             |+-----------------------+|                                        |
1479+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1480
1481+---------------------------------------------------------------------------------------------------------------------------+
1482|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1483+---------------------------------------------------------------------------------------------------------------------------+
1484
1485+-------------------------------------------------------------------------------------------+
1486|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1487+-------------------------------------------------------------------------------------------+
1488
1489+----------------------------------------------------------------------------------------+
1490|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1491+----------------------------------------------------------------------------------------+
1492
1493+-------------------------------------------------------------------------------+
1494|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1495+-------------------------------------------------------------------------------+
1496
1497
1498-Wc++17-compat
1499--------------
1500Some of the diagnostics controlled by this flag are enabled by default.
1501
1502Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
1503
1504
1505-Wc++17-compat-mangling
1506-----------------------
1507This diagnostic is enabled by default.
1508
1509**Diagnostic text:**
1510
1511+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1512|: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`|
1513+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1514
1515
1516-Wc++17-compat-pedantic
1517-----------------------
1518Some of the diagnostics controlled by this flag are enabled by default.
1519
1520Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
1521
1522
1523-Wc++17-extensions
1524------------------
1525Some of the diagnostics controlled by this flag are enabled by default.
1526
1527**Diagnostic text:**
1528
1529+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1530|: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`|
1531+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1532
1533+------------------------------------------------------------------------+
1534|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
1535+------------------------------------------------------------------------+
1536
1537+---------------------------------------------------------------------------------------------+
1538|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
1539+---------------------------------------------------------------------------------------------+
1540
1541+---------------------------------------------------------------------------------------------------------------------------+
1542|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
1543+---------------------------------------------------------------------------------------------------------------------------+
1544
1545+---------------------------------------------------------------------------------------+
1546|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
1547+---------------------------------------------------------------------------------------+
1548
1549+--------------------------------------------------------------------------------+
1550|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
1551+--------------------------------------------------------------------------------+
1552
1553+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1554|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
1555+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1556
1557+----------------------------------------------------------------------------------------+
1558|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
1559+----------------------------------------------------------------------------------------+
1560
1561+----------------------------------------+--------------------+-------------------------------------------------------------+
1562|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
1563|                                        ||:diagtext:`if`    ||                                                             |
1564|                                        |+------------------+|                                                             |
1565|                                        ||:diagtext:`switch`||                                                             |
1566|                                        |+------------------+|                                                             |
1567+----------------------------------------+--------------------+-------------------------------------------------------------+
1568
1569+-----------------------------------------------------------------------------+
1570|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
1571+-----------------------------------------------------------------------------+
1572
1573+---------------------------------------------------------------------------------------------------------------------+
1574|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
1575+---------------------------------------------------------------------------------------------------------------------+
1576
1577+-------------------------------------------------------------------------------------------------------------------------+
1578|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
1579+-------------------------------------------------------------------------------------------------------------------------+
1580
1581+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1582|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
1583|                                                            ||:diagtext:`a namespace`  ||                                                     |
1584|                                                            |+-------------------------+|                                                     |
1585|                                                            ||:diagtext:`an enumerator`||                                                     |
1586|                                                            |+-------------------------+|                                                     |
1587+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1588
1589+---------------------------------------------------------------------------------------+
1590|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
1591+---------------------------------------------------------------------------------------+
1592
1593+------------------------------------------------------------------------------------------+
1594|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
1595+------------------------------------------------------------------------------------------+
1596
1597+--------------------------------------------------------------------------------------------------------+
1598|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
1599+--------------------------------------------------------------------------------------------------------+
1600
1601+--------------------------------------------------------------------------------------------------+
1602|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
1603+--------------------------------------------------------------------------------------------------+
1604
1605+-----------------------------------------------------------------------------------------------+
1606|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
1607+-----------------------------------------------------------------------------------------------+
1608
1609
1610-Wc++1y-extensions
1611------------------
1612Synonym for `-Wc++14-extensions`_.
1613
1614
1615-Wc++1z-compat
1616--------------
1617Synonym for `-Wc++17-compat`_.
1618
1619
1620-Wc++1z-compat-mangling
1621-----------------------
1622Synonym for `-Wc++17-compat-mangling`_.
1623
1624
1625-Wc++1z-extensions
1626------------------
1627Synonym for `-Wc++17-extensions`_.
1628
1629
1630-Wc++20-compat
1631--------------
1632Some of the diagnostics controlled by this flag are enabled by default.
1633
1634**Diagnostic text:**
1635
1636+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1637|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++20`|
1638+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1639
1640+------------------------------------------------------------------------------------------------------------+
1641|:warning:`warning:` |nbsp| :diagtext:`'consteval' specifier is incompatible with C++ standards before C++20`|
1642+------------------------------------------------------------------------------------------------------------+
1643
1644+------------------------------------------------------------------------------------------------------------+
1645|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier is incompatible with C++ standards before C++20`|
1646+------------------------------------------------------------------------------------------------------------+
1647
1648+------------------------------------------------------------------------------------------------+
1649|:warning:`warning:` |nbsp| :diagtext:`this expression will be parsed as explicit(bool) in C++20`|
1650+------------------------------------------------------------------------------------------------+
1651
1652+------------------------------------------------------------------------------------------------------------------+
1653|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++20; add a space to avoid a change in behavior`|
1654+------------------------------------------------------------------------------------------------------------------+
1655
1656+--------------------------------------------------------------------------------------------------------------------------------------------+
1657|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++20`|
1658+--------------------------------------------------------------------------------------------------------------------------------------------+
1659
1660+-------------------------------------------------------------------------------------------+
1661|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++20`|
1662+-------------------------------------------------------------------------------------------+
1663
1664
1665-Wc++20-compat-pedantic
1666-----------------------
1667Synonym for `-Wc++20-compat`_.
1668
1669
1670-Wc++20-designator
1671------------------
1672**Diagnostic text:**
1673
1674+------------------------------------------------------------------------------------+
1675|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C++20 extension`|
1676+------------------------------------------------------------------------------------+
1677
1678
1679-Wc++20-extensions
1680------------------
1681Some of the diagnostics controlled by this flag are enabled by default.
1682
1683Also controls `-Wc++20-designator`_.
1684
1685**Diagnostic text:**
1686
1687+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1688|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension`|
1689+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1690
1691+----------------------------------------------------------------------------------------------------+
1692|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++20 extension`|
1693+----------------------------------------------------------------------------------------------------+
1694
1695+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1696|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
1697|                                                                                   ||:diagtext:`function`   ||                                        |
1698|                                                                                   |+-----------------------+|                                        |
1699|                                                                                   ||:diagtext:`constructor`||                                        |
1700|                                                                                   |+-----------------------+|                                        |
1701+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1702
1703+----------------------------------------------------------------------------------------------------------------------+
1704|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is a C++20 extension`|
1705+----------------------------------------------------------------------------------------------------------------------+
1706
1707+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1708|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
1709|                                                                              ||:diagtext:`function`   ||                                        |
1710|                                                                              |+-----------------------+|                                        |
1711|                                                                              ||:diagtext:`constructor`||                                        |
1712|                                                                              |+-----------------------+|                                        |
1713+------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1714
1715+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1716|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`|
1717|                                                                                    ||:diagtext:`function`   ||                                        |
1718|                                                                                    |+-----------------------+|                                        |
1719|                                                                                    ||:diagtext:`constructor`||                                        |
1720|                                                                                    |+-----------------------+|                                        |
1721+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1722
1723+---------------------------------------------------------------------------------------------------------------------------+
1724|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is a C++20 extension`|
1725+---------------------------------------------------------------------------------------------------------------------------+
1726
1727+---------------------------------------------------------------------------------------------------------------------------+
1728|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`|
1729+---------------------------------------------------------------------------------------------------------------------------+
1730
1731+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
1732|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is a C++20 extension`|
1733|                                                                                 ||+------------------------------------------+                ||                                        |
1734|                                                                                 |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|                ||                                        |
1735|                                                                                 ||+------------------------------------------+                ||                                        |
1736|                                                                                 |+------------------------------------------------------------+|                                        |
1737|                                                                                 ||+----------------------------------------------------------+||                                        |
1738|                                                                                 |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`|||                                        |
1739|                                                                                 ||+----------------------------------------------------------+||                                        |
1740|                                                                                 |+------------------------------------------------------------+|                                        |
1741+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+
1742
1743+-------------------------------------------------------------------------------------------+
1744|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are a C++20 extension`|
1745+-------------------------------------------------------------------------------------------+
1746
1747+--------------------------------------------------------------------------------------------------------------------+
1748|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++20 extension`|
1749+--------------------------------------------------------------------------------------------------------------------+
1750
1751+--------------------------------------------------------------------------+
1752|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is a C++20 extension`|
1753+--------------------------------------------------------------------------+
1754
1755+-----------------------------------------------------------------------------------------------------------+
1756|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++20 extension`|
1757+-----------------------------------------------------------------------------------------------------------+
1758
1759+---------------------------------------------------------------------------------------------+
1760|:warning:`warning:` |nbsp| :diagtext:`initialized lambda pack captures are a C++20 extension`|
1761+---------------------------------------------------------------------------------------------+
1762
1763+----------------------------------------------------------------------------------------------+
1764|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++20 extension`|
1765+----------------------------------------------------------------------------------------------+
1766
1767+--------------------------------------------------------------------------------------------------------+
1768|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is a C++20 extension`|
1769+--------------------------------------------------------------------------------------------------------+
1770
1771+--------------------------------------------------------------------------------------------------------------------------+
1772|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`|
1773+--------------------------------------------------------------------------------------------------------------------------+
1774
1775
1776-Wc++2a-compat
1777--------------
1778Synonym for `-Wc++20-compat`_.
1779
1780
1781-Wc++2a-compat-pedantic
1782-----------------------
1783Synonym for `-Wc++20-compat-pedantic`_.
1784
1785
1786-Wc++2a-extensions
1787------------------
1788Synonym for `-Wc++20-extensions`_.
1789
1790
1791-Wc++98-c++11-c++14-c++17-compat
1792--------------------------------
1793**Diagnostic text:**
1794
1795+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1796|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20`|
1797+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1798
1799+-------------------------------------------------------------------------------------------------------------------------------+
1800|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++20`|
1801+-------------------------------------------------------------------------------------------------------------------------------+
1802
1803+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1804|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
1805|                                                                                   ||:diagtext:`function`   ||                                                                   |
1806|                                                                                   |+-----------------------+|                                                                   |
1807|                                                                                   ||:diagtext:`constructor`||                                                                   |
1808|                                                                                   |+-----------------------+|                                                                   |
1809+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1810
1811+-------------------------------------------------------------------------------------------------------------------------------------------------+
1812|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20`|
1813+-------------------------------------------------------------------------------------------------------------------------------------------------+
1814
1815+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1816|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
1817|                                                                              ||:diagtext:`function`   ||                                                                   |
1818|                                                                              |+-----------------------+|                                                                   |
1819|                                                                              ||:diagtext:`constructor`||                                                                   |
1820|                                                                              |+-----------------------+|                                                                   |
1821+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1822
1823+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1824|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
1825|                                                                                    ||:diagtext:`function`   ||                                                                   |
1826|                                                                                    |+-----------------------+|                                                                   |
1827|                                                                                    ||:diagtext:`constructor`||                                                                   |
1828|                                                                                    |+-----------------------+|                                                                   |
1829+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1830
1831+------------------------------------------------------------------------------------------------------------------------------------------------------+
1832|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20`|
1833+------------------------------------------------------------------------------------------------------------------------------------------------------+
1834
1835+-------------------------------------------------------------------------------------------------------------------+
1836|:warning:`warning:` |nbsp| :diagtext:`virtual constexpr functions are incompatible with C++ standards before C++20`|
1837+-------------------------------------------------------------------------------------------------------------------+
1838
1839+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
1840|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`|
1841|                                                                                 ||+------------------------------------------+                ||                                                                   |
1842|                                                                                 |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|                ||                                                                   |
1843|                                                                                 ||+------------------------------------------+                ||                                                                   |
1844|                                                                                 |+------------------------------------------------------------+|                                                                   |
1845|                                                                                 ||+----------------------------------------------------------+||                                                                   |
1846|                                                                                 |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`|||                                                                   |
1847|                                                                                 ||+----------------------------------------------------------+||                                                                   |
1848|                                                                                 |+------------------------------------------------------------+|                                                                   |
1849+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+
1850
1851+----------------------------------------------------------------------------------------------------------------------+
1852|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are incompatible with C++ standards before C++20`|
1853+----------------------------------------------------------------------------------------------------------------------+
1854
1855+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1856|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++20`|
1857|                                                                         ||:diagtext:`default constructor`     ||                                                                                                                |
1858|                                                                         |+------------------------------------+|                                                                                                                |
1859|                                                                         ||:diagtext:`copy constructor`        ||                                                                                                                |
1860|                                                                         |+------------------------------------+|                                                                                                                |
1861|                                                                         ||:diagtext:`move constructor`        ||                                                                                                                |
1862|                                                                         |+------------------------------------+|                                                                                                                |
1863|                                                                         ||:diagtext:`copy assignment operator`||                                                                                                                |
1864|                                                                         |+------------------------------------+|                                                                                                                |
1865|                                                                         ||:diagtext:`move assignment operator`||                                                                                                                |
1866|                                                                         |+------------------------------------+|                                                                                                                |
1867|                                                                         ||:diagtext:`destructor`              ||                                                                                                                |
1868|                                                                         |+------------------------------------+|                                                                                                                |
1869+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+
1870
1871+-----------------------------------------------------------------------------------------------------------------------------------------------+
1872|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++20`|
1873+-----------------------------------------------------------------------------------------------------------------------------------------------+
1874
1875+-----------------------------------------------------------------------------------------------------+
1876|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is incompatible with C++ standards before C++20`|
1877+-----------------------------------------------------------------------------------------------------+
1878
1879+--------------------------------------------------------------------------------------------------------------------------------------+
1880|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++20`|
1881+--------------------------------------------------------------------------------------------------------------------------------------+
1882
1883+------------------------------------------------------------------------------------------------------------------------+
1884|:warning:`warning:` |nbsp| :diagtext:`initialized lambda capture packs are incompatible with C++ standards before C++20`|
1885+------------------------------------------------------------------------------------------------------------------------+
1886
1887+-------------------------------------------------------------------------------------------------------------------------+
1888|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++20`|
1889+-------------------------------------------------------------------------------------------------------------------------+
1890
1891+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1892|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++20`|
1893|                           ||:diagtext:`default construction`||                                                                             |
1894|                           |+--------------------------------+|                                                                             |
1895|                           ||:diagtext:`assignment`          ||                                                                             |
1896|                           |+--------------------------------+|                                                                             |
1897+---------------------------+----------------------------------+-----------------------------------------------------------------------------+
1898
1899+-----------------------------------------------------------------------------------------------------------------------------------+
1900|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is incompatible with C++ standards before C++20`|
1901+-----------------------------------------------------------------------------------------------------------------------------------+
1902
1903+-----------------------------------------------------------------------------------------------------+
1904|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++20`|
1905+-----------------------------------------------------------------------------------------------------+
1906
1907+----------------------------------------------------------------------------------------------------------------+
1908|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`|
1909+----------------------------------------------------------------------------------------------------------------+
1910
1911
1912-Wc++98-c++11-c++14-c++17-compat-pedantic
1913-----------------------------------------
1914Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
1915
1916**Diagnostic text:**
1917
1918+---------------------------------------------------------------------------------------------------------------+
1919|:warning:`warning:` |nbsp| :diagtext:`designated initializers are incompatible with C++ standards before C++20`|
1920+---------------------------------------------------------------------------------------------------------------+
1921
1922+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1923|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++20`|
1924+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1925
1926
1927-Wc++98-c++11-c++14-compat
1928--------------------------
1929**Diagnostic text:**
1930
1931+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1932|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+|
1933|                                                                                                                        ||                                                                                 ||
1934|                                                                                                                        |+---------------------------------------------------------------------------------+|
1935|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1936|                                                                                                                        |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`|||
1937|                                                                                                                        ||+-------------------------------------------------------------------------------+||
1938|                                                                                                                        |+---------------------------------------------------------------------------------+|
1939+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+
1940
1941+---------------------------------------------------------------------------------------------------+
1942|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
1943+---------------------------------------------------------------------------------------------------+
1944
1945+----------------------------------------------------------------------------------------------------------------------+
1946|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
1947+----------------------------------------------------------------------------------------------------------------------+
1948
1949+------------------------------------------------------------------------------------------------------------------+
1950|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
1951+------------------------------------------------------------------------------------------------------------------+
1952
1953+-----------------------------------------------------------------------------------------------------------+
1954|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
1955+-----------------------------------------------------------------------------------------------------------+
1956
1957+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1958|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
1959|                           ||:diagtext:`if`    ||                                                                                              |
1960|                           |+------------------+|                                                                                              |
1961|                           ||:diagtext:`switch`||                                                                                              |
1962|                           |+------------------+|                                                                                              |
1963+---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1964
1965+--------------------------------------------------------------------------------------------------------+
1966|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
1967+--------------------------------------------------------------------------------------------------------+
1968
1969+------------------------------------------------------------------------------------------------------------------+
1970|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
1971+------------------------------------------------------------------------------------------------------------------+
1972
1973+-------------------------------------------------------------------------------------------------------------------+
1974|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
1975+-------------------------------------------------------------------------------------------------------------------+
1976
1977+---------------------------------------------------------------------------------------------------------------------+
1978|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
1979+---------------------------------------------------------------------------------------------------------------------+
1980
1981+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1982|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
1983+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1984
1985+-----------------------------------------------------------------------------------------------------------------------------------+
1986|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
1987+-----------------------------------------------------------------------------------------------------------------------------------+
1988
1989+--------------------------------------------------------------------------------------------------------+
1990|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
1991+--------------------------------------------------------------------------------------------------------+
1992
1993+-----------------------------------------------------------------------------------------------------------------------------+
1994|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
1995+-----------------------------------------------------------------------------------------------------------------------------+
1996
1997+------------------------------------------------------------------------------------------------------------------------------------------------+
1998|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
1999+------------------------------------------------------------------------------------------------------------------------------------------------+
2000
2001+-----------------------------------------------------------------------------------------------------------------------+
2002|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
2003+-----------------------------------------------------------------------------------------------------------------------+
2004
2005+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2006|: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`|
2007+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2008
2009
2010-Wc++98-c++11-c++14-compat-pedantic
2011-----------------------------------
2012Also controls `-Wc++98-c++11-c++14-compat`_.
2013
2014**Diagnostic text:**
2015
2016+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
2017|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
2018|                                                            ||:diagtext:`a namespace`  ||                                                                                |
2019|                                                            |+-------------------------+|                                                                                |
2020|                                                            ||:diagtext:`an enumerator`||                                                                                |
2021|                                                            |+-------------------------+|                                                                                |
2022+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
2023
2024+---------------------------------------------------------------------------------------------------------------------+
2025|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
2026+---------------------------------------------------------------------------------------------------------------------+
2027
2028
2029-Wc++98-c++11-compat
2030--------------------
2031**Diagnostic text:**
2032
2033+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2034|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
2035|                                                                                   ||:diagtext:`function`   ||                                                                   |
2036|                                                                                   |+-----------------------+|                                                                   |
2037|                                                                                   ||:diagtext:`constructor`||                                                                   |
2038|                                                                                   |+-----------------------+|                                                                   |
2039+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2040
2041+---------------------------------------------------------------------------------------------------------------------------------------+
2042|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
2043+---------------------------------------------------------------------------------------------------------------------------------------+
2044
2045+-----------------------------------------------------------------------------------------------------------------------------------+
2046|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
2047+-----------------------------------------------------------------------------------------------------------------------------------+
2048
2049+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2050|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
2051|                                                                                  ||:diagtext:`function`   ||                                                                   |
2052|                                                                                  |+-----------------------+|                                                                   |
2053|                                                                                  ||:diagtext:`constructor`||                                                                   |
2054|                                                                                  |+-----------------------+|                                                                   |
2055+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2056
2057+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2058|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
2059|                                                                             ||:diagtext:`function`   ||                                                                   |
2060|                                                                             |+-----------------------+|                                                                   |
2061|                                                                             ||:diagtext:`constructor`||                                                                   |
2062|                                                                             |+-----------------------+|                                                                   |
2063+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
2064
2065+----------------------------------------------------------------------------------------------------------------------+
2066|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
2067+----------------------------------------------------------------------------------------------------------------------+
2068
2069+------------------------------------------------------------------------------------------------------------+
2070|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`|
2071+------------------------------------------------------------------------------------------------------------+
2072
2073+--------------------------------------------------------------------------------------------------------+
2074|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
2075+--------------------------------------------------------------------------------------------------------+
2076
2077+----------------------------------------------------------------------------------+
2078|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`|
2079+----------------------------------------------------------------------------------+
2080
2081+-------------------------------------------------------------------------------------------------------------------+
2082|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
2083+-------------------------------------------------------------------------------------------------------------------+
2084
2085+----------------------------------------------------------------------------------------------------------+
2086|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
2087+----------------------------------------------------------------------------------------------------------+
2088
2089
2090-Wc++98-c++11-compat-binary-literal
2091-----------------------------------
2092**Diagnostic text:**
2093
2094+---------------------------------------------------------------------------------------------------------------+
2095|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
2096+---------------------------------------------------------------------------------------------------------------+
2097
2098
2099-Wc++98-c++11-compat-pedantic
2100-----------------------------
2101Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
2102
2103
2104-Wc++98-compat
2105--------------
2106Also 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`_.
2107
2108**Diagnostic text:**
2109
2110+-------------------------------------------------------------------------------------+
2111|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
2112+-------------------------------------------------------------------------------------+
2113
2114+---------------------------------------------------------------------------+
2115|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
2116+---------------------------------------------------------------------------+
2117
2118+--------------------------------------------------------------------------------------+
2119|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
2120+--------------------------------------------------------------------------------------+
2121
2122+----------------------------------------------------------------------------------------+
2123|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
2124+----------------------------------------------------------------------------------------+
2125
2126+---------------------------------------------------------------------------------------+
2127|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
2128+---------------------------------------------------------------------------------------+
2129
2130+---------------------------------------------------------------------------------------+
2131|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
2132+---------------------------------------------------------------------------------------+
2133
2134+--------------------------------------------------------------------------------------------------------+
2135|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
2136+--------------------------------------------------------------------------------------------------------+
2137
2138+-------------------------------------------------------------------------------------------+
2139|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
2140+-------------------------------------------------------------------------------------------+
2141
2142+---------------------------+-----------------------+--------------------------------------------------------------------+
2143|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
2144|                           ||:diagtext:`defaulted`||                                                                    |
2145|                           |+---------------------+|                                                                    |
2146|                           ||:diagtext:`deleted`  ||                                                                    |
2147|                           |+---------------------+|                                                                    |
2148+---------------------------+-----------------------+--------------------------------------------------------------------+
2149
2150+------------------------------------------------------------------------------------------+
2151|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
2152+------------------------------------------------------------------------------------------+
2153
2154+----------------------------------------------------------------------------------------------------------------+
2155|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
2156+----------------------------------------------------------------------------------------------------------------+
2157
2158+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2159|:warning:`warning:` |nbsp| :diagtext:`initializing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`from an empty initializer list is incompatible with C++98`|
2160+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2161
2162+-----------------------------------------------------------------------------------------------------------------+
2163|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
2164+-----------------------------------------------------------------------------------------------------------------+
2165
2166+-----------------------------------------------------------------------------------------------------------------------------------------+
2167|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
2168+-----------------------------------------------------------------------------------------------------------------------------------------+
2169
2170+-----------------------------------------------------------------------------------------------------------+
2171|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
2172+-----------------------------------------------------------------------------------------------------------+
2173
2174+------------------------------------------------------------------------------------------------+
2175|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
2176+------------------------------------------------------------------------------------------------+
2177
2178+--------------------------------------------------------------------------------------+
2179|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
2180+--------------------------------------------------------------------------------------+
2181
2182+---------------------------------------------------------------------------------------------------------------------------+
2183|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
2184+---------------------------------------------------------------------------------------------------------------------------+
2185
2186+------------------------------------------------------------------------------------------------+
2187|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
2188+------------------------------------------------------------------------------------------------+
2189
2190+------------------------------------------------------------------------------------------------------------+
2191|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
2192+------------------------------------------------------------------------------------------------------------+
2193
2194+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2195|:warning:`warning:` |nbsp| :diagtext:`jump from this` |nbsp| |+--------------------+| |nbsp| :diagtext:`goto statement to one of its possible targets is incompatible with C++98`|
2196|                                                             ||:diagtext:`indirect`||                                                                                            |
2197|                                                             |+--------------------+|                                                                                            |
2198|                                                             ||:diagtext:`asm`     ||                                                                                            |
2199|                                                             |+--------------------+|                                                                                            |
2200+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2201
2202+------------------------------------------------------------------------------------------------------------+
2203|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
2204+------------------------------------------------------------------------------------------------------------+
2205
2206+------------------------------------------------------------------------------------+
2207|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
2208+------------------------------------------------------------------------------------+
2209
2210+-------------------------------------------------------------------------------------+
2211|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
2212+-------------------------------------------------------------------------------------+
2213
2214+-----------------------------------------------------------------------------------------------------------+
2215|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
2216+-----------------------------------------------------------------------------------------------------------+
2217
2218+------------------------------------------------------------------------------------+
2219|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
2220+------------------------------------------------------------------------------------+
2221
2222+---------------------------------------------------------------------------------------------------------------------------+
2223|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
2224+---------------------------------------------------------------------------------------------------------------------------+
2225
2226+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2227|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
2228+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2229
2230+------------------------------------------------------------------------------------------+
2231|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
2232+------------------------------------------------------------------------------------------+
2233
2234+---------------------------------------------------------------------------------------+
2235|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
2236+---------------------------------------------------------------------------------------+
2237
2238+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2239|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
2240+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2241
2242+----------------------------------------------------------------------------------------------------------------------------------+
2243|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
2244+----------------------------------------------------------------------------------------------------------------------------------+
2245
2246+--------------------------------------------------------------------------------------------------------------------+
2247|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
2248+--------------------------------------------------------------------------------------------------------------------+
2249
2250+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
2251|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
2252|                           ||:diagtext:`anonymous struct`||                                                                                                ||:diagtext:`default constructor`     ||                                              |
2253|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
2254|                           ||:diagtext:`union`           ||                                                                                                ||:diagtext:`copy constructor`        ||                                              |
2255|                           |+----------------------------+|                                                                                                |+------------------------------------+|                                              |
2256|                           |                              |                                                                                                ||:diagtext:`move constructor`        ||                                              |
2257|                           |                              |                                                                                                |+------------------------------------+|                                              |
2258|                           |                              |                                                                                                ||:diagtext:`copy assignment operator`||                                              |
2259|                           |                              |                                                                                                |+------------------------------------+|                                              |
2260|                           |                              |                                                                                                ||:diagtext:`move assignment operator`||                                              |
2261|                           |                              |                                                                                                |+------------------------------------+|                                              |
2262|                           |                              |                                                                                                ||:diagtext:`destructor`              ||                                              |
2263|                           |                              |                                                                                                |+------------------------------------+|                                              |
2264+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
2265
2266+---------------------------------------------------------------------------+
2267|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
2268+---------------------------------------------------------------------------+
2269
2270+--------------------------------------------------------------------------------------------------------+
2271|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
2272+--------------------------------------------------------------------------------------------------------+
2273
2274+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2275|: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`|
2276|                                                                                                                                                     ||:diagtext:`function`   ||                                              |
2277|                                                                                                                                                     |+-----------------------+|                                              |
2278|                                                                                                                                                     ||:diagtext:`block`      ||                                              |
2279|                                                                                                                                                     |+-----------------------+|                                              |
2280|                                                                                                                                                     ||:diagtext:`method`     ||                                              |
2281|                                                                                                                                                     |+-----------------------+|                                              |
2282|                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2283|                                                                                                                                                     |+-----------------------+|                                              |
2284+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2285
2286+--------------------------------------------------------------------------------------+
2287|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
2288+--------------------------------------------------------------------------------------+
2289
2290+----------------------------------------------------------------------------------------------------+
2291|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
2292+----------------------------------------------------------------------------------------------------+
2293
2294+-------------------------------------------------------------------------------------------------------------+
2295|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
2296+-------------------------------------------------------------------------------------------------------------+
2297
2298+------------------------------------------------------------------------------------+
2299|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
2300+------------------------------------------------------------------------------------+
2301
2302+--------------------------------------------------------------------------------------+
2303|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
2304+--------------------------------------------------------------------------------------+
2305
2306+------------------------------------------------------------------------------------------------------------+
2307|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
2308+------------------------------------------------------------------------------------------------------------+
2309
2310+----------------------------------------------------------------------------------------------+
2311|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
2312+----------------------------------------------------------------------------------------------+
2313
2314+----------------------------------------------------------------------------------------------------------------------------------------+
2315|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
2316+----------------------------------------------------------------------------------------------------------------------------------------+
2317
2318+---------------------------------------------------------------------------------------------------------------+
2319|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
2320+---------------------------------------------------------------------------------------------------------------+
2321
2322+---------------------------------------------------------------------------------------------------------------------------------------+
2323|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
2324+---------------------------------------------------------------------------------------------------------------------------------------+
2325
2326+-------------------------------------------------------------------------------------------------------------------+
2327|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
2328+-------------------------------------------------------------------------------------------------------------------+
2329
2330+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2331|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
2332|                                                                                      ||:diagtext:`function`||                                                                                            |
2333|                                                                                      |+--------------------+|                                                                                            |
2334|                                                                                      ||:diagtext:`object`  ||                                                                                            |
2335|                                                                                      |+--------------------+|                                                                                            |
2336+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
2337
2338+-----------------------------------------------------------------------------------------------------------------+
2339|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
2340+-----------------------------------------------------------------------------------------------------------------+
2341
2342+---------------------------------------------------------------------------------------------------------------------+
2343|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
2344+---------------------------------------------------------------------------------------------------------------------+
2345
2346+----------------------------------------------------------------------------------------+
2347|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
2348+----------------------------------------------------------------------------------------+
2349
2350+---------------------------------------------------------------------------------------------------------------+
2351|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
2352+---------------------------------------------------------------------------------------------------------------+
2353
2354+---------------------------------------------------------------------------------------------------------+
2355|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
2356+---------------------------------------------------------------------------------------------------------+
2357
2358+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2359|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
2360|                                                                                                       ||:diagtext:`struct`   ||                                                |
2361|                                                                                                       |+---------------------+|                                                |
2362|                                                                                                       ||:diagtext:`interface`||                                                |
2363|                                                                                                       |+---------------------+|                                                |
2364|                                                                                                       ||:diagtext:`union`    ||                                                |
2365|                                                                                                       |+---------------------+|                                                |
2366|                                                                                                       ||:diagtext:`class`    ||                                                |
2367|                                                                                                       |+---------------------+|                                                |
2368|                                                                                                       ||:diagtext:`enum`     ||                                                |
2369|                                                                                                       |+---------------------+|                                                |
2370+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2371
2372+-------------------------------------------------------------------------------------------------------+
2373|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
2374+-------------------------------------------------------------------------------------------------------+
2375
2376+-----------------------------------------------------------------------------------+
2377|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
2378+-----------------------------------------------------------------------------------+
2379
2380+---------------------------------------------------------------------------------------------------------------+
2381|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
2382+---------------------------------------------------------------------------------------------------------------+
2383
2384+------------------------------------------------------------------------------------------+
2385|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
2386+------------------------------------------------------------------------------------------+
2387
2388+-------------------------------------------------------------------------------------+
2389|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
2390+-------------------------------------------------------------------------------------+
2391
2392
2393-Wc++98-compat-bind-to-temporary-copy
2394-------------------------------------
2395**Diagnostic text:**
2396
2397+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2398|: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`|
2399|                           ||:diagtext:`copying variable`                        ||                                                                                                                            ||:diagtext:`invoke an inaccessible constructor`||                            |
2400|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2401|                           ||:diagtext:`copying parameter`                       ||                                                                                                                            ||:diagtext:`find no viable constructor`        ||                            |
2402|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2403|                           ||:diagtext:`returning object`                        ||                                                                                                                            ||:diagtext:`find ambiguous constructors`       ||                            |
2404|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2405|                           ||:diagtext:`initializing statement expression result`||                                                                                                                            ||:diagtext:`invoke a deleted constructor`      ||                            |
2406|                           |+----------------------------------------------------+|                                                                                                                            |+----------------------------------------------+|                            |
2407|                           ||:diagtext:`throwing object`                         ||                                                                                                                            |                                                |                            |
2408|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2409|                           ||:diagtext:`copying member subobject`                ||                                                                                                                            |                                                |                            |
2410|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2411|                           ||:diagtext:`copying array element`                   ||                                                                                                                            |                                                |                            |
2412|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2413|                           ||:diagtext:`allocating object`                       ||                                                                                                                            |                                                |                            |
2414|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2415|                           ||:diagtext:`copying temporary`                       ||                                                                                                                            |                                                |                            |
2416|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2417|                           ||:diagtext:`initializing base subobject`             ||                                                                                                                            |                                                |                            |
2418|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2419|                           ||:diagtext:`initializing vector element`             ||                                                                                                                            |                                                |                            |
2420|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2421|                           ||:diagtext:`capturing value`                         ||                                                                                                                            |                                                |                            |
2422|                           |+----------------------------------------------------+|                                                                                                                            |                                                |                            |
2423+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2424
2425
2426-Wc++98-compat-extra-semi
2427-------------------------
2428**Diagnostic text:**
2429
2430+-------------------------------------------------------------------------------------------------+
2431|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
2432+-------------------------------------------------------------------------------------------------+
2433
2434
2435-Wc++98-compat-local-type-template-args
2436---------------------------------------
2437**Diagnostic text:**
2438
2439+--------------------------------------------------------------------------------------------------------------------------------------------+
2440|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
2441+--------------------------------------------------------------------------------------------------------------------------------------------+
2442
2443
2444-Wc++98-compat-pedantic
2445-----------------------
2446Also 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`_.
2447
2448**Diagnostic text:**
2449
2450+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2451|: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`|
2452|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                              |
2453|                                                                                                                                                   |+-----------------------+|                                                                                              |
2454|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                              |
2455|                                                                                                                                                   |+-----------------------+|                                                                                              |
2456+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2457
2458+------------------------------------------------------------------------------------------------------------------------+
2459|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
2460+------------------------------------------------------------------------------------------------------------------------+
2461
2462+----------------------------------------------------------------------------------------+
2463|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
2464+----------------------------------------------------------------------------------------+
2465
2466+--------------------------------------------------------------------------------------------------------+
2467|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
2468+--------------------------------------------------------------------------------------------------------+
2469
2470+-----------------------------------------------------------------------------------+
2471|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
2472+-----------------------------------------------------------------------------------+
2473
2474+-----------------------------------------------------------------------------+
2475|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
2476+-----------------------------------------------------------------------------+
2477
2478+----------------------------------------------------------------------------+
2479|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
2480+----------------------------------------------------------------------------+
2481
2482+-------------------------------------------------------------------------------------------------+
2483|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
2484+-------------------------------------------------------------------------------------------------+
2485
2486+----------------------------------------------------------------------------------+
2487|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
2488+----------------------------------------------------------------------------------+
2489
2490
2491-Wc++98-compat-unnamed-type-template-args
2492-----------------------------------------
2493**Diagnostic text:**
2494
2495+---------------------------------------------------------------------------------------------------+
2496|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
2497+---------------------------------------------------------------------------------------------------+
2498
2499
2500-Wc11-extensions
2501----------------
2502**Diagnostic text:**
2503
2504+---------------------------------------------------------------------------+
2505|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
2506+---------------------------------------------------------------------------+
2507
2508+----------------------------------------------------------------------------+
2509|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
2510+----------------------------------------------------------------------------+
2511
2512+----------------------------------------------------------------------------------------+
2513|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C11 extension`|
2514+----------------------------------------------------------------------------------------+
2515
2516
2517-Wc2x-extensions
2518----------------
2519This diagnostic is enabled by default.
2520
2521**Diagnostic text:**
2522
2523+--------------------------------------------------------------------------------------------------------------+
2524|:warning:`warning:` |nbsp| :diagtext:`omitting the parameter name in a function definition is a C2x extension`|
2525+--------------------------------------------------------------------------------------------------------------+
2526
2527
2528-Wc99-compat
2529------------
2530Some of the diagnostics controlled by this flag are enabled by default.
2531
2532**Diagnostic text:**
2533
2534+---------------------------+--------------------------------------------------------+--------------------------------------------+
2535|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
2536|                           ||:diagtext:`using this character in an identifier`     ||                                            |
2537|                           |+------------------------------------------------------+|                                            |
2538|                           ||:diagtext:`starting an identifier with this character`||                                            |
2539|                           |+------------------------------------------------------+|                                            |
2540+---------------------------+--------------------------------------------------------+--------------------------------------------+
2541
2542+---------------------------------------------------------------------------------+
2543|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
2544+---------------------------------------------------------------------------------+
2545
2546+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2547|: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`|
2548|                                                                                                                                                                        ||:diagtext:`have type 'long long'`||                                  |
2549|                                                                                                                                                                        |+---------------------------------+|                                  |
2550|                                                                                                                                                                        ||:diagtext:`be ill-formed`        ||                                  |
2551|                                                                                                                                                                        |+---------------------------------+|                                  |
2552+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2553
2554
2555-Wc99-designator
2556----------------
2557Some of the diagnostics controlled by this flag are enabled by default.
2558
2559Also controls `-Wc++20-designator`_.
2560
2561**Diagnostic text:**
2562
2563+--------------------------------------------------------------------------------+
2564|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2565+--------------------------------------------------------------------------------+
2566
2567+----------------------------------------------------------------------------+
2568|:warning:`warning:` |nbsp| :diagtext:`array designators are a C99 extension`|
2569+----------------------------------------------------------------------------+
2570
2571+--------------------------------------------------------------------------------------------------------------------------------------------+
2572|:warning:`warning:` |nbsp| :diagtext:`mixture of designated and non-designated initializers in the same initializer list is a C99 extension`|
2573+--------------------------------------------------------------------------------------------------------------------------------------------+
2574
2575+-----------------------------------------------------------------------------+
2576|:warning:`warning:` |nbsp| :diagtext:`nested designators are a C99 extension`|
2577+-----------------------------------------------------------------------------+
2578
2579
2580-Wc99-extensions
2581----------------
2582Some of the diagnostics controlled by this flag are enabled by default.
2583
2584Also controls `-Wc99-designator`_.
2585
2586**Diagnostic text:**
2587
2588+-----------------------------------------------------------------------------------------------+
2589|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
2590+-----------------------------------------------------------------------------------------------+
2591
2592+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2593|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
2594|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
2595|                           |+--------------------------------+|                              |+---------------------+|                            |
2596|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
2597|                           |+--------------------------------+|                              |+---------------------+|                            |
2598|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
2599|                           |+--------------------------------+|                              |+---------------------+|                            |
2600+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2601
2602+-----------------------------------------------------------------------------------+
2603|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
2604+-----------------------------------------------------------------------------------+
2605
2606+----------------------------------------------------------------------------------------+
2607|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C99 extension`|
2608+----------------------------------------------------------------------------------------+
2609
2610+-------------------------------------------------------------------------------+
2611|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
2612+-------------------------------------------------------------------------------+
2613
2614+-------------------------------------------------------------------------------------------------+
2615|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
2616+-------------------------------------------------------------------------------------------------+
2617
2618+---------------------------------------------------------------------------------------+
2619|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
2620+---------------------------------------------------------------------------------------+
2621
2622+------------------------------------------------------------------------------+
2623|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2624+------------------------------------------------------------------------------+
2625
2626+-------------------------------------------------------------------------------------------------------+
2627|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2628+-------------------------------------------------------------------------------------------------------+
2629
2630+---------------------------------------------------------------------------------------+
2631|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2632+---------------------------------------------------------------------------------------+
2633
2634
2635-Wcall-to-pure-virtual-from-ctor-dtor
2636-------------------------------------
2637This diagnostic is enabled by default.
2638
2639**Diagnostic text:**
2640
2641+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2642|: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`|
2643|                                                                                                                                                                                                                                                     ||:diagtext:`constructor`||                                              |
2644|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2645|                                                                                                                                                                                                                                                     ||:diagtext:`destructor` ||                                              |
2646|                                                                                                                                                                                                                                                     |+-----------------------+|                                              |
2647+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
2648
2649
2650-Wcast-align
2651------------
2652**Diagnostic text:**
2653
2654+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2655|: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`|
2656+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2657
2658
2659-Wcast-calling-convention
2660-------------------------
2661This diagnostic is enabled by default.
2662
2663**Diagnostic text:**
2664
2665+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2666|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2667+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2668
2669
2670-Wcast-of-sel-type
2671------------------
2672This diagnostic is enabled by default.
2673
2674**Diagnostic text:**
2675
2676+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2677|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2678+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2679
2680
2681-Wcast-qual
2682-----------
2683**Diagnostic text:**
2684
2685+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2686|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2687|                                                                                                                                                       ||:diagtext:`const and volatile qualifiers`||
2688|                                                                                                                                                       |+-----------------------------------------+|
2689|                                                                                                                                                       ||:diagtext:`const qualifier`              ||
2690|                                                                                                                                                       |+-----------------------------------------+|
2691|                                                                                                                                                       ||:diagtext:`volatile qualifier`           ||
2692|                                                                                                                                                       |+-----------------------------------------+|
2693+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2694
2695+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2696|: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`|
2697+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2698
2699
2700-Wcast-qual-unrelated
2701---------------------
2702This diagnostic is enabled by default.
2703
2704**Diagnostic text:**
2705
2706+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2707|: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`|
2708|                                                                     ||:diagtext:`const\_cast`          ||                                                                                                                                                                                                              |
2709|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2710|                                                                     ||:diagtext:`static\_cast`         ||                                                                                                                                                                                                              |
2711|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2712|                                                                     ||:diagtext:`reinterpret\_cast`    ||                                                                                                                                                                                                              |
2713|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2714|                                                                     ||:diagtext:`dynamic\_cast`        ||                                                                                                                                                                                                              |
2715|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2716|                                                                     ||:diagtext:`C-style cast`         ||                                                                                                                                                                                                              |
2717|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2718|                                                                     ||:diagtext:`functional-style cast`||                                                                                                                                                                                                              |
2719|                                                                     |+---------------------------------+|                                                                                                                                                                                                              |
2720+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2721
2722
2723-Wchar-align
2724------------
2725This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2726
2727-Wchar-subscripts
2728-----------------
2729**Diagnostic text:**
2730
2731+------------------------------------------------------------+-------------------------+-------------------------------------+
2732|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2733|                                                            ||:diagtext:`lower bound`||                                     |
2734|                                                            |+-----------------------+|                                     |
2735|                                                            ||:diagtext:`length`     ||                                     |
2736|                                                            |+-----------------------+|                                     |
2737+------------------------------------------------------------+-------------------------+-------------------------------------+
2738
2739+------------------------------------------------------------------------+
2740|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2741+------------------------------------------------------------------------+
2742
2743
2744-Wclang-cl-pch
2745--------------
2746This diagnostic is enabled by default.
2747
2748**Diagnostic text:**
2749
2750+-------------------------------------------------------------------------------------------------------------------------+
2751|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2752+-------------------------------------------------------------------------------------------------------------------------+
2753
2754+------------------------------------------------------------------------------------------------------------------------------+
2755|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2756+------------------------------------------------------------------------------------------------------------------------------+
2757
2758+-------------------------------------------------------------------------------------------------------------------------------------+
2759|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`|
2760+-------------------------------------------------------------------------------------------------------------------------------------+
2761
2762+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2763|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`|
2764+-----------------------------------------------------------------------------------------------------------------------------------------------------+
2765
2766
2767-Wclass-varargs
2768---------------
2769Some of the diagnostics controlled by this flag are enabled by default.
2770
2771Also controls `-Wnon-pod-varargs`_.
2772
2773**Diagnostic text:**
2774
2775+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2776|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2777|                                                                                                                                       ||:diagtext:`function`   |||                                                                    ||
2778|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2779|                                                                                                                                       ||:diagtext:`block`      |||+------------------------------------------------------------------+||
2780|                                                                                                                                       |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2781|                                                                                                                                       ||:diagtext:`method`     |||+------------------------------------------------------------------+||
2782|                                                                                                                                       |+-----------------------+|+--------------------------------------------------------------------+|
2783|                                                                                                                                       ||:diagtext:`constructor`||                                                                      |
2784|                                                                                                                                       |+-----------------------+|                                                                      |
2785+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2786
2787
2788-Wcmse-union-leak
2789-----------------
2790This diagnostic is enabled by default.
2791
2792**Diagnostic text:**
2793
2794+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+
2795|:warning:`warning:` |nbsp| :diagtext:`passing union across security boundary via` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`may leak information`|
2796|                                                                                         ||+---------------------------------------------+||                                        |
2797|                                                                                         |||:diagtext:`parameter` |nbsp| :placeholder:`B`|||                                        |
2798|                                                                                         ||+---------------------------------------------+||                                        |
2799|                                                                                         |+-----------------------------------------------+|                                        |
2800|                                                                                         ||:diagtext:`return value`                       ||                                        |
2801|                                                                                         |+-----------------------------------------------+|                                        |
2802+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+
2803
2804
2805-Wcomma
2806-------
2807**Diagnostic text:**
2808
2809+-----------------------------------------------------------------------------+
2810|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2811+-----------------------------------------------------------------------------+
2812
2813
2814-Wcomment
2815---------
2816Some of the diagnostics controlled by this flag are enabled by default.
2817
2818**Diagnostic text:**
2819
2820+--------------------------------------------------------------------------------------------------+
2821|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2822+--------------------------------------------------------------------------------------------------+
2823
2824+-----------------------------------------------------------------------------------+
2825|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2826+-----------------------------------------------------------------------------------+
2827
2828+------------------------------------------------------------+
2829|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2830+------------------------------------------------------------+
2831
2832+-----------------------------------------------------------------+
2833|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2834+-----------------------------------------------------------------+
2835
2836
2837-Wcomments
2838----------
2839Synonym for `-Wcomment`_.
2840
2841
2842-Wcompare-distinct-pointer-types
2843--------------------------------
2844This diagnostic is enabled by default.
2845
2846**Diagnostic text:**
2847
2848+---------------------------------------------------------------------------+
2849|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2850+---------------------------------------------------------------------------+
2851
2852
2853-Wcomplex-component-init
2854------------------------
2855**Diagnostic text:**
2856
2857+----------------------------------------------------------------------------------------------------------------------+
2858|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2859+----------------------------------------------------------------------------------------------------------------------+
2860
2861
2862-Wconcepts-ts-compat
2863--------------------
2864This diagnostic is enabled by default.
2865
2866**Diagnostic text:**
2867
2868+---------------------------------------------------------------------------------------------------+
2869|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit the 'bool' keyword after 'concept'`|
2870+---------------------------------------------------------------------------------------------------+
2871
2872
2873-Wconditional-type-mismatch
2874---------------------------
2875This diagnostic is enabled by default.
2876
2877**Diagnostic text:**
2878
2879+----------------------------------------------------------------------------------------------+
2880|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2881+----------------------------------------------------------------------------------------------+
2882
2883
2884-Wconditional-uninitialized
2885---------------------------
2886**Diagnostic text:**
2887
2888+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2889|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2890|                                                                                                                            ||:diagtext:`used here`        ||
2891|                                                                                                                            |+-----------------------------+|
2892|                                                                                                                            ||:diagtext:`captured by block`||
2893|                                                                                                                            |+-----------------------------+|
2894+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2895
2896
2897-Wconfig-macros
2898---------------
2899This diagnostic is enabled by default.
2900
2901**Diagnostic text:**
2902
2903+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2904|: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`|
2905|                           ||:diagtext:`definition`||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2906|                           |+----------------------+|                                                                                                                                               |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`|||                                                         |
2907|                           ||:diagtext:`#undef`    ||                                                                                                                                               ||+----------------------------------------------+||                                                         |
2908|                           |+----------------------+|                                                                                                                                               |+------------------------------------------------+|                                                         |
2909|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2910|                           |                        |                                                                                                                                               |||:diagtext:`-U`:placeholder:`B`|                ||                                                         |
2911|                           |                        |                                                                                                                                               ||+------------------------------+                ||                                                         |
2912|                           |                        |                                                                                                                                               |+------------------------------------------------+|                                                         |
2913+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2914
2915
2916-Wconstant-conversion
2917---------------------
2918This diagnostic is enabled by default.
2919
2920Also controls `-Wbitfield-constant-conversion`_, `-Wobjc-bool-constant-conversion`_.
2921
2922**Diagnostic text:**
2923
2924+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2925|: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`|
2926+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2927
2928
2929-Wconstant-evaluated
2930--------------------
2931This diagnostic is enabled by default.
2932
2933**Diagnostic text:**
2934
2935+--------------------------------------------------------------------------------------------------------------------------------------------------+
2936|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always evaluate to 'true' in a manifestly constant-evaluated expression`|
2937+--------------------------------------------------------------------------------------------------------------------------------------------------+
2938
2939
2940-Wconstant-logical-operand
2941--------------------------
2942This diagnostic is enabled by default.
2943
2944**Diagnostic text:**
2945
2946+----------------------------------------------------------------------------------------------------------+
2947|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2948+----------------------------------------------------------------------------------------------------------+
2949
2950
2951-Wconstexpr-not-const
2952---------------------
2953This diagnostic is enabled by default.
2954
2955**Diagnostic text:**
2956
2957+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2958|: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`|
2959+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2960
2961
2962-Wconsumed
2963----------
2964**Diagnostic text:**
2965
2966+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2967|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which isn't marked as consumable`|
2968+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2969
2970+--------------------------------------------------------------------------------------------------------------------------------+
2971|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2972+--------------------------------------------------------------------------------------------------------------------------------+
2973
2974+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2975|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2976+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2977
2978+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2979|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2980+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2981
2982+---------------------------------------------------------------------------------------------------------------+
2983|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2984+---------------------------------------------------------------------------------------------------------------+
2985
2986+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2987|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2988+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2989
2990+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2991|: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`|
2992+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2993
2994+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2995|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2996+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2997
2998
2999-Wconversion
3000------------
3001Some of the diagnostics controlled by this flag are enabled by default.
3002
3003Also 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`_.
3004
3005**Diagnostic text:**
3006
3007+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
3008|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3009+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
3010
3011+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3012|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3013+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3014
3015+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3016|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`|
3017+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3018
3019+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3020|: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`|
3021+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3022
3023+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3024|: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`|
3025+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3026
3027
3028-Wconversion-null
3029-----------------
3030Synonym for `-Wnull-conversion`_.
3031
3032
3033-Wcoroutine
3034-----------
3035Synonym for `-Wcoroutine-missing-unhandled-exception`_.
3036
3037
3038-Wcoroutine-missing-unhandled-exception
3039---------------------------------------
3040This diagnostic is enabled by default.
3041
3042**Diagnostic text:**
3043
3044+-----------------------------------------------------------------------------------------------------------------------------------------------------+
3045|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
3046+-----------------------------------------------------------------------------------------------------------------------------------------------------+
3047
3048
3049-Wcovered-switch-default
3050------------------------
3051**Diagnostic text:**
3052
3053+--------------------------------------------------------------------------------------------------+
3054|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
3055+--------------------------------------------------------------------------------------------------+
3056
3057
3058-Wcpp
3059-----
3060Synonym for `-W#warnings`_.
3061
3062
3063-Wcstring-format-directive
3064--------------------------
3065**Diagnostic text:**
3066
3067+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
3068|: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| |+----------------------+|
3069|                                                                                                            ||:diagtext:`NSString`||                                                                                            ||:diagtext:`method`    ||
3070|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
3071|                                                                                                            ||:diagtext:`CFString`||                                                                                            ||:diagtext:`CFfunction`||
3072|                                                                                                            |+--------------------+|                                                                                            |+----------------------+|
3073+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
3074
3075
3076-Wctad-maybe-unsupported
3077------------------------
3078**Diagnostic text:**
3079
3080+--------------------------------------------------------------------------------------------------------------------------+
3081|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not intend to support class template argument deduction`|
3082+--------------------------------------------------------------------------------------------------------------------------+
3083
3084
3085-Wctor-dtor-privacy
3086-------------------
3087This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3088
3089-Wctu
3090-----
3091This diagnostic is enabled by default.
3092
3093**Diagnostic text:**
3094
3095+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3096|: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`|
3097+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3098
3099
3100-Wcuda-compat
3101-------------
3102Some of the diagnostics controlled by this flag are enabled by default.
3103
3104**Diagnostic text:**
3105
3106+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
3107|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
3108+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
3109
3110+---------------------------------------------------------------------------------------------------------------------------------+
3111|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
3112+---------------------------------------------------------------------------------------------------------------------------------+
3113
3114+------------------------------------------------------------------------------------------------------------+
3115|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
3116+------------------------------------------------------------------------------------------------------------+
3117
3118+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3119|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
3120+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3121
3122+--------------------------------------------------------------------------------------------------------------+
3123|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
3124+--------------------------------------------------------------------------------------------------------------+
3125
3126
3127-Wcustom-atomic-properties
3128--------------------------
3129**Diagnostic text:**
3130
3131+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
3132|: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)`|
3133|                                                                                                                                       ||:diagtext:`getter`||                                                                            |
3134|                                                                                                                                       |+------------------+|                                                                            |
3135|                                                                                                                                       ||:diagtext:`setter`||                                                                            |
3136|                                                                                                                                       |+------------------+|                                                                            |
3137+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
3138
3139
3140-Wdangling
3141----------
3142This diagnostic is enabled by default.
3143
3144Also controls `-Wdangling-field`_, `-Wdangling-gsl`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_.
3145
3146**Diagnostic text:**
3147
3148+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
3149|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`|
3150|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        ||+------------------------+||                                                               |
3151|                           |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+|||        |||:placeholder:`D` |nbsp| |||                                                               |
3152|                           |||                             ||:diagtext:`whose address is used as value of`          ||        ||+-------------------------------+------------------------------------+||||        ||+------------------------+||                                                               |
3153|                           |||                             |+-------------------------------------------------------+|        |||+-----------------------------+|:diagtext:`member of local variable`|||||        |+--------------------------+|                                                               |
3154|                           |||                             ||+--------------------------------+--------------------+||        ||||                             ||                                    |||||        ||                          ||                                                               |
3155|                           |||                             |||+------------------------------+|:diagtext:`bound to`|||        |||+-----------------------------+|                                    |||||        |+--------------------------+|                                                               |
3156|                           |||                             ||||                              ||                    |||        ||||:diagtext:`reference` |nbsp| ||                                    |||||        |                            |                                                               |
3157|                           |||                             |||+------------------------------+|                    |||        |||+-----------------------------+|                                    |||||        |                            |                                                               |
3158|                           |||                             ||||:diagtext:`implicitly` |nbsp| ||                    |||        ||+-------------------------------+------------------------------------+||||        |                            |                                                               |
3159|                           |||                             |||+------------------------------+|                    |||        |+----------------------------------------------------------------------+|||        |                            |                                                               |
3160|                           |||                             ||+--------------------------------+--------------------+||        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
3161|                           |||                             |+-------------------------------------------------------+|        |||:diagtext:`local` |nbsp| |+---------------------+|                   ||||        |                            |                                                               |
3162|                           |||                             |                                                         |        |||                         ||:diagtext:`variable` ||                   ||||        |                            |                                                               |
3163|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
3164|                           |||                             |                                                         |        |||                         ||:diagtext:`reference`||                   ||||        |                            |                                                               |
3165|                           |||                             |                                                         |        |||                         |+---------------------+|                   ||||        |                            |                                                               |
3166|                           |||                             |                                                         |        ||+-------------------------+-----------------------+                   ||||        |                            |                                                               |
3167|                           |||                             |                                                         |        |+----------------------------------------------------------------------+|||        |                            |                                                               |
3168|                           ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+||        |                            |                                                               |
3169|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
3170|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
3171|                           |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
3172|                           |||                                 ||:diagtext:`initializer list subobject of local variable`||                                                                             ||        |                            |                                                               |
3173|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
3174|                           |||                                 ||:diagtext:`local initializer list`                      ||                                                                             ||        |                            |                                                               |
3175|                           |||                                 |+--------------------------------------------------------+|                                                                             ||        |                            |                                                               |
3176|                           ||+---------------------------------+----------------------------------------------------------+                                                                             ||        |                            |                                                               |
3177|                           |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|        |                            |                                                               |
3178+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+
3179
3180+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
3181|: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`|
3182|                                                                           ||:diagtext:`temporary`                        ||                                                                                                                              ||:diagtext:`temporary`    ||                                                              |
3183|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
3184|                                                                           ||:diagtext:`backing array of initializer list`||                                                                                                                              ||:diagtext:`backing array`||                                                              |
3185|                                                                           |+---------------------------------------------+|                                                                                                                              |+-------------------------+|                                                              |
3186+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+
3187
3188
3189-Wdangling-else
3190---------------
3191This diagnostic is enabled by default.
3192
3193**Diagnostic text:**
3194
3195+---------------------------------------------------------------------------------+
3196|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
3197+---------------------------------------------------------------------------------+
3198
3199
3200-Wdangling-field
3201----------------
3202This diagnostic is enabled by default.
3203
3204**Diagnostic text:**
3205
3206+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3207|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
3208|                                                                                                                                     ||:diagtext:`variable` ||                        |
3209|                                                                                                                                     |+---------------------+|                        |
3210|                                                                                                                                     ||:diagtext:`parameter`||                        |
3211|                                                                                                                                     |+---------------------+|                        |
3212+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3213
3214+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
3215|: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`|
3216|                           ||:diagtext:`reference`                                 ||        ||                                ||                                                  ||:diagtext:`binds to`||                                                                                                            |
3217|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
3218|                           ||:diagtext:`backing array for 'std::initializer\_list'`||        ||:diagtext:`subobject of` |nbsp| ||                                                  ||:diagtext:`is`      ||                                                                                                            |
3219|                           |+------------------------------------------------------+|        |+--------------------------------+|                                                  |+--------------------+|                                                                                                            |
3220+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+
3221
3222+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3223|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`|
3224|                                                                                                                                               ||:diagtext:`variable` ||                        |
3225|                                                                                                                                               |+---------------------+|                        |
3226|                                                                                                                                               ||:diagtext:`parameter`||                        |
3227|                                                                                                                                               |+---------------------+|                        |
3228+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+
3229
3230+--------------------------------------------------------------------------------------------------------------------------------------------------+
3231|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`|
3232+--------------------------------------------------------------------------------------------------------------------------------------------------+
3233
3234
3235-Wdangling-gsl
3236--------------
3237This diagnostic is enabled by default.
3238
3239**Diagnostic text:**
3240
3241+---------------------------------------------------------------------------------------------------------------------+
3242|:warning:`warning:` |nbsp| :diagtext:`object backing the pointer will be destroyed at the end of the full-expression`|
3243+---------------------------------------------------------------------------------------------------------------------+
3244
3245+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3246|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object`|
3247+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3248
3249
3250-Wdangling-initializer-list
3251---------------------------
3252This diagnostic is enabled by default.
3253
3254**Diagnostic text:**
3255
3256+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
3257|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`|
3258|                                                            ||:diagtext:`initializer list subobject of the allocated object`||                                                                       |
3259|                                                            |+--------------------------------------------------------------+|                                                                       |
3260|                                                            ||:diagtext:`the allocated initializer list`                    ||                                                                       |
3261|                                                            |+--------------------------------------------------------------+|                                                                       |
3262+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+
3263
3264
3265-Wdarwin-sdk-settings
3266---------------------
3267This diagnostic is enabled by default.
3268
3269**Diagnostic text:**
3270
3271+----------------------------------------------------------------------------------------------------------+
3272|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`|
3273+----------------------------------------------------------------------------------------------------------+
3274
3275
3276-Wdate-time
3277-----------
3278**Diagnostic text:**
3279
3280+------------------------------------------------------------------------------------------+
3281|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
3282+------------------------------------------------------------------------------------------+
3283
3284
3285-Wdealloc-in-category
3286---------------------
3287This diagnostic is enabled by default.
3288
3289**Diagnostic text:**
3290
3291+---------------------------------------------------------------------------------+
3292|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
3293+---------------------------------------------------------------------------------+
3294
3295
3296-Wdebug-compression-unavailable
3297-------------------------------
3298This diagnostic is enabled by default.
3299
3300**Diagnostic text:**
3301
3302+------------------------------------------------------------------------------------------+
3303|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
3304+------------------------------------------------------------------------------------------+
3305
3306
3307-Wdeclaration-after-statement
3308-----------------------------
3309**Diagnostic text:**
3310
3311+-----------------------------------------------------------------------------------+
3312|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
3313+-----------------------------------------------------------------------------------+
3314
3315
3316-Wdefaulted-function-deleted
3317----------------------------
3318This diagnostic is enabled by default.
3319
3320**Diagnostic text:**
3321
3322+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+
3323|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison operator` |nbsp| :diagtext:`is implicitly deleted`|
3324|                                                                   ||:diagtext:`<ERROR>`   ||                                                                                |
3325|                                                                   |+----------------------+|                                                                                |
3326|                                                                   ||:diagtext:`equality`  ||                                                                                |
3327|                                                                   |+----------------------+|                                                                                |
3328|                                                                   ||:diagtext:`three-way` ||                                                                                |
3329|                                                                   |+----------------------+|                                                                                |
3330|                                                                   ||:diagtext:`equality`  ||                                                                                |
3331|                                                                   |+----------------------+|                                                                                |
3332|                                                                   ||:diagtext:`relational`||                                                                                |
3333|                                                                   |+----------------------+|                                                                                |
3334+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+
3335
3336+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
3337|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`|
3338|                                                                   ||:diagtext:`default constructor`     ||                                         |
3339|                                                                   |+------------------------------------+|                                         |
3340|                                                                   ||:diagtext:`copy constructor`        ||                                         |
3341|                                                                   |+------------------------------------+|                                         |
3342|                                                                   ||:diagtext:`move constructor`        ||                                         |
3343|                                                                   |+------------------------------------+|                                         |
3344|                                                                   ||:diagtext:`copy assignment operator`||                                         |
3345|                                                                   |+------------------------------------+|                                         |
3346|                                                                   ||:diagtext:`move assignment operator`||                                         |
3347|                                                                   |+------------------------------------+|                                         |
3348|                                                                   ||:diagtext:`destructor`              ||                                         |
3349|                                                                   |+------------------------------------+|                                         |
3350+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+
3351
3352
3353-Wdelegating-ctor-cycles
3354------------------------
3355This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
3356
3357**Diagnostic text:**
3358
3359+------------------------------------------------------------------------------------------------------------------------+
3360|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
3361+------------------------------------------------------------------------------------------------------------------------+
3362
3363
3364-Wdelete-abstract-non-virtual-dtor
3365----------------------------------
3366This diagnostic is enabled by default.
3367
3368**Diagnostic text:**
3369
3370+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3371|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
3372|                           ||:diagtext:`delete`    ||                                                                                                                        |
3373|                           |+----------------------+|                                                                                                                        |
3374|                           ||:diagtext:`destructor`||                                                                                                                        |
3375|                           |+----------------------+|                                                                                                                        |
3376+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
3377
3378
3379-Wdelete-incomplete
3380-------------------
3381This diagnostic is enabled by default.
3382
3383**Diagnostic text:**
3384
3385+-------------------------------------------------------------------------------------------------------------------+
3386|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
3387+-------------------------------------------------------------------------------------------------------------------+
3388
3389+--------------------------------------------------------------------------------------------------------------------------------------------------+
3390|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
3391+--------------------------------------------------------------------------------------------------------------------------------------------------+
3392
3393
3394-Wdelete-non-abstract-non-virtual-dtor
3395--------------------------------------
3396**Diagnostic text:**
3397
3398+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3399|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
3400|                           ||:diagtext:`delete`    ||                                                                                                                                        |
3401|                           |+----------------------+|                                                                                                                                        |
3402|                           ||:diagtext:`destructor`||                                                                                                                                        |
3403|                           |+----------------------+|                                                                                                                                        |
3404+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
3405
3406
3407-Wdelete-non-virtual-dtor
3408-------------------------
3409Some of the diagnostics controlled by this flag are enabled by default.
3410
3411Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_.
3412
3413
3414-Wdeprecated
3415------------
3416Some of the diagnostics controlled by this flag are enabled by default.
3417
3418Also controls `-Wdeprecated-anon-enum-enum-conversion`_, `-Wdeprecated-array-compare`_, `-Wdeprecated-attributes`_, `-Wdeprecated-comma-subscript`_, `-Wdeprecated-copy`_, `-Wdeprecated-copy-dtor`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-enum-compare`_, `-Wdeprecated-enum-compare-conditional`_, `-Wdeprecated-enum-enum-conversion`_, `-Wdeprecated-enum-float-conversion`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-volatile`_, `-Wdeprecated-writable-strings`_.
3419
3420**Diagnostic text:**
3421
3422+---------------------------------------------------------------+
3423|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
3424+---------------------------------------------------------------+
3425
3426+---------------------------------------------------------------------------------------------------------+
3427|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
3428+---------------------------------------------------------------------------------------------------------+
3429
3430+-------------------------------------------------------------------------------------------------------------------------------------+
3431|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
3432+-------------------------------------------------------------------------------------------------------------------------------------+
3433
3434+----------------------------------------------------------------------------------------------------------------------------------------+
3435|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
3436+----------------------------------------------------------------------------------------------------------------------------------------+
3437
3438+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3439|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
3440+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3441
3442+----------------------------------------------------------------------------------------------------------+
3443|:warning:`warning:` |nbsp| :diagtext:`-fconcepts-ts is deprecated - use '-std=c++20' for Concepts support`|
3444+----------------------------------------------------------------------------------------------------------+
3445
3446+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3447|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
3448+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3449
3450+------------------------------------------------------------------------------------+
3451|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
3452+------------------------------------------------------------------------------------+
3453
3454
3455-Wdeprecated-anon-enum-enum-conversion
3456--------------------------------------
3457This diagnostic is enabled by default.
3458
3459**Diagnostic text:**
3460
3461+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3462|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
3463|                           ||:diagtext:`arithmetic between`            ||                                                                                |
3464|                           |+------------------------------------------+|                                                                                |
3465|                           ||:diagtext:`bitwise operation between`     ||                                                                                |
3466|                           |+------------------------------------------+|                                                                                |
3467|                           ||:diagtext:`comparison of`                 ||                                                                                |
3468|                           |+------------------------------------------+|                                                                                |
3469|                           ||:diagtext:`conditional expression between`||                                                                                |
3470|                           |+------------------------------------------+|                                                                                |
3471|                           ||:diagtext:`compound assignment of`        ||                                                                                |
3472|                           |+------------------------------------------+|                                                                                |
3473+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3474
3475
3476-Wdeprecated-array-compare
3477--------------------------
3478This diagnostic is enabled by default.
3479
3480**Diagnostic text:**
3481
3482+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3483|:warning:`warning:` |nbsp| :diagtext:`comparison between two arrays is deprecated; to compare array addresses, use unary '+' to decay operands to pointers`|
3484+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
3485
3486
3487-Wdeprecated-attributes
3488-----------------------
3489This diagnostic is enabled by default.
3490
3491**Diagnostic text:**
3492
3493+------------------------------------------------------------------------------------------------------------------------------------------------+
3494|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
3495+------------------------------------------------------------------------------------------------------------------------------------------------+
3496
3497
3498-Wdeprecated-comma-subscript
3499----------------------------
3500This diagnostic is enabled by default.
3501
3502**Diagnostic text:**
3503
3504+--------------------------------------------------------------------------------------------------+
3505|:warning:`warning:` |nbsp| :diagtext:`top-level comma expression in array subscript is deprecated`|
3506+--------------------------------------------------------------------------------------------------+
3507
3508
3509-Wdeprecated-copy
3510-----------------
3511**Diagnostic text:**
3512
3513+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+
3514|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared copy` |nbsp| |+-------------------------------+|
3515|                                                                          ||:diagtext:`constructor`        ||                                                                                                                            ||:diagtext:`assignment operator`||
3516|                                                                          |+-------------------------------+|                                                                                                                            |+-------------------------------+|
3517|                                                                          ||:diagtext:`assignment operator`||                                                                                                                            ||:diagtext:`constructor`        ||
3518|                                                                          |+-------------------------------+|                                                                                                                            |+-------------------------------+|
3519+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+
3520
3521
3522-Wdeprecated-copy-dtor
3523----------------------
3524**Diagnostic text:**
3525
3526+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
3527|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared destructor`|
3528|                                                                          ||:diagtext:`constructor`        ||                                                                                                                          |
3529|                                                                          |+-------------------------------+|                                                                                                                          |
3530|                                                                          ||:diagtext:`assignment operator`||                                                                                                                          |
3531|                                                                          |+-------------------------------+|                                                                                                                          |
3532+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
3533
3534
3535-Wdeprecated-declarations
3536-------------------------
3537This diagnostic is enabled by default.
3538
3539**Diagnostic text:**
3540
3541+--------------------------------------------------------------------------------------------------------------------+
3542|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
3543+--------------------------------------------------------------------------------------------------------------------+
3544
3545+-----------------------------------------------------------------------------------------------------------------+
3546|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
3547+-----------------------------------------------------------------------------------------------------------------+
3548
3549+----------------------------------------------------------------------------+
3550|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3551+----------------------------------------------------------------------------+
3552
3553+---------------------------------------------------------------------------------------------------------------------+
3554|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
3555+---------------------------------------------------------------------------------------------------------------------+
3556
3557+-----------------------------------------------------------------------------------------------------+
3558|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
3559+-----------------------------------------------------------------------------------------------------+
3560
3561+-------------------------------------------------------------------------------------------------------------------------------------+
3562|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
3563+-------------------------------------------------------------------------------------------------------------------------------------+
3564
3565
3566-Wdeprecated-dynamic-exception-spec
3567-----------------------------------
3568**Diagnostic text:**
3569
3570+--------------------------------------------------------------------------------------+
3571|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
3572+--------------------------------------------------------------------------------------+
3573
3574
3575-Wdeprecated-enum-compare
3576-------------------------
3577This diagnostic is enabled by default.
3578
3579**Diagnostic text:**
3580
3581+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3582|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
3583|                           ||:diagtext:`arithmetic between`            ||                                                                                |
3584|                           |+------------------------------------------+|                                                                                |
3585|                           ||:diagtext:`bitwise operation between`     ||                                                                                |
3586|                           |+------------------------------------------+|                                                                                |
3587|                           ||:diagtext:`comparison of`                 ||                                                                                |
3588|                           |+------------------------------------------+|                                                                                |
3589|                           ||:diagtext:`conditional expression between`||                                                                                |
3590|                           |+------------------------------------------+|                                                                                |
3591|                           ||:diagtext:`compound assignment of`        ||                                                                                |
3592|                           |+------------------------------------------+|                                                                                |
3593+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3594
3595
3596-Wdeprecated-enum-compare-conditional
3597-------------------------------------
3598This diagnostic is enabled by default.
3599
3600**Diagnostic text:**
3601
3602+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3603|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
3604|                           ||:diagtext:`arithmetic between`            ||                                                                                |
3605|                           |+------------------------------------------+|                                                                                |
3606|                           ||:diagtext:`bitwise operation between`     ||                                                                                |
3607|                           |+------------------------------------------+|                                                                                |
3608|                           ||:diagtext:`comparison of`                 ||                                                                                |
3609|                           |+------------------------------------------+|                                                                                |
3610|                           ||:diagtext:`conditional expression between`||                                                                                |
3611|                           |+------------------------------------------+|                                                                                |
3612|                           ||:diagtext:`compound assignment of`        ||                                                                                |
3613|                           |+------------------------------------------+|                                                                                |
3614+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3615
3616
3617-Wdeprecated-enum-enum-conversion
3618---------------------------------
3619This diagnostic is enabled by default.
3620
3621**Diagnostic text:**
3622
3623+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3624|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`|
3625|                           ||:diagtext:`arithmetic between`            ||                                                                                |
3626|                           |+------------------------------------------+|                                                                                |
3627|                           ||:diagtext:`bitwise operation between`     ||                                                                                |
3628|                           |+------------------------------------------+|                                                                                |
3629|                           ||:diagtext:`comparison of`                 ||                                                                                |
3630|                           |+------------------------------------------+|                                                                                |
3631|                           ||:diagtext:`conditional expression between`||                                                                                |
3632|                           |+------------------------------------------+|                                                                                |
3633|                           ||:diagtext:`compound assignment of`        ||                                                                                |
3634|                           |+------------------------------------------+|                                                                                |
3635+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+
3636
3637
3638-Wdeprecated-enum-float-conversion
3639----------------------------------
3640This diagnostic is enabled by default.
3641
3642**Diagnostic text:**
3643
3644+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+
3645|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is deprecated`|
3646|                           ||:diagtext:`arithmetic between`            ||        ||:diagtext:`floating-point`||                                                        ||:diagtext:`with`||        ||:diagtext:`enumeration`   ||                                                                                 |
3647|                           |+------------------------------------------+|        |+--------------------------+|                                                        |+----------------+|        |+--------------------------+|                                                                                 |
3648|                           ||:diagtext:`bitwise operation between`     ||        ||:diagtext:`enumeration`   ||                                                        ||:diagtext:`from`||        ||:diagtext:`floating-point`||                                                                                 |
3649|                           |+------------------------------------------+|        |+--------------------------+|                                                        |+----------------+|        |+--------------------------+|                                                                                 |
3650|                           ||:diagtext:`comparison of`                 ||        |                            |                                                        ||:diagtext:`and` ||        |                            |                                                                                 |
3651|                           |+------------------------------------------+|        |                            |                                                        |+----------------+|        |                            |                                                                                 |
3652|                           ||:diagtext:`conditional expression between`||        |                            |                                                        |                  |        |                            |                                                                                 |
3653|                           |+------------------------------------------+|        |                            |                                                        |                  |        |                            |                                                                                 |
3654|                           ||:diagtext:`compound assignment of`        ||        |                            |                                                        |                  |        |                            |                                                                                 |
3655|                           |+------------------------------------------+|        |                            |                                                        |                  |        |                            |                                                                                 |
3656+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+
3657
3658
3659-Wdeprecated-implementations
3660----------------------------
3661**Diagnostic text:**
3662
3663+----------------------------------------------------------------------+----------------------+
3664|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
3665|                                                                      ||:diagtext:`method`  ||
3666|                                                                      |+--------------------+|
3667|                                                                      ||:diagtext:`class`   ||
3668|                                                                      |+--------------------+|
3669|                                                                      ||:diagtext:`category`||
3670|                                                                      |+--------------------+|
3671+----------------------------------------------------------------------+----------------------+
3672
3673+----------------------------------------------------------------------+
3674|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
3675+----------------------------------------------------------------------+
3676
3677
3678-Wdeprecated-increment-bool
3679---------------------------
3680This diagnostic is enabled by default.
3681
3682**Diagnostic text:**
3683
3684+---------------------------------------------------------------------------------------------------------------------+
3685|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
3686+---------------------------------------------------------------------------------------------------------------------+
3687
3688
3689-Wdeprecated-objc-isa-usage
3690---------------------------
3691This diagnostic is enabled by default.
3692
3693**Diagnostic text:**
3694
3695+-------------------------------------------------------------------------------------------------------------------+
3696|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
3697+-------------------------------------------------------------------------------------------------------------------+
3698
3699+----------------------------------------------------------------------------------------------------------------------+
3700|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
3701+----------------------------------------------------------------------------------------------------------------------+
3702
3703
3704-Wdeprecated-objc-pointer-introspection
3705---------------------------------------
3706This diagnostic is enabled by default.
3707
3708Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
3709
3710**Diagnostic text:**
3711
3712+--------------------------------------------------------------------------------------------------------------------------+
3713|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3714+--------------------------------------------------------------------------------------------------------------------------+
3715
3716
3717-Wdeprecated-objc-pointer-introspection-performSelector
3718-------------------------------------------------------
3719This diagnostic is enabled by default.
3720
3721**Diagnostic text:**
3722
3723+--------------------------------------------------------------------------------------------------------------------------+
3724|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
3725+--------------------------------------------------------------------------------------------------------------------------+
3726
3727
3728-Wdeprecated-register
3729---------------------
3730This diagnostic is enabled by default.
3731
3732**Diagnostic text:**
3733
3734+-------------------------------------------------------------------------------------------------------------------+
3735|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
3736+-------------------------------------------------------------------------------------------------------------------+
3737
3738
3739-Wdeprecated-this-capture
3740-------------------------
3741**Diagnostic text:**
3742
3743+-------------------------------------------------------------------------------------------------------------+
3744|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`|
3745+-------------------------------------------------------------------------------------------------------------+
3746
3747
3748-Wdeprecated-volatile
3749---------------------
3750This diagnostic is enabled by default.
3751
3752**Diagnostic text:**
3753
3754+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3755|:warning:`warning:` |nbsp| :diagtext:`compound assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3756+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3757
3758+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+
3759|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of object of volatile-qualified type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated`|
3760|                           ||:diagtext:`decrement`||                                                                                                                 |
3761|                           |+---------------------+|                                                                                                                 |
3762|                           ||:diagtext:`increment`||                                                                                                                 |
3763|                           |+---------------------+|                                                                                                                 |
3764+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+
3765
3766+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3767|:warning:`warning:` |nbsp| :diagtext:`use of result of assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3768+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3769
3770+---------------------------------------------------------------------------------------------------------------------------------+
3771|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified parameter type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3772+---------------------------------------------------------------------------------------------------------------------------------+
3773
3774+------------------------------------------------------------------------------------------------------------------------------+
3775|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
3776+------------------------------------------------------------------------------------------------------------------------------+
3777
3778+---------------------------------------------------------------------------------------------------------+
3779|:warning:`warning:` |nbsp| :diagtext:`volatile qualifier in structured binding declaration is deprecated`|
3780+---------------------------------------------------------------------------------------------------------+
3781
3782
3783-Wdeprecated-writable-strings
3784-----------------------------
3785Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
3786
3787
3788-Wdirect-ivar-access
3789--------------------
3790**Diagnostic text:**
3791
3792+------------------------------------------------------------------------------------------------------------------------------+
3793|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
3794+------------------------------------------------------------------------------------------------------------------------------+
3795
3796
3797-Wdisabled-macro-expansion
3798--------------------------
3799**Diagnostic text:**
3800
3801+----------------------------------------------------------------------------+
3802|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
3803+----------------------------------------------------------------------------+
3804
3805
3806-Wdisabled-optimization
3807-----------------------
3808This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3809
3810-Wdiscard-qual
3811--------------
3812This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3813
3814-Wdistributed-object-modifiers
3815------------------------------
3816This diagnostic is enabled by default.
3817
3818**Diagnostic text:**
3819
3820+----------------------------------------------------------------------------------------------------------------------------------------------+
3821|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
3822+----------------------------------------------------------------------------------------------------------------------------------------------+
3823
3824+-------------------------------------------------------------------------------------------------------------------------------------------+
3825|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
3826+-------------------------------------------------------------------------------------------------------------------------------------------+
3827
3828
3829-Wdiv-by-zero
3830-------------
3831Synonym for `-Wdivision-by-zero`_.
3832
3833
3834-Wdivision-by-zero
3835------------------
3836This diagnostic is enabled by default.
3837
3838**Diagnostic text:**
3839
3840+---------------------------+-----------------------+----------------------------------------+
3841|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
3842|                           ||:diagtext:`remainder`||                                        |
3843|                           |+---------------------+|                                        |
3844|                           ||:diagtext:`division` ||                                        |
3845|                           |+---------------------+|                                        |
3846+---------------------------+-----------------------+----------------------------------------+
3847
3848
3849-Wdll-attribute-on-redeclaration
3850--------------------------------
3851This diagnostic is enabled by default.
3852
3853**Diagnostic text:**
3854
3855+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3856|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
3857+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3858
3859
3860-Wdllexport-explicit-instantiation-decl
3861---------------------------------------
3862This diagnostic is enabled by default.
3863
3864**Diagnostic text:**
3865
3866+---------------------------------------------------------------------------------------------------+
3867|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
3868+---------------------------------------------------------------------------------------------------+
3869
3870
3871-Wdllimport-static-field-def
3872----------------------------
3873This diagnostic is enabled by default.
3874
3875**Diagnostic text:**
3876
3877+---------------------------------------------------------------------------+
3878|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
3879+---------------------------------------------------------------------------+
3880
3881
3882-Wdocumentation
3883---------------
3884Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
3885
3886**Diagnostic text:**
3887
3888+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3889|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
3890|                                        ||:diagtext:`\\`|||:diagtext:`class`    ||                                                                        ||:diagtext:`class`    ||                               |
3891|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3892|                                        ||:diagtext:`@` |||:diagtext:`interface`||                                                                        ||:diagtext:`interface`||                               |
3893|                                        |+--------------+|+---------------------+|                                                                        |+---------------------+|                               |
3894|                                        |                ||:diagtext:`protocol` ||                                                                        ||:diagtext:`protocol` ||                               |
3895|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3896|                                        |                ||:diagtext:`struct`   ||                                                                        ||:diagtext:`struct`   ||                               |
3897|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3898|                                        |                ||:diagtext:`union`    ||                                                                        ||:diagtext:`union`    ||                               |
3899|                                        |                |+---------------------+|                                                                        |+---------------------+|                               |
3900+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3901
3902+-----------------------------------------------------------+----------------+-----------------------------+
3903|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
3904|                                                           ||:diagtext:`\\`||                             |
3905|                                                           |+--------------+|                             |
3906|                                                           ||:diagtext:`@` ||                             |
3907|                                                           |+--------------+|                             |
3908+-----------------------------------------------------------+----------------+-----------------------------+
3909
3910+------------------------------------------------------------------+----------------+-------------------------------------+
3911|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
3912|                                                                  ||:diagtext:`\\`||                                     |
3913|                                                                  |+--------------+|                                     |
3914|                                                                  ||:diagtext:`@` ||                                     |
3915|                                                                  |+--------------+|                                     |
3916+------------------------------------------------------------------+----------------+-------------------------------------+
3917
3918+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3919|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
3920|                                        ||:diagtext:`\\`|||:diagtext:`classdesign` ||                                                                                             |
3921|                                        |+--------------+|+------------------------+|                                                                                             |
3922|                                        ||:diagtext:`@` |||:diagtext:`coclass`     ||                                                                                             |
3923|                                        |+--------------+|+------------------------+|                                                                                             |
3924|                                        |                ||:diagtext:`dependency`  ||                                                                                             |
3925|                                        |                |+------------------------+|                                                                                             |
3926|                                        |                ||:diagtext:`helper`      ||                                                                                             |
3927|                                        |                |+------------------------+|                                                                                             |
3928|                                        |                ||:diagtext:`helperclass` ||                                                                                             |
3929|                                        |                |+------------------------+|                                                                                             |
3930|                                        |                ||:diagtext:`helps`       ||                                                                                             |
3931|                                        |                |+------------------------+|                                                                                             |
3932|                                        |                ||:diagtext:`instancesize`||                                                                                             |
3933|                                        |                |+------------------------+|                                                                                             |
3934|                                        |                ||:diagtext:`ownership`   ||                                                                                             |
3935|                                        |                |+------------------------+|                                                                                             |
3936|                                        |                ||:diagtext:`performance` ||                                                                                             |
3937|                                        |                |+------------------------+|                                                                                             |
3938|                                        |                ||:diagtext:`security`    ||                                                                                             |
3939|                                        |                |+------------------------+|                                                                                             |
3940|                                        |                ||:diagtext:`superclass`  ||                                                                                             |
3941|                                        |                |+------------------------+|                                                                                             |
3942+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3943
3944+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3945|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
3946|                                        ||:diagtext:`\\`|||:diagtext:`function`     ||                                                                     ||:diagtext:`a function`           ||                               |
3947|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3948|                                        ||:diagtext:`@` |||:diagtext:`functiongroup`||                                                                     ||:diagtext:`a function`           ||                               |
3949|                                        |+--------------+|+-------------------------+|                                                                     |+---------------------------------+|                               |
3950|                                        |                ||:diagtext:`method`       ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3951|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3952|                                        |                ||:diagtext:`methodgroup`  ||                                                                     ||:diagtext:`an Objective-C method`||                               |
3953|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3954|                                        |                ||:diagtext:`callback`     ||                                                                     ||:diagtext:`a pointer to function`||                               |
3955|                                        |                |+-------------------------+|                                                                     |+---------------------------------+|                               |
3956+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3957
3958+-------------------------------------------------------------------------------------------------------+
3959|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
3960+-------------------------------------------------------------------------------------------------------+
3961
3962+-------------------------------------------------------------------------------+
3963|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
3964+-------------------------------------------------------------------------------+
3965
3966+----------------------------------------+----------------+-------------------------------------------------------------------------+
3967|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not have a valid word argument`|
3968|                                        ||:diagtext:`\\`||                                                                         |
3969|                                        |+--------------+|                                                                         |
3970|                                        ||:diagtext:`@` ||                                                                         |
3971|                                        |+--------------+|                                                                         |
3972+----------------------------------------+----------------+-------------------------------------------------------------------------+
3973
3974+-----------------------------------------------------------------------------------------------------+
3975|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3976+-----------------------------------------------------------------------------------------------------+
3977
3978+------------------------------------------------------------------------------------------------------------------------------------------+
3979|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
3980+------------------------------------------------------------------------------------------------------------------------------------------+
3981
3982+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3983|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
3984|                                        ||:diagtext:`\\`||                                                                                           |
3985|                                        |+--------------+|                                                                                           |
3986|                                        ||:diagtext:`@` ||                                                                                           |
3987|                                        |+--------------+|                                                                                           |
3988+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3989
3990+---------------------------------------------------------------------------------------------------------------------+
3991|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
3992+---------------------------------------------------------------------------------------------------------------------+
3993
3994+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3995|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
3996|                                        ||:diagtext:`\\`||                                                                                     ||:diagtext:`function returning void`||
3997|                                        |+--------------+|                                                                                     |+-----------------------------------+|
3998|                                        ||:diagtext:`@` ||                                                                                     ||:diagtext:`constructor`            ||
3999|                                        |+--------------+|                                                                                     |+-----------------------------------+|
4000|                                        |                |                                                                                     ||:diagtext:`destructor`             ||
4001|                                        |                |                                                                                     |+-----------------------------------+|
4002|                                        |                |                                                                                     ||:diagtext:`method returning void`  ||
4003|                                        |                |                                                                                     |+-----------------------------------+|
4004+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
4005
4006+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
4007|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
4008|                                        ||:diagtext:`\\`||                                                                                                                |
4009|                                        |+--------------+|                                                                                                                |
4010|                                        ||:diagtext:`@` ||                                                                                                                |
4011|                                        |+--------------+|                                                                                                                |
4012+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
4013
4014+--------------------------------------------------------------------------------------------------------------+
4015|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
4016+--------------------------------------------------------------------------------------------------------------+
4017
4018+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
4019|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
4020|                                        ||:diagtext:`\\`||                                                                                            |
4021|                                        |+--------------+|                                                                                            |
4022|                                        ||:diagtext:`@` ||                                                                                            |
4023|                                        |+--------------+|                                                                                            |
4024+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
4025
4026+------------------------------------------------------------------------------------------------------------------------------+
4027|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
4028+------------------------------------------------------------------------------------------------------------------------------+
4029
4030+---------------------------------------------------------------------+
4031|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
4032+---------------------------------------------------------------------+
4033
4034+----------------------------------------+----------------+------------------------------------------------------------------------------+
4035|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
4036|                                        ||:diagtext:`\\`||                                                                              |
4037|                                        |+--------------+|                                                                              |
4038|                                        ||:diagtext:`@` ||                                                                              |
4039|                                        |+--------------+|                                                                              |
4040+----------------------------------------+----------------+------------------------------------------------------------------------------+
4041
4042
4043-Wdocumentation-deprecated-sync
4044-------------------------------
4045**Diagnostic text:**
4046
4047+-------------------------------------------------------------------+----------------+-------------------------------------------------------------------------+
4048|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '`|+--------------+|:diagtext:`deprecated' command but does not have a deprecation attribute`|
4049|                                                                   ||:diagtext:`\\`||                                                                         |
4050|                                                                   |+--------------+|                                                                         |
4051|                                                                   ||:diagtext:`@` ||                                                                         |
4052|                                                                   |+--------------+|                                                                         |
4053+-------------------------------------------------------------------+----------------+-------------------------------------------------------------------------+
4054
4055
4056-Wdocumentation-html
4057--------------------
4058**Diagnostic text:**
4059
4060+-----------------------------------------------------------------------------------------------+
4061|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
4062+-----------------------------------------------------------------------------------------------+
4063
4064+--------------------------------------------------------------------------------+
4065|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
4066+--------------------------------------------------------------------------------+
4067
4068+--------------------------------------------------------------------------------------------------+
4069|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
4070+--------------------------------------------------------------------------------------------------+
4071
4072+-----------------------------------------------------------------------------------------------------------------------------+
4073|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
4074+-----------------------------------------------------------------------------------------------------------------------------+
4075
4076
4077-Wdocumentation-pedantic
4078------------------------
4079Also controls `-Wdocumentation-unknown-command`_.
4080
4081**Diagnostic text:**
4082
4083+-----------------------------------------------------------------------------------------------+
4084|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
4085+-----------------------------------------------------------------------------------------------+
4086
4087
4088-Wdocumentation-unknown-command
4089-------------------------------
4090**Diagnostic text:**
4091
4092+--------------------------------------------------------------------------------------------------------------------------------------------+
4093|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
4094+--------------------------------------------------------------------------------------------------------------------------------------------+
4095
4096+---------------------------------------------------------------+
4097|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
4098+---------------------------------------------------------------+
4099
4100
4101-Wdollar-in-identifier-extension
4102--------------------------------
4103**Diagnostic text:**
4104
4105+--------------------------------------------------------+
4106|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
4107+--------------------------------------------------------+
4108
4109
4110-Wdouble-promotion
4111------------------
4112**Diagnostic text:**
4113
4114+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4115|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
4116+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4117
4118
4119-Wdtor-name
4120-----------
4121Some of the diagnostics controlled by this flag are enabled by default.
4122
4123**Diagnostic text:**
4124
4125+----------------------------------------------------------------------------------------------------+
4126|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`|
4127+----------------------------------------------------------------------------------------------------+
4128
4129+-----------------------------------------------------------------------------------------------------------------------------------+
4130|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`|
4131+-----------------------------------------------------------------------------------------------------------------------------------+
4132
4133+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4134|:warning:`warning:` |nbsp| :diagtext:`qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup`|
4135+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4136
4137
4138-Wdtor-typedef
4139--------------
4140This diagnostic is an error by default, but the flag ``-Wno-dtor-typedef`` can be used to disable the error.
4141
4142**Diagnostic text:**
4143
4144+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+
4145|:error:`error:` |nbsp| :diagtext:`destructor cannot be declared using a` |nbsp| |+----------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`of the class name`|
4146|                                                                                ||:diagtext:`typedef`   ||                                                             |
4147|                                                                                |+----------------------+|                                                             |
4148|                                                                                ||:diagtext:`type alias`||                                                             |
4149|                                                                                |+----------------------+|                                                             |
4150+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+
4151
4152
4153-Wduplicate-decl-specifier
4154--------------------------
4155Some of the diagnostics controlled by this flag are enabled by default.
4156
4157**Diagnostic text:**
4158
4159+-----------------------------------------------------------------------------------------------------+
4160|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
4161+-----------------------------------------------------------------------------------------------------+
4162
4163+-----------------------------------------------------------------------------------------------------+
4164|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
4165+-----------------------------------------------------------------------------------------------------+
4166
4167+-------------------------------------------------------------------------------------------+
4168|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`|
4169+-------------------------------------------------------------------------------------------+
4170
4171+-----------------------------------------------------------------------------------------------------+
4172|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
4173+-----------------------------------------------------------------------------------------------------+
4174
4175
4176-Wduplicate-enum
4177----------------
4178**Diagnostic text:**
4179
4180+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4181|: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`|
4182+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4183
4184
4185-Wduplicate-method-arg
4186----------------------
4187**Diagnostic text:**
4188
4189+------------------------------------------------------------------------------------------------+
4190|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
4191+------------------------------------------------------------------------------------------------+
4192
4193
4194-Wduplicate-method-match
4195------------------------
4196**Diagnostic text:**
4197
4198+-----------------------------------------------------------------------------------------------------------------------------------+
4199|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
4200+-----------------------------------------------------------------------------------------------------------------------------------+
4201
4202
4203-Wduplicate-protocol
4204--------------------
4205This diagnostic is enabled by default.
4206
4207**Diagnostic text:**
4208
4209+-----------------------------------------------------------------------------------------------------------------------------+
4210|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
4211+-----------------------------------------------------------------------------------------------------------------------------+
4212
4213
4214-Wdynamic-class-memaccess
4215-------------------------
4216This diagnostic is enabled by default.
4217
4218**Diagnostic text:**
4219
4220+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
4221|: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| |+-----------------------+|
4222|                           ||:diagtext:`destination for`  ||                                                                                                ||                                      ||                                                                                             ||:diagtext:`overwritten`||
4223|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
4224|                           ||:diagtext:`source of`        ||                                                                                                ||:diagtext:`class containing a` |nbsp| ||                                                                                             ||:diagtext:`copied`     ||
4225|                           |+-----------------------------+|                                                                                                |+--------------------------------------+|                                                                                             |+-----------------------+|
4226|                           ||:diagtext:`first operand of` ||                                                                                                |                                        |                                                                                             ||:diagtext:`moved`      ||
4227|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
4228|                           ||:diagtext:`second operand of`||                                                                                                |                                        |                                                                                             ||:diagtext:`compared`   ||
4229|                           |+-----------------------------+|                                                                                                |                                        |                                                                                             |+-----------------------+|
4230+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
4231
4232
4233-Wdynamic-exception-spec
4234------------------------
4235Some of the diagnostics controlled by this flag are enabled by default.
4236
4237Also controls `-Wdeprecated-dynamic-exception-spec`_.
4238
4239**Diagnostic text:**
4240
4241+--------------------------------------------------------------------------------------------+
4242|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
4243+--------------------------------------------------------------------------------------------+
4244
4245
4246-Weffc++
4247--------
4248Synonym for `-Wnon-virtual-dtor`_.
4249
4250
4251-Wembedded-directive
4252--------------------
4253**Diagnostic text:**
4254
4255+----------------------------------------------------------------------------------------------------------+
4256|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
4257+----------------------------------------------------------------------------------------------------------+
4258
4259
4260-Wempty-body
4261------------
4262This diagnostic is enabled by default.
4263
4264**Diagnostic text:**
4265
4266+--------------------------------------------------------------+
4267|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
4268+--------------------------------------------------------------+
4269
4270+------------------------------------------------------------------+
4271|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
4272+------------------------------------------------------------------+
4273
4274+--------------------------------------------------------------------------+
4275|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
4276+--------------------------------------------------------------------------+
4277
4278+----------------------------------------------------------------------+
4279|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
4280+----------------------------------------------------------------------+
4281
4282+----------------------------------------------------------------+
4283|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
4284+----------------------------------------------------------------+
4285
4286
4287-Wempty-decomposition
4288---------------------
4289This diagnostic is enabled by default.
4290
4291**Diagnostic text:**
4292
4293+-------------------------------------------------------------------------------------------------+
4294|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
4295+-------------------------------------------------------------------------------------------------+
4296
4297
4298-Wempty-init-stmt
4299-----------------
4300**Diagnostic text:**
4301
4302+--------------------------------------------------------------------------+-----------------------------+---------------------------+
4303|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`|
4304|                                                                          ||:diagtext:`if`             ||                           |
4305|                                                                          |+---------------------------+|                           |
4306|                                                                          ||:diagtext:`switch`         ||                           |
4307|                                                                          |+---------------------------+|                           |
4308|                                                                          ||:diagtext:`range-based for`||                           |
4309|                                                                          |+---------------------------+|                           |
4310+--------------------------------------------------------------------------+-----------------------------+---------------------------+
4311
4312
4313-Wempty-translation-unit
4314------------------------
4315**Diagnostic text:**
4316
4317+------------------------------------------------------------------------------------------------------------+
4318|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
4319+------------------------------------------------------------------------------------------------------------+
4320
4321
4322-Wencode-type
4323-------------
4324This diagnostic is enabled by default.
4325
4326**Diagnostic text:**
4327
4328+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4329|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
4330+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4331
4332
4333-Wendif-labels
4334--------------
4335Synonym for `-Wextra-tokens`_.
4336
4337
4338-Wenum-compare
4339--------------
4340This diagnostic is enabled by default.
4341
4342Also controls `-Wdeprecated-enum-compare`_, `-Wenum-compare-switch`_.
4343
4344**Diagnostic text:**
4345
4346+---------------------------+--------------------------------------------+-----------------------------------------------+
4347|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
4348|                           ||:diagtext:`arithmetic between`            ||                                               |
4349|                           |+------------------------------------------+|                                               |
4350|                           ||:diagtext:`bitwise operation between`     ||                                               |
4351|                           |+------------------------------------------+|                                               |
4352|                           ||:diagtext:`comparison of`                 ||                                               |
4353|                           |+------------------------------------------+|                                               |
4354|                           ||:diagtext:`conditional expression between`||                                               |
4355|                           |+------------------------------------------+|                                               |
4356|                           ||:diagtext:`compound assignment of`        ||                                               |
4357|                           |+------------------------------------------+|                                               |
4358+---------------------------+--------------------------------------------+-----------------------------------------------+
4359
4360
4361-Wenum-compare-conditional
4362--------------------------
4363Some of the diagnostics controlled by this flag are enabled by default.
4364
4365Also controls `-Wdeprecated-enum-compare-conditional`_.
4366
4367**Diagnostic text:**
4368
4369+---------------------------+--------------------------------------------+-----------------------------------------------+
4370|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
4371|                           ||:diagtext:`arithmetic between`            ||                                               |
4372|                           |+------------------------------------------+|                                               |
4373|                           ||:diagtext:`bitwise operation between`     ||                                               |
4374|                           |+------------------------------------------+|                                               |
4375|                           ||:diagtext:`comparison of`                 ||                                               |
4376|                           |+------------------------------------------+|                                               |
4377|                           ||:diagtext:`conditional expression between`||                                               |
4378|                           |+------------------------------------------+|                                               |
4379|                           ||:diagtext:`compound assignment of`        ||                                               |
4380|                           |+------------------------------------------+|                                               |
4381+---------------------------+--------------------------------------------+-----------------------------------------------+
4382
4383
4384-Wenum-compare-switch
4385---------------------
4386This diagnostic is enabled by default.
4387
4388**Diagnostic text:**
4389
4390+----------------------------------------------------------------------------------------------------+
4391|:warning:`warning:` |nbsp| :diagtext:`comparison of different enumeration types in switch statement`|
4392+----------------------------------------------------------------------------------------------------+
4393
4394
4395-Wenum-conversion
4396-----------------
4397Some of the diagnostics controlled by this flag are enabled by default.
4398
4399Also controls `-Wenum-compare-conditional`_, `-Wenum-enum-conversion`_, `-Wenum-float-conversion`_.
4400
4401**Diagnostic text:**
4402
4403+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4404|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
4405+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4406
4407
4408-Wenum-enum-conversion
4409----------------------
4410Some of the diagnostics controlled by this flag are enabled by default.
4411
4412Also controls `-Wdeprecated-enum-enum-conversion`_.
4413
4414**Diagnostic text:**
4415
4416+---------------------------+--------------------------------------------+-----------------------------------------------+
4417|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`|
4418|                           ||:diagtext:`arithmetic between`            ||                                               |
4419|                           |+------------------------------------------+|                                               |
4420|                           ||:diagtext:`bitwise operation between`     ||                                               |
4421|                           |+------------------------------------------+|                                               |
4422|                           ||:diagtext:`comparison of`                 ||                                               |
4423|                           |+------------------------------------------+|                                               |
4424|                           ||:diagtext:`conditional expression between`||                                               |
4425|                           |+------------------------------------------+|                                               |
4426|                           ||:diagtext:`compound assignment of`        ||                                               |
4427|                           |+------------------------------------------+|                                               |
4428+---------------------------+--------------------------------------------+-----------------------------------------------+
4429
4430
4431-Wenum-float-conversion
4432-----------------------
4433Some of the diagnostics controlled by this flag are enabled by default.
4434
4435Also controls `-Wdeprecated-enum-float-conversion`_.
4436
4437**Diagnostic text:**
4438
4439+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+
4440|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D`|
4441|                           ||:diagtext:`arithmetic between`            ||        ||:diagtext:`floating-point`||                                                        ||:diagtext:`with`||        ||:diagtext:`enumeration`   ||                                                |
4442|                           |+------------------------------------------+|        |+--------------------------+|                                                        |+----------------+|        |+--------------------------+|                                                |
4443|                           ||:diagtext:`bitwise operation between`     ||        ||:diagtext:`enumeration`   ||                                                        ||:diagtext:`from`||        ||:diagtext:`floating-point`||                                                |
4444|                           |+------------------------------------------+|        |+--------------------------+|                                                        |+----------------+|        |+--------------------------+|                                                |
4445|                           ||:diagtext:`comparison of`                 ||        |                            |                                                        ||:diagtext:`and` ||        |                            |                                                |
4446|                           |+------------------------------------------+|        |                            |                                                        |+----------------+|        |                            |                                                |
4447|                           ||:diagtext:`conditional expression between`||        |                            |                                                        |                  |        |                            |                                                |
4448|                           |+------------------------------------------+|        |                            |                                                        |                  |        |                            |                                                |
4449|                           ||:diagtext:`compound assignment of`        ||        |                            |                                                        |                  |        |                            |                                                |
4450|                           |+------------------------------------------+|        |                            |                                                        |                  |        |                            |                                                |
4451+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+
4452
4453
4454-Wenum-too-large
4455----------------
4456This diagnostic is enabled by default.
4457
4458**Diagnostic text:**
4459
4460+-----------------------------------------------------------------------------------------+
4461|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
4462+-----------------------------------------------------------------------------------------+
4463
4464+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
4465|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
4466+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
4467
4468
4469-Wexceptions
4470------------
4471This diagnostic is enabled by default.
4472
4473**Diagnostic text:**
4474
4475+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
4476|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
4477|                                                                                                        ||:diagtext:`constructor`||                                      |
4478|                                                                                                        |+-----------------------+|                                      |
4479|                                                                                                        ||:diagtext:`destructor` ||                                      |
4480|                                                                                                        |+-----------------------+|                                      |
4481+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
4482
4483+-------------------------------------------------------------------------------------------------------------------------------------+
4484|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
4485+-------------------------------------------------------------------------------------------------------------------------------------+
4486
4487+-----------------------------------------------------------------------------------------------------------------------------+
4488|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
4489+-----------------------------------------------------------------------------------------------------------------------------+
4490
4491
4492-Wexcess-initializers
4493---------------------
4494This diagnostic is enabled by default.
4495
4496**Diagnostic text:**
4497
4498+-----------------------------------------------------------------+--------------------+-------------------------------+
4499|:warning:`warning:` |nbsp| :diagtext:`excess elements in` |nbsp| |+------------------+| |nbsp| :diagtext:`initializer`|
4500|                                                                 ||:diagtext:`array` ||                               |
4501|                                                                 |+------------------+|                               |
4502|                                                                 ||:diagtext:`vector`||                               |
4503|                                                                 |+------------------+|                               |
4504|                                                                 ||:diagtext:`scalar`||                               |
4505|                                                                 |+------------------+|                               |
4506|                                                                 ||:diagtext:`union` ||                               |
4507|                                                                 |+------------------+|                               |
4508|                                                                 ||:diagtext:`struct`||                               |
4509|                                                                 |+------------------+|                               |
4510+-----------------------------------------------------------------+--------------------+-------------------------------+
4511
4512+---------------------------------------------------------------------------------------------------------------------------+
4513|:warning:`warning:` |nbsp| :diagtext:`excess elements in initializer for indivisible sizeless type` |nbsp| :placeholder:`A`|
4514+---------------------------------------------------------------------------------------------------------------------------+
4515
4516+--------------------------------------------------------------------------------+
4517|:warning:`warning:` |nbsp| :diagtext:`excess elements in char array initializer`|
4518+--------------------------------------------------------------------------------+
4519
4520+------------------------------------------------------------------------------------+
4521|:warning:`warning:` |nbsp| :diagtext:`initializer-string for char array is too long`|
4522+------------------------------------------------------------------------------------+
4523
4524
4525-Wexit-time-destructors
4526-----------------------
4527**Diagnostic text:**
4528
4529+-----------------------------------------------------------------------------------+
4530|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
4531+-----------------------------------------------------------------------------------+
4532
4533
4534-Wexpansion-to-defined
4535----------------------
4536Some of the diagnostics controlled by this flag are enabled by default.
4537
4538**Diagnostic text:**
4539
4540+-------------------------------------------------------------------------------------------------+
4541|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
4542+-------------------------------------------------------------------------------------------------+
4543
4544+-------------------------------------------------------------------------------------------------+
4545|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
4546+-------------------------------------------------------------------------------------------------+
4547
4548
4549-Wexplicit-initialize-call
4550--------------------------
4551This diagnostic is enabled by default.
4552
4553**Diagnostic text:**
4554
4555+------------------------------------------------------------------------------------------------------------+
4556|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
4557+------------------------------------------------------------------------------------------------------------+
4558
4559+----------------------------------------------------------------------------------------------------------------------------+
4560|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
4561+----------------------------------------------------------------------------------------------------------------------------+
4562
4563
4564-Wexplicit-ownership-type
4565-------------------------
4566**Diagnostic text:**
4567
4568+-------------------------------------------------------------------------------------------------------------------------------------+
4569|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
4570+-------------------------------------------------------------------------------------------------------------------------------------+
4571
4572
4573-Wexport-unnamed
4574----------------
4575This diagnostic is enabled by default.
4576
4577**Diagnostic text:**
4578
4579+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
4580|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit` |nbsp| |+----------------------------+| |nbsp| :diagtext:`declaration to appear in an export block`|
4581|                                                                        ||:diagtext:`an empty`        ||                                                            |
4582|                                                                        |+----------------------------+|                                                            |
4583|                                                                        ||:diagtext:`a static\_assert`||                                                            |
4584|                                                                        |+----------------------------+|                                                            |
4585+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+
4586
4587+-------------------------------------------------------------------------------------------------------------------------------+
4588|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit a declaration that does not introduce any names to be exported`|
4589+-------------------------------------------------------------------------------------------------------------------------------+
4590
4591
4592-Wexport-using-directive
4593------------------------
4594This diagnostic is enabled by default.
4595
4596**Diagnostic text:**
4597
4598+-----------------------------------------------------------------------------------------------+
4599|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit using directive to be exported`|
4600+-----------------------------------------------------------------------------------------------+
4601
4602
4603-Wextern-c-compat
4604-----------------
4605This diagnostic is enabled by default.
4606
4607**Diagnostic text:**
4608
4609+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
4610|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
4611|                           ||                         |||:diagtext:`struct`||                                            ||:diagtext:`size 1`       ||                          |
4612|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
4613|                           ||:diagtext:`empty` |nbsp| |||:diagtext:`union` ||                                            ||:diagtext:`non-zero size`||                          |
4614|                           |+-------------------------+|+------------------+|                                            |+-------------------------+|                          |
4615+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
4616
4617
4618-Wextern-initializer
4619--------------------
4620This diagnostic is enabled by default.
4621
4622**Diagnostic text:**
4623
4624+---------------------------------------------------------------------------+
4625|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
4626+---------------------------------------------------------------------------+
4627
4628
4629-Wextra
4630-------
4631Some of the diagnostics controlled by this flag are enabled by default.
4632
4633Also controls `-Wdeprecated-copy`_, `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
4634
4635**Diagnostic text:**
4636
4637+-----------------------------------------------------------------------------------------------------------------------------+
4638|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
4639+-----------------------------------------------------------------------------------------------------------------------------+
4640
4641
4642-Wextra-qualification
4643---------------------
4644This diagnostic is enabled by default.
4645
4646**Diagnostic text:**
4647
4648+--------------------------------------------------------------------------------------------+
4649|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
4650+--------------------------------------------------------------------------------------------+
4651
4652
4653-Wextra-semi
4654------------
4655Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_.
4656
4657**Diagnostic text:**
4658
4659+--------------------------------------------------------+------------------------------------------------+
4660|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
4661|                                                        ||:diagtext:`outside of a function`             ||
4662|                                                        |+----------------------------------------------+|
4663|                                                        ||+--------------------------------------------+||
4664|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
4665|                                                        ||+--------------------------------------------+||
4666|                                                        |+----------------------------------------------+|
4667|                                                        ||:diagtext:`inside instance variable list`     ||
4668|                                                        |+----------------------------------------------+|
4669|                                                        ||:diagtext:`after member function definition`  ||
4670|                                                        |+----------------------------------------------+|
4671+--------------------------------------------------------+------------------------------------------------+
4672
4673+---------------------------------------------------------------------------------+
4674|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
4675+---------------------------------------------------------------------------------+
4676
4677
4678-Wextra-semi-stmt
4679-----------------
4680Also controls `-Wempty-init-stmt`_.
4681
4682**Diagnostic text:**
4683
4684+-------------------------------------------------------------------------------------------------------------------------------+
4685|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`|
4686+-------------------------------------------------------------------------------------------------------------------------------+
4687
4688
4689-Wextra-tokens
4690--------------
4691This diagnostic is enabled by default.
4692
4693**Diagnostic text:**
4694
4695+------------------------------------------------------------------------------------------------------------+
4696|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
4697+------------------------------------------------------------------------------------------------------------+
4698
4699+-------------------------------------------------------------------------------------------------------------------------------+
4700|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
4701+-------------------------------------------------------------------------------------------------------------------------------+
4702
4703
4704-Wfallback
4705----------
4706This diagnostic is enabled by default.
4707
4708**Diagnostic text:**
4709
4710+------------------------------------------------------------------------------+
4711|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
4712+------------------------------------------------------------------------------+
4713
4714
4715-Wfinal-dtor-non-final-class
4716----------------------------
4717This diagnostic is enabled by default.
4718
4719**Diagnostic text:**
4720
4721+---------------------------------------------------------------------+--------------------+--------------------------------------+
4722|:warning:`warning:` |nbsp| :diagtext:`class with destructor marked '`|+------------------+|:diagtext:`' cannot be inherited from`|
4723|                                                                     ||:diagtext:`final` ||                                      |
4724|                                                                     |+------------------+|                                      |
4725|                                                                     ||:diagtext:`sealed`||                                      |
4726|                                                                     |+------------------+|                                      |
4727+---------------------------------------------------------------------+--------------------+--------------------------------------+
4728
4729
4730-Wfixed-enum-extension
4731----------------------
4732**Diagnostic text:**
4733
4734+-----------------------------------------------------------------------------------------------------------+
4735|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`|
4736+-----------------------------------------------------------------------------------------------------------+
4737
4738
4739-Wflag-enum
4740-----------
4741This diagnostic is enabled by default.
4742
4743**Diagnostic text:**
4744
4745+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4746|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
4747+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4748
4749
4750-Wflexible-array-extensions
4751---------------------------
4752**Diagnostic text:**
4753
4754+-------------------------------------------------------------------------------------------------------------------------------+
4755|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
4756+-------------------------------------------------------------------------------------------------------------------------------+
4757
4758+-------------------------------------------------------------------------------------------------------------------------+
4759|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
4760+-------------------------------------------------------------------------------------------------------------------------+
4761
4762
4763-Wfloat-conversion
4764------------------
4765Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
4766
4767**Diagnostic text:**
4768
4769+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4770|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
4771+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4772
4773
4774-Wfloat-equal
4775-------------
4776**Diagnostic text:**
4777
4778+---------------------------------------------------------------------------------------+
4779|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
4780+---------------------------------------------------------------------------------------+
4781
4782
4783-Wfloat-overflow-conversion
4784---------------------------
4785**Diagnostic text:**
4786
4787+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4788|: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`|
4789+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4790
4791+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4792|: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`|
4793+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4794
4795
4796-Wfloat-zero-conversion
4797-----------------------
4798**Diagnostic text:**
4799
4800+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4801|: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`|
4802+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4803
4804
4805-Wfor-loop-analysis
4806-------------------
4807**Diagnostic text:**
4808
4809+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4810|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
4811|                                                                                                     ||:diagtext:`decremented`||                                                                |
4812|                                                                                                     |+-----------------------+|                                                                |
4813|                                                                                                     ||:diagtext:`incremented`||                                                                |
4814|                                                                                                     |+-----------------------+|                                                                |
4815+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
4816
4817+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4818|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
4819|                                               ||:diagtext:`s`                                                                                                                                             ||                                                                    |
4820|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4821|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4822|                                               ||| |nbsp| :placeholder:`B`|                                                                                                                                ||                                                                    |
4823|                                               ||+------------------------+                                                                                                                                ||                                                                    |
4824|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4825|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4826|                                               |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`|                                                                    ||                                                                    |
4827|                                               ||+------------------------------------------------------------------------------------+                                                                    ||                                                                    |
4828|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4829|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4830|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`|                                     ||                                                                    |
4831|                                               ||+-------------------------------------------------------------------------------------------------------------------+                                     ||                                                                    |
4832|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4833|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4834|                                               |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`|||                                                                    |
4835|                                               ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+||                                                                    |
4836|                                               |+----------------------------------------------------------------------------------------------------------------------------------------------------------+|                                                                    |
4837+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
4838
4839
4840-Wformat
4841--------
4842This diagnostic is enabled by default.
4843
4844Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
4845
4846**Diagnostic text:**
4847
4848+-------------------------------------------------------------------------------------+
4849|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
4850+-------------------------------------------------------------------------------------+
4851
4852+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4853|: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`|
4854|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
4855|                           |+--------------------------------------------+|                                                                                                                                                                     |
4856|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
4857|                           |+--------------------------------------------+|                                                                                                                                                                     |
4858+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4859
4860+----------------------------------------------------------------------------------------------------------------------------+
4861|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier, but argument has boolean value`|
4862+----------------------------------------------------------------------------------------------------------------------------+
4863
4864+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4865|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
4866|                                                                                                                                    ||:diagtext:`type`           ||                        |
4867|                                                                                                                                    |+---------------------------+|                        |
4868|                                                                                                                                    ||:diagtext:`underlying type`||                        |
4869|                                                                                                                                    |+---------------------------+|                        |
4870+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
4871
4872+----------------------------------------------------------------------------------------------------------------------------------------+
4873|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
4874+----------------------------------------------------------------------------------------------------------------------------------------+
4875
4876+-----------------------------------------------------------------------------+-----------------------------+
4877|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
4878|                                                                             ||:diagtext:`field width`    ||
4879|                                                                             |+---------------------------+|
4880|                                                                             ||:diagtext:`field precision`||
4881|                                                                             |+---------------------------+|
4882+-----------------------------------------------------------------------------+-----------------------------+
4883
4884+----------------------------------------------------------------------------------------------------------+
4885|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
4886+----------------------------------------------------------------------------------------------------------+
4887
4888+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4889|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4890+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4891
4892+--------------------------------------------------------------------------------+
4893|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
4894+--------------------------------------------------------------------------------+
4895
4896+-------------------------------------------------------------------------------------------------------+
4897|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
4898+-------------------------------------------------------------------------------------------------------+
4899
4900+------------------------------------------------------------+
4901|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
4902+------------------------------------------------------------+
4903
4904+----------------------------------------------------------------------------------------------------------------------------------+
4905|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
4906+----------------------------------------------------------------------------------------------------------------------------------+
4907
4908+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4909|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
4910|                                        ||:diagtext:`\*` ||                                     ||:diagtext:`width`    ||                                                        |
4911|                                        |+---------------+|                                     |+---------------------+|                                                        |
4912|                                        ||:diagtext:`.\*`||                                     ||:diagtext:`precision`||                                                        |
4913|                                        |+---------------+|                                     |+---------------------+|                                                        |
4914+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
4915
4916+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4917|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
4918|                                                    ||:diagtext:`width`    ||                                                                                                                       |
4919|                                                    |+---------------------+|                                                                                                                       |
4920|                                                    ||:diagtext:`precision`||                                                                                                                       |
4921|                                                    |+---------------------+|                                                                                                                       |
4922+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
4923
4924+-----------------------------------------------------------------+
4925|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
4926+-----------------------------------------------------------------+
4927
4928+------------------------------------------------------------------------------------------+
4929|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
4930+------------------------------------------------------------------------------------------+
4931
4932+---------------------------------------------------------------------------+
4933|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
4934+---------------------------------------------------------------------------+
4935
4936+-----------------------------------------------------------------------------------------------------------------------------------------+
4937|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
4938+-----------------------------------------------------------------------------------------------------------------------------------------+
4939
4940+------------------------------------------------------------------+
4941|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
4942+------------------------------------------------------------------+
4943
4944+--------------------------------------------------------------------------------+
4945|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
4946+--------------------------------------------------------------------------------+
4947
4948+-------------------------------------------------------------------------------------------------------+
4949|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
4950+-------------------------------------------------------------------------------------------------------+
4951
4952+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4953|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
4954+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4955
4956+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4957|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
4958|                           ||:diagtext:`field width`||                                                                                                                  |
4959|                           |+-----------------------+|                                                                                                                  |
4960|                           ||:diagtext:`precision`  ||                                                                                                                  |
4961|                           |+-----------------------+|                                                                                                                  |
4962+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
4963
4964+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4965|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
4966+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4967
4968+----------------------------------------------------------------------------------------+
4969|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
4970+----------------------------------------------------------------------------------------+
4971
4972+----------------------------------------------------------------------------------------+
4973|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
4974+----------------------------------------------------------------------------------------+
4975
4976
4977-Wformat-extra-args
4978-------------------
4979This diagnostic is enabled by default.
4980
4981**Diagnostic text:**
4982
4983+------------------------------------------------------------------------------+
4984|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
4985+------------------------------------------------------------------------------+
4986
4987
4988-Wformat-invalid-specifier
4989--------------------------
4990This diagnostic is enabled by default.
4991
4992**Diagnostic text:**
4993
4994+--------------------------------------------------------------------------------------------------+
4995|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
4996+--------------------------------------------------------------------------------------------------+
4997
4998
4999-Wformat-non-iso
5000----------------
5001**Diagnostic text:**
5002
5003+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
5004|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
5005|                                                                             ||:diagtext:`length modifier`     ||                                             |
5006|                                                                             |+--------------------------------+|                                             |
5007|                                                                             ||:diagtext:`conversion specifier`||                                             |
5008|                                                                             |+--------------------------------+|                                             |
5009+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
5010
5011+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5012|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
5013+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5014
5015+--------------------------------------------------------------------------------------+
5016|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
5017+--------------------------------------------------------------------------------------+
5018
5019
5020-Wformat-nonliteral
5021-------------------
5022**Diagnostic text:**
5023
5024+----------------------------------------------------------------------------+
5025|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
5026+----------------------------------------------------------------------------+
5027
5028
5029-Wformat-pedantic
5030-----------------
5031**Diagnostic text:**
5032
5033+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5034|: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`|
5035|                           ||:diagtext:`values of type`                  ||                                                                                                                                                                     |
5036|                           |+--------------------------------------------+|                                                                                                                                                                     |
5037|                           ||:diagtext:`enum values with underlying type`||                                                                                                                                                                     |
5038|                           |+--------------------------------------------+|                                                                                                                                                                     |
5039+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5040
5041+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
5042|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
5043|                                                                                                                                    ||:diagtext:`type`           ||                        |
5044|                                                                                                                                    |+---------------------------+|                        |
5045|                                                                                                                                    ||:diagtext:`underlying type`||                        |
5046|                                                                                                                                    |+---------------------------+|                        |
5047+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
5048
5049
5050-Wformat-security
5051-----------------
5052This diagnostic is enabled by default.
5053
5054**Diagnostic text:**
5055
5056+---------------------------------------------------------------------------------------------------+
5057|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
5058+---------------------------------------------------------------------------------------------------+
5059
5060
5061-Wformat-type-confusion
5062-----------------------
5063**Diagnostic text:**
5064
5065+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
5066|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
5067|                                                                                                                                    ||:diagtext:`type`           ||                        |
5068|                                                                                                                                    |+---------------------------+|                        |
5069|                                                                                                                                    ||:diagtext:`underlying type`||                        |
5070|                                                                                                                                    |+---------------------------+|                        |
5071+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
5072
5073
5074-Wformat-y2k
5075------------
5076This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5077
5078-Wformat-zero-length
5079--------------------
5080This diagnostic is enabled by default.
5081
5082**Diagnostic text:**
5083
5084+-------------------------------------------------------------+
5085|:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
5086+-------------------------------------------------------------+
5087
5088
5089-Wformat=2
5090----------
5091Some of the diagnostics controlled by this flag are enabled by default.
5092
5093Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
5094
5095
5096-Wfortify-source
5097----------------
5098This diagnostic is enabled by default.
5099
5100**Diagnostic text:**
5101
5102+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5103|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but format string expands to at least` |nbsp| :placeholder:`C`|
5104+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5105
5106+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5107|: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`|
5108+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5109
5110+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5111|: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`|
5112+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5113
5114
5115-Wfour-char-constants
5116---------------------
5117**Diagnostic text:**
5118
5119+-------------------------------------------------------------------------+
5120|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
5121+-------------------------------------------------------------------------+
5122
5123
5124-Wframe-address
5125---------------
5126**Diagnostic text:**
5127
5128+---------------------------------------------------------------------------------------------------------------+
5129|:warning:`warning:` |nbsp| :diagtext:`calling '`:placeholder:`A`:diagtext:`' with a nonzero argument is unsafe`|
5130+---------------------------------------------------------------------------------------------------------------+
5131
5132
5133-Wframe-larger-than=
5134--------------------
5135This diagnostic is enabled by default.
5136
5137**Diagnostic text:**
5138
5139The text of this diagnostic is not controlled by Clang.
5140
5141+--------------------------------------------------------------------------------------------------------------------------------------+
5142|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
5143+--------------------------------------------------------------------------------------------------------------------------------------+
5144
5145
5146-Wframework-include-private-from-public
5147---------------------------------------
5148This diagnostic is enabled by default.
5149
5150**Diagnostic text:**
5151
5152+-------------------------------------------------------------------------------------------------------------------------------+
5153|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`|
5154+-------------------------------------------------------------------------------------------------------------------------------+
5155
5156
5157-Wfunction-def-in-objc-container
5158--------------------------------
5159This diagnostic is enabled by default.
5160
5161**Diagnostic text:**
5162
5163+--------------------------------------------------------------------------------------------------------+
5164|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
5165+--------------------------------------------------------------------------------------------------------+
5166
5167
5168-Wfunction-multiversion
5169-----------------------
5170This diagnostic is enabled by default.
5171
5172**Diagnostic text:**
5173
5174+-------------------------------------------------------------------------------------+
5175|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`|
5176+-------------------------------------------------------------------------------------+
5177
5178+---------------------------------------------------------------------------------------------+
5179|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`|
5180+---------------------------------------------------------------------------------------------+
5181
5182
5183-Wfuture-compat
5184---------------
5185This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5186
5187-Wgcc-compat
5188------------
5189Some of the diagnostics controlled by this flag are enabled by default.
5190
5191**Diagnostic text:**
5192
5193+--------------------------------------------------------------------------+
5194|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
5195+--------------------------------------------------------------------------+
5196
5197+------------------------------------------------------------------------+
5198|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
5199+------------------------------------------------------------------------+
5200
5201+-----------------------------------------------------------------------------------------------+
5202|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
5203+-----------------------------------------------------------------------------------------------+
5204
5205+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5206|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
5207+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5208
5209+---------------------------------------------------------------------------------------+
5210|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
5211+---------------------------------------------------------------------------------------+
5212
5213+----------------------------------------------------------------------------------------------------------------------------------------+
5214|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
5215+----------------------------------------------------------------------------------------------------------------------------------------+
5216
5217+-----------------------------------------------------------------------------------------------------------------+
5218|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
5219+-----------------------------------------------------------------------------------------------------------------+
5220
5221+------------------------------------------------------------------------------------------------------------------------------------------+
5222|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`|
5223+------------------------------------------------------------------------------------------------------------------------------------------+
5224
5225+-------------------------------------------------------------------------------------------------------------------+
5226|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`|
5227+-------------------------------------------------------------------------------------------------------------------+
5228
5229+----------------------------------------------------------------------------------------------------------------------------------+
5230|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
5231+----------------------------------------------------------------------------------------------------------------------------------+
5232
5233
5234-Wglobal-constructors
5235---------------------
5236**Diagnostic text:**
5237
5238+--------------------------------------------------------------------------------+
5239|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
5240+--------------------------------------------------------------------------------+
5241
5242+-------------------------------------------------------------------------------+
5243|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
5244+-------------------------------------------------------------------------------+
5245
5246
5247-Wglobal-isel
5248-------------
5249This diagnostic is enabled by default.
5250
5251**Diagnostic text:**
5252
5253+------------------------------------------------------------------------------------------------------------------------------+
5254|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`|
5255+------------------------------------------------------------------------------------------------------------------------------+
5256
5257+----------------------------------------------------------------------------------------------------------------------------------+
5258|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support is incomplete for this architecture at the current optimization level`|
5259+----------------------------------------------------------------------------------------------------------------------------------+
5260
5261
5262-Wgnu
5263-----
5264Some of the diagnostics controlled by this flag are enabled by default.
5265
5266Controls `-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`_.
5267
5268
5269-Wgnu-alignof-expression
5270------------------------
5271This diagnostic is enabled by default.
5272
5273**Diagnostic text:**
5274
5275+----------------------------------------------------------------------------------------------------------+
5276|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
5277+----------------------------------------------------------------------------------------------------------+
5278
5279
5280-Wgnu-anonymous-struct
5281----------------------
5282**Diagnostic text:**
5283
5284+----------------------------------------------------------------------------+
5285|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
5286+----------------------------------------------------------------------------+
5287
5288
5289-Wgnu-array-member-paren-init
5290-----------------------------
5291This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
5292
5293**Diagnostic text:**
5294
5295+----------------------------------------------------------------------------------------------------+
5296|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
5297+----------------------------------------------------------------------------------------------------+
5298
5299
5300-Wgnu-auto-type
5301---------------
5302**Diagnostic text:**
5303
5304+--------------------------------------------------------------------------+
5305|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
5306+--------------------------------------------------------------------------+
5307
5308
5309-Wgnu-binary-literal
5310--------------------
5311**Diagnostic text:**
5312
5313+----------------------------------------------------------------------------------+
5314|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
5315+----------------------------------------------------------------------------------+
5316
5317
5318-Wgnu-case-range
5319----------------
5320**Diagnostic text:**
5321
5322+----------------------------------------------------------------------+
5323|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
5324+----------------------------------------------------------------------+
5325
5326
5327-Wgnu-complex-integer
5328---------------------
5329**Diagnostic text:**
5330
5331+--------------------------------------------------------------------------------+
5332|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
5333+--------------------------------------------------------------------------------+
5334
5335
5336-Wgnu-compound-literal-initializer
5337----------------------------------
5338**Diagnostic text:**
5339
5340+--------------------------------------------------------------------------------------------------------------------------------------------------+
5341|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
5342+--------------------------------------------------------------------------------------------------------------------------------------------------+
5343
5344
5345-Wgnu-conditional-omitted-operand
5346---------------------------------
5347**Diagnostic text:**
5348
5349+--------------------------------------------------------------------------------------------------------------+
5350|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
5351+--------------------------------------------------------------------------------------------------------------+
5352
5353
5354-Wgnu-designator
5355----------------
5356Some of the diagnostics controlled by this flag are enabled by default.
5357
5358**Diagnostic text:**
5359
5360+-----------------------------------------------------------------------+
5361|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
5362+-----------------------------------------------------------------------+
5363
5364+-------------------------------------------------------------------------------------+
5365|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
5366+-------------------------------------------------------------------------------------+
5367
5368+--------------------------------------------------------------------------------------+
5369|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
5370+--------------------------------------------------------------------------------------+
5371
5372
5373-Wgnu-empty-initializer
5374-----------------------
5375**Diagnostic text:**
5376
5377+-----------------------------------------------------------------------------+
5378|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
5379+-----------------------------------------------------------------------------+
5380
5381
5382-Wgnu-empty-struct
5383------------------
5384**Diagnostic text:**
5385
5386+----------------------------------------------------+--------------------+--------------------------------------+
5387|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
5388|                                                    ||:diagtext:`struct`||                                      |
5389|                                                    |+------------------+|                                      |
5390|                                                    ||:diagtext:`union` ||                                      |
5391|                                                    |+------------------+|                                      |
5392+----------------------------------------------------+--------------------+--------------------------------------+
5393
5394+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
5395|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
5396|                                                                                                                                  ||:diagtext:`struct`   ||                                      |
5397|                                                                                                                                  |+---------------------+|                                      |
5398|                                                                                                                                  ||:diagtext:`interface`||                                      |
5399|                                                                                                                                  |+---------------------+|                                      |
5400|                                                                                                                                  ||:diagtext:`union`    ||                                      |
5401|                                                                                                                                  |+---------------------+|                                      |
5402|                                                                                                                                  ||:diagtext:`class`    ||                                      |
5403|                                                                                                                                  |+---------------------+|                                      |
5404|                                                                                                                                  ||:diagtext:`enum`     ||                                      |
5405|                                                                                                                                  |+---------------------+|                                      |
5406+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
5407
5408+---------------------------+--------------------+------------------------------------------------------------+
5409|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
5410|                           ||:diagtext:`struct`||                                                            |
5411|                           |+------------------+|                                                            |
5412|                           ||:diagtext:`union` ||                                                            |
5413|                           |+------------------+|                                                            |
5414+---------------------------+--------------------+------------------------------------------------------------+
5415
5416
5417-Wgnu-flexible-array-initializer
5418--------------------------------
5419**Diagnostic text:**
5420
5421+---------------------------------------------------------------------------------------+
5422|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
5423+---------------------------------------------------------------------------------------+
5424
5425
5426-Wgnu-flexible-array-union-member
5427---------------------------------
5428**Diagnostic text:**
5429
5430+-------------------------------------------------------------------------------------------------------------------------------------+
5431|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
5432+-------------------------------------------------------------------------------------------------------------------------------------+
5433
5434
5435-Wgnu-folding-constant
5436----------------------
5437**Diagnostic text:**
5438
5439+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
5440|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
5441|                                                                   ||:diagtext:`integer` ||                                                                                    |
5442|                                                                   |+--------------------+|                                                                                    |
5443|                                                                   ||:diagtext:`integral`||                                                                                    |
5444|                                                                   |+--------------------+|                                                                                    |
5445+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
5446
5447+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5448|: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`|
5449+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5450
5451+-----------------------------------------------------------------------------------------------------+
5452|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
5453+-----------------------------------------------------------------------------------------------------+
5454
5455
5456-Wgnu-imaginary-constant
5457------------------------
5458**Diagnostic text:**
5459
5460+------------------------------------------------------------------------------+
5461|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
5462+------------------------------------------------------------------------------+
5463
5464
5465-Wgnu-include-next
5466------------------
5467**Diagnostic text:**
5468
5469+-----------------------------------------------------------------------------+
5470|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
5471+-----------------------------------------------------------------------------+
5472
5473
5474-Wgnu-inline-cpp-without-extern
5475-------------------------------
5476This diagnostic is enabled by default.
5477
5478**Diagnostic text:**
5479
5480+------------------------------------------------------------------------------------------------------------------------------------------------+
5481|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10`|
5482+------------------------------------------------------------------------------------------------------------------------------------------------+
5483
5484
5485-Wgnu-label-as-value
5486--------------------
5487**Diagnostic text:**
5488
5489+----------------------------------------------------------------------------+
5490|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
5491+----------------------------------------------------------------------------+
5492
5493+-------------------------------------------------------------------------+
5494|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
5495+-------------------------------------------------------------------------+
5496
5497
5498-Wgnu-redeclared-enum
5499---------------------
5500**Diagnostic text:**
5501
5502+------------------------------------------------------------------------------------------------------------------------------------------+
5503|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
5504+------------------------------------------------------------------------------------------------------------------------------------------+
5505
5506
5507-Wgnu-statement-expression
5508--------------------------
5509**Diagnostic text:**
5510
5511+--------------------------------------------------------------------------------+
5512|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
5513+--------------------------------------------------------------------------------+
5514
5515
5516-Wgnu-static-float-init
5517-----------------------
5518This diagnostic is enabled by default.
5519
5520**Diagnostic text:**
5521
5522+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5523|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
5524+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5525
5526
5527-Wgnu-string-literal-operator-template
5528--------------------------------------
5529This diagnostic is enabled by default.
5530
5531**Diagnostic text:**
5532
5533+--------------------------------------------------------------------------------------------+
5534|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
5535+--------------------------------------------------------------------------------------------+
5536
5537
5538-Wgnu-union-cast
5539----------------
5540**Diagnostic text:**
5541
5542+----------------------------------------------------------------------------+
5543|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
5544+----------------------------------------------------------------------------+
5545
5546
5547-Wgnu-variable-sized-type-not-at-end
5548------------------------------------
5549This diagnostic is enabled by default.
5550
5551**Diagnostic text:**
5552
5553+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5554|: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`|
5555+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5556
5557
5558-Wgnu-zero-line-directive
5559-------------------------
5560**Diagnostic text:**
5561
5562+--------------------------------------------------------------------------------------------+
5563|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
5564+--------------------------------------------------------------------------------------------+
5565
5566
5567-Wgnu-zero-variadic-macro-arguments
5568-----------------------------------
5569**Diagnostic text:**
5570
5571+---------------------------------------------------------------------------------------------------------------+
5572|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
5573+---------------------------------------------------------------------------------------------------------------+
5574
5575+---------------------------------------------------------------------------------------------------+
5576|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
5577+---------------------------------------------------------------------------------------------------+
5578
5579
5580-Wheader-guard
5581--------------
5582This diagnostic is enabled by default.
5583
5584**Diagnostic text:**
5585
5586+---------------------------------------------------------------------------------------------------------------------------------------+
5587|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
5588+---------------------------------------------------------------------------------------------------------------------------------------+
5589
5590
5591-Wheader-hygiene
5592----------------
5593**Diagnostic text:**
5594
5595+--------------------------------------------------------------------------------------------+
5596|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
5597+--------------------------------------------------------------------------------------------+
5598
5599
5600-Whip-only
5601----------
5602This diagnostic is enabled by default.
5603
5604**Diagnostic text:**
5605
5606+-------------------------------------------------------------------------------------------------------------------+
5607|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is ignored since it is only supported for HIP`|
5608+-------------------------------------------------------------------------------------------------------------------+
5609
5610
5611-Widiomatic-parentheses
5612-----------------------
5613**Diagnostic text:**
5614
5615+-----------------------------------------------------------------------------------------------------------+
5616|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
5617+-----------------------------------------------------------------------------------------------------------+
5618
5619
5620-Wignored-attributes
5621--------------------
5622This diagnostic is enabled by default.
5623
5624**Diagnostic text:**
5625
5626+--------------------------------------------------------------------------------------------------+
5627|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`|
5628+--------------------------------------------------------------------------------------------------+
5629
5630+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5631|: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`|
5632|                           ||:diagtext:`alias`||                                                                                                                                                                         |
5633|                           |+-----------------+|                                                                                                                                                                         |
5634|                           ||:diagtext:`ifunc`||                                                                                                                                                                         |
5635|                           |+-----------------+|                                                                                                                                                                         |
5636+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5637
5638+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
5639|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
5640|                           ||:diagtext:`alias`||                                                                                                                ||:diagtext:`aliasee` ||
5641|                           |+-----------------+|                                                                                                                |+--------------------+|
5642|                           ||:diagtext:`ifunc`||                                                                                                                ||:diagtext:`resolver`||
5643|                           |+-----------------+|                                                                                                                |+--------------------+|
5644+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
5645
5646+----------------------------------------------------------------------+------------------------+-------------------------------------+
5647|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
5648|                                                                      ||:diagtext:`non-inline`||                                     |
5649|                                                                      |+----------------------+|                                     |
5650|                                                                      ||:diagtext:`anonymous` ||                                     |
5651|                                                                      |+----------------------+|                                     |
5652+----------------------------------------------------------------------+------------------------+-------------------------------------+
5653
5654+-----------------------------------------------------------------------------------------------------------------------+
5655|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
5656+-----------------------------------------------------------------------------------------------------------------------+
5657
5658+--------------------------------------------------------------------------------------------------------------------+
5659|:warning:`warning:` |nbsp| :diagtext:`'cmse\_nonsecure\_entry' cannot be applied to functions with internal linkage`|
5660+--------------------------------------------------------------------------------------------------------------------+
5661
5662+---------------------------------------------------------------------------------------------------------+
5663|:warning:`warning:` |nbsp| :diagtext:`'dllexport' attribute ignored on explicit instantiation definition`|
5664+---------------------------------------------------------------------------------------------------------+
5665
5666+--------------------------------------------------------------------------------------------------------------------------------+
5667|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
5668+--------------------------------------------------------------------------------------------------------------------------------+
5669
5670+--------------------------------------------------------------------------------+
5671|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
5672+--------------------------------------------------------------------------------+
5673
5674+--------------------------------------------------------------------------------------------------------------------------+
5675|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
5676+--------------------------------------------------------------------------------------------------------------------------+
5677
5678+---------------------------------------------------------------------------------------------------+
5679|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
5680+---------------------------------------------------------------------------------------------------+
5681
5682+-------------------------------------------------------------------------------------------------------------------+
5683|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
5684+-------------------------------------------------------------------------------------------------------------------+
5685
5686+------------------------------------------------------------------------------------------------------------------------------------------------+
5687|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
5688+------------------------------------------------------------------------------------------------------------------------------------------------+
5689
5690+--------------------------------------------------------------------------------------------------------+
5691|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
5692+--------------------------------------------------------------------------------------------------------+
5693
5694+-----------------------------------------------------------------------------------------------------+
5695|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
5696+-----------------------------------------------------------------------------------------------------+
5697
5698+--------------------------------------------------------------------------------------------------+
5699|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
5700+--------------------------------------------------------------------------------------------------+
5701
5702+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5703|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
5704+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
5705
5706+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
5707|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
5708|                                                                                        ||                            ||                                     |
5709|                                                                                        |+----------------------------+|                                     |
5710|                                                                                        || |nbsp| :diagtext:`constant`||                                     |
5711|                                                                                        |+----------------------------+|                                     |
5712+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
5713
5714+------------------------------------------------------------------------------------+
5715|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
5716+------------------------------------------------------------------------------------+
5717
5718+------------------------------------------------------------------------------------------------------------------------+
5719|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
5720+------------------------------------------------------------------------------------------------------------------------+
5721
5722+--------------------------------------------------------------------------------------------------------------------------------------+
5723|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
5724+--------------------------------------------------------------------------------------------------------------------------------------+
5725
5726+------------------------------------------------------------------------------------+
5727|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
5728+------------------------------------------------------------------------------------+
5729
5730+-----------------------------------------------------------------------------------------------+-----------------------+
5731|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
5732|                                                                                               ||:diagtext:`functions`||
5733|                                                                                               |+---------------------+|
5734|                                                                                               ||:diagtext:`blocks`   ||
5735|                                                                                               |+---------------------+|
5736+-----------------------------------------------------------------------------------------------+-----------------------+
5737
5738+------------------------------------------------------------------------------------------------------------------------+
5739|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
5740+------------------------------------------------------------------------------------------------------------------------+
5741
5742+---------------------------------------------------------------------------------+
5743|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
5744+---------------------------------------------------------------------------------+
5745
5746+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
5747|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
5748|                                                                                                                        ||:diagtext:`functions`         ||                                        |
5749|                                                                                                                        |+------------------------------+|                                        |
5750|                                                                                                                        ||:diagtext:`Objective-C method`||                                        |
5751|                                                                                                                        |+------------------------------+|                                        |
5752+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
5753
5754+----------------------------------------------------------------------------------------------------+
5755|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
5756+----------------------------------------------------------------------------------------------------+
5757
5758+------------------------------------------------------------------------------------------------------------------------------+
5759|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
5760+------------------------------------------------------------------------------------------------------------------------------+
5761
5762+------------------------------------------------------------------------------------------------+---------------------------------------------------+
5763|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+|
5764|                                                                                                ||:diagtext:`functions`                            ||
5765|                                                                                                |+-------------------------------------------------+|
5766|                                                                                                ||:diagtext:`unions`                               ||
5767|                                                                                                |+-------------------------------------------------+|
5768|                                                                                                ||:diagtext:`variables and functions`              ||
5769|                                                                                                |+-------------------------------------------------+|
5770|                                                                                                ||:diagtext:`functions and methods`                ||
5771|                                                                                                |+-------------------------------------------------+|
5772|                                                                                                ||:diagtext:`functions, methods and blocks`        ||
5773|                                                                                                |+-------------------------------------------------+|
5774|                                                                                                ||:diagtext:`functions, methods, and parameters`   ||
5775|                                                                                                |+-------------------------------------------------+|
5776|                                                                                                ||:diagtext:`variables`                            ||
5777|                                                                                                |+-------------------------------------------------+|
5778|                                                                                                ||:diagtext:`variables and fields`                 ||
5779|                                                                                                |+-------------------------------------------------+|
5780|                                                                                                ||:diagtext:`variables, data members and tag types`||
5781|                                                                                                |+-------------------------------------------------+|
5782|                                                                                                ||:diagtext:`types and namespaces`                 ||
5783|                                                                                                |+-------------------------------------------------+|
5784|                                                                                                ||:diagtext:`variables, functions and classes`     ||
5785|                                                                                                |+-------------------------------------------------+|
5786|                                                                                                ||:diagtext:`kernel functions`                     ||
5787|                                                                                                |+-------------------------------------------------+|
5788|                                                                                                ||:diagtext:`non-K&R-style functions`              ||
5789|                                                                                                |+-------------------------------------------------+|
5790+------------------------------------------------------------------------------------------------+---------------------------------------------------+
5791
5792+----------------------------------------------------------------------------------------------------------------+
5793|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`|
5794+----------------------------------------------------------------------------------------------------------------+
5795
5796+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5797|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
5798+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5799
5800+----------------------------------------------------------------------------------------------------------+---------------------------------------+
5801|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention is not supported` |nbsp| |+-------------------------------------+|
5802|                                                                                                          ||:diagtext:`for this target`          ||
5803|                                                                                                          |+-------------------------------------+|
5804|                                                                                                          ||:diagtext:`on variadic function`     ||
5805|                                                                                                          |+-------------------------------------+|
5806|                                                                                                          ||:diagtext:`on constructor/destructor`||
5807|                                                                                                          |+-------------------------------------+|
5808|                                                                                                          ||:diagtext:`on builtin function`      ||
5809|                                                                                                          |+-------------------------------------+|
5810+----------------------------------------------------------------------------------------------------------+---------------------------------------+
5811
5812+-------------------------------------------------------------------------------------------------------------------------------------------+
5813|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
5814+-------------------------------------------------------------------------------------------------------------------------------------------+
5815
5816+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5817|:warning:`warning:` |nbsp| :diagtext:`ignoring \_\_declspec(allocator) because the function return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a pointer or reference type`|
5818+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5819
5820+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5821|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
5822|                                                                                                                        ||:diagtext:`class`    ||                                                    |
5823|                                                                                                                        |+---------------------+|                                                    |
5824|                                                                                                                        ||:diagtext:`struct`   ||                                                    |
5825|                                                                                                                        |+---------------------+|                                                    |
5826|                                                                                                                        ||:diagtext:`interface`||                                                    |
5827|                                                                                                                        |+---------------------+|                                                    |
5828|                                                                                                                        ||:diagtext:`union`    ||                                                    |
5829|                                                                                                                        |+---------------------+|                                                    |
5830|                                                                                                                        ||:diagtext:`enum`     ||                                                    |
5831|                                                                                                                        |+---------------------+|                                                    |
5832+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
5833
5834+--------------------------------------------------------------------------------------------+
5835|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
5836+--------------------------------------------------------------------------------------------+
5837
5838+----------------------------------------------------------------------------------------------------------------------------------------------+
5839|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
5840+----------------------------------------------------------------------------------------------------------------------------------------------+
5841
5842+----------------------------------------------------------------------------------------------------------------------------------------+
5843|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
5844+----------------------------------------------------------------------------------------------------------------------------------------+
5845
5846+--------------------------------------------------------------------------------------------------------------+
5847|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
5848+--------------------------------------------------------------------------------------------------------------+
5849
5850+------------------------------------------------------------------------------------------------+
5851|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
5852+------------------------------------------------------------------------------------------------+
5853
5854+-------------------------------------------------------------------------------------------------------------------------+
5855|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
5856+-------------------------------------------------------------------------------------------------------------------------+
5857
5858+---------------------------------------------------------------------------+------------------------------------+
5859|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
5860|                                                                           ||:diagtext:`primary template`      ||
5861|                                                                           |+----------------------------------+|
5862|                                                                           ||:diagtext:`partial specialization`||
5863|                                                                           |+----------------------------------+|
5864+---------------------------------------------------------------------------+------------------------------------+
5865
5866+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5867|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+|
5868|                                                                                                                  ||:diagtext:`of retainable type`   ||
5869|                                                                                                                  |+---------------------------------+|
5870|                                                                                                                  ||:diagtext:`with strong ownership`||
5871|                                                                                                                  |+---------------------------------+|
5872+------------------------------------------------------------------------------------------------------------------+-----------------------------------+
5873
5874+--------------------------------------------------------------------------------------------------------------+
5875|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
5876+--------------------------------------------------------------------------------------------------------------+
5877
5878+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
5879|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
5880|                           ||:diagtext:`MIPS`  ||                                                                                     ||:diagtext:`no parameters`       ||
5881|                           |+------------------+|                                                                                     |+--------------------------------+|
5882|                           ||:diagtext:`MSP430`||                                                                                     ||:diagtext:`a 'void' return type`||
5883|                           |+------------------+|                                                                                     |+--------------------------------+|
5884|                           ||:diagtext:`RISC-V`||                                                                                     |                                  |
5885|                           |+------------------+|                                                                                     |                                  |
5886+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+
5887
5888+--------------------------------------------------------------------------------------------+
5889|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
5890+--------------------------------------------------------------------------------------------+
5891
5892+------------------------------------------------------------------------------------------------------------------------------+
5893|:warning:`warning:` |nbsp| :diagtext:`'mig\_server\_routine' attribute only applies to routines that return a kern\_return\_t`|
5894+------------------------------------------------------------------------------------------------------------------------------+
5895
5896+---------------------------------------------------------------------------------------+
5897|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
5898+---------------------------------------------------------------------------------------+
5899
5900+-------------------------------------------------------------------------------------------------------------------+
5901|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`|
5902+-------------------------------------------------------------------------------------------------------------------+
5903
5904+---------------------------------------------------------------------------------------------+
5905|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`|
5906+---------------------------------------------------------------------------------------------+
5907
5908+--------------------------------------------------------------------------------------------------------------------+
5909|:warning:`warning:` |nbsp| :diagtext:`'nothrow' attribute conflicts with exception specification; attribute ignored`|
5910+--------------------------------------------------------------------------------------------------------------------+
5911
5912+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5913|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`|
5914|                                                                                                ||:diagtext:`Objective-C object`                   ||                              |
5915|                                                                                                |+-------------------------------------------------+|                              |
5916|                                                                                                ||:diagtext:`pointer`                              ||                              |
5917|                                                                                                |+-------------------------------------------------+|                              |
5918|                                                                                                ||:diagtext:`pointer-to-CF-pointer`                ||                              |
5919|                                                                                                |+-------------------------------------------------+|                              |
5920|                                                                                                ||:diagtext:`pointer/reference-to-OSObject-pointer`||                              |
5921|                                                                                                |+-------------------------------------------------+|                              |
5922+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+
5923
5924+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5925|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
5926|                                                                                                ||:diagtext:`functions` ||                                       ||:diagtext:`an Objective-C object`   ||
5927|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5928|                                                                                                ||:diagtext:`methods`   ||                                       ||:diagtext:`a pointer`               ||
5929|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5930|                                                                                                ||:diagtext:`properties`||                                       ||:diagtext:`a non-retainable pointer`||
5931|                                                                                                |+----------------------+|                                       |+------------------------------------+|
5932+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
5933
5934+----------------------------------------------------------------------------------------------------------------------+
5935|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute isn't implemented by this Objective-C runtime`|
5936+----------------------------------------------------------------------------------------------------------------------+
5937
5938+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5939|:warning:`warning:` |nbsp| :diagtext:`direct attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored (not implemented by this Objective-C runtime)`|
5940+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5941
5942+--------------------------------------------------------------------------------------------------------------------------------------------+
5943|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
5944+--------------------------------------------------------------------------------------------------------------------------------------------+
5945
5946+---------------------------------------------------------------------------------------------------------------------------+
5947|:warning:`warning:` |nbsp| :diagtext:`'require\_constant\_initialization' attribute added after initialization of variable`|
5948+---------------------------------------------------------------------------------------------------------------------------+
5949
5950+----------------------------------------------------------------------------+
5951|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`|
5952+----------------------------------------------------------------------------+
5953
5954+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5955|:warning:`warning:` |nbsp| :diagtext:`template parameter of a function template with the 'sycl\_kernel' attribute cannot be a non-type template parameter`|
5956+----------------------------------------------------------------------------------------------------------------------------------------------------------+
5957
5958+-------------------------------------------------------------------------------------------------------------------+
5959|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a single parameter`|
5960+-------------------------------------------------------------------------------------------------------------------+
5961
5962+-----------------------------------------------------------------------------------------------------------------------------------------+
5963|:warning:`warning:` |nbsp| :diagtext:`'sycl\_kernel' attribute only applies to a function template with at least two template parameters`|
5964+-----------------------------------------------------------------------------------------------------------------------------------------+
5965
5966+---------------------------------------------------------------------------------------------------------------------+
5967|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a 'void' return type`|
5968+---------------------------------------------------------------------------------------------------------------------+
5969
5970+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5971|: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`|
5972|                           ||:diagtext:`alignment`||                                                                                                                                             ||:diagtext:`alignment`||                                                                                                 |
5973|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5974|                           ||:diagtext:`size`     ||                                                                                                                                             ||:diagtext:`size`     ||                                                                                                 |
5975|                           |+---------------------+|                                                                                                                                             |+---------------------+|                                                                                                 |
5976+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
5977
5978+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5979|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
5980|                                                                                             ||:diagtext:`floating point`||                                                                                                  |
5981|                                                                                             |+--------------------------+|                                                                                                  |
5982|                                                                                             ||:diagtext:`vector`        ||                                                                                                  |
5983|                                                                                             |+--------------------------+|                                                                                                  |
5984+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
5985
5986+--------------------------------------------------------------------------------------------------------------------------------+
5987|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
5988+--------------------------------------------------------------------------------------------------------------------------------+
5989
5990+-----------------------------------------------------------------------------------------------------------------------------------------+
5991|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
5992+-----------------------------------------------------------------------------------------------------------------------------------------+
5993
5994+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
5995|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
5996|                                                                                             ||:diagtext:`function`                           ||                                                               |
5997|                                                                                             |+-----------------------------------------------+|                                                               |
5998|                                                                                             ||:diagtext:`pointer`                            ||                                                               |
5999|                                                                                             |+-----------------------------------------------+|                                                               |
6000|                                                                                             ||:diagtext:`Objective-C object or block pointer`||                                                               |
6001|                                                                                             |+-----------------------------------------------+|                                                               |
6002+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
6003
6004+-------------------------------------------------------------------------------------------------------------------------+
6005|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
6006+-------------------------------------------------------------------------------------------------------------------------+
6007
6008+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
6009|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`|
6010|                           ||:diagtext:`unsupported`|||                                ||                                                                                                               |
6011|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
6012|                           ||:diagtext:`duplicate`  ||| |nbsp| :diagtext:`architecture`||                                                                                                               |
6013|                           |+-----------------------+|+--------------------------------+|                                                                                                               |
6014+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+
6015
6016+----------------------------------------------------------------------------------------------------------------------------------------------------+
6017|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`|
6018+----------------------------------------------------------------------------------------------------------------------------------------------------+
6019
6020
6021-Wignored-optimization-argument
6022-------------------------------
6023This diagnostic is enabled by default.
6024
6025**Diagnostic text:**
6026
6027+--------------------------------------------------------------------------------------------------------------------------------------------------+
6028|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
6029+--------------------------------------------------------------------------------------------------------------------------------------------------+
6030
6031+--------------------------------------------------------------------------------------------------------+
6032|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
6033+--------------------------------------------------------------------------------------------------------+
6034
6035
6036-Wignored-pragma-intrinsic
6037--------------------------
6038This diagnostic is enabled by default.
6039
6040**Diagnostic text:**
6041
6042+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
6043|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
6044|                                                                                          ||                                                                            ||
6045|                                                                                          |+----------------------------------------------------------------------------+|
6046|                                                                                          ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
6047|                                                                                          |+----------------------------------------------------------------------------+|
6048+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
6049
6050
6051-Wignored-pragma-optimize
6052-------------------------
6053This diagnostic is enabled by default.
6054
6055**Diagnostic text:**
6056
6057+--------------------------------------------------------------------------+
6058|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`|
6059+--------------------------------------------------------------------------+
6060
6061
6062-Wignored-pragmas
6063-----------------
6064This diagnostic is enabled by default.
6065
6066Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_.
6067
6068**Diagnostic text:**
6069
6070+------------------------------------------------------------------------------+---------------------------+-----------------------+
6071|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
6072|                                                                              ||:diagtext:`align`        ||                       |
6073|                                                                              |+-------------------------+|                       |
6074|                                                                              ||:diagtext:`options align`||                       |
6075|                                                                              |+-------------------------+|                       |
6076+------------------------------------------------------------------------------+---------------------------+-----------------------+
6077
6078+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
6079|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
6080|                                                                                   ||:diagtext:`align`        ||                       |
6081|                                                                                   |+-------------------------+|                       |
6082|                                                                                   ||:diagtext:`options align`||                       |
6083|                                                                                   |+-------------------------+|                       |
6084+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
6085
6086+-----------------------------------------------------------------------------------------------------------+
6087|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
6088+-----------------------------------------------------------------------------------------------------------+
6089
6090+----------------------------------------------------------------------------------------------------+
6091|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
6092+----------------------------------------------------------------------------------------------------+
6093
6094+-------------------------------------------------------------------------------------------------------+
6095|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
6096+-------------------------------------------------------------------------------------------------------+
6097
6098+----------------------------------------------------------------------------------------------+
6099|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
6100+----------------------------------------------------------------------------------------------+
6101
6102+------------------------------------------------------------------------------------+
6103|:warning:`warning:` |nbsp| :diagtext:`unknown module '`:placeholder:`A`:diagtext:`'`|
6104+------------------------------------------------------------------------------------+
6105
6106+------------------------------------------------------------------------------------------------------------------------+
6107|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6108+------------------------------------------------------------------------------------------------------------------------+
6109
6110+--------------------------------------------------------------------------------------------------------------+
6111|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
6112+--------------------------------------------------------------------------------------------------------------+
6113
6114+---------------------------------------------------------------------------------------------------------------------+
6115|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
6116+---------------------------------------------------------------------------------------------------------------------+
6117
6118+----------------------------------------------------------------------------------------------------+
6119|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
6120+----------------------------------------------------------------------------------------------------+
6121
6122+---------------------------------------------------------------------------------------------------------------------+
6123|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6124+---------------------------------------------------------------------------------------------------------------------+
6125
6126+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6127|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6128+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6129
6130+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6131|: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`|
6132+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6133
6134+-----------------------------------------------------------------------------------------------------------------+
6135|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
6136+-----------------------------------------------------------------------------------------------------------------+
6137
6138+------------------------------------------------------------------------------------------------------------------------+
6139|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
6140+------------------------------------------------------------------------------------------------------------------------+
6141
6142+-------------------------------------------------------+---------------------------------------------------+------------------------------+
6143|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
6144|                                                       ||:diagtext:`'enable', 'disable', 'begin' or 'end'`||                              |
6145|                                                       |+-------------------------------------------------+|                              |
6146|                                                       ||:diagtext:`'disable'`                            ||                              |
6147|                                                       |+-------------------------------------------------+|                              |
6148+-------------------------------------------------------+---------------------------------------------------+------------------------------+
6149
6150+-----------------------------------------------------------------------------------------------------------+
6151|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
6152+-----------------------------------------------------------------------------------------------------------+
6153
6154+-----------------------------------------------------------------------------------------------------------------+
6155|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
6156+-----------------------------------------------------------------------------------------------------------------+
6157
6158+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6159|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6160+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6161
6162+------------------------------------------------------------------------------------------------------------------------------------------------+
6163|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6164+------------------------------------------------------------------------------------------------------------------------------------------------+
6165
6166+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6167|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6168+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6169
6170+--------------------------------------------------------------------------------------------------------------------------+
6171|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
6172+--------------------------------------------------------------------------------------------------------------------------+
6173
6174+---------------------------------------------------------------------------------------------------------------------+
6175|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6176+---------------------------------------------------------------------------------------------------------------------+
6177
6178+----------------------------------------------------------------------------------------------------------+
6179|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
6180+----------------------------------------------------------------------------------------------------------+
6181
6182+-------------------------------------------------------------------------------------------------------------------+
6183|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
6184+-------------------------------------------------------------------------------------------------------------------+
6185
6186+-----------------------------------------------------------------------------------------------------------------+
6187|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6188+-----------------------------------------------------------------------------------------------------------------+
6189
6190+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
6191|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+|
6192|                                                                                                                                          ||                                                ||
6193|                                                                                                                                          |+------------------------------------------------+|
6194|                                                                                                                                          ||+----------------------------------------------+||
6195|                                                                                                                                          |||:diagtext:`; expected` |nbsp| :placeholder:`D`|||
6196|                                                                                                                                          ||+----------------------------------------------+||
6197|                                                                                                                                          |+------------------------------------------------+|
6198+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
6199
6200+------------------------------------------------------------------------------------------------------------------------------------------------+
6201|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6202+------------------------------------------------------------------------------------------------------------------------------------------------+
6203
6204+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
6205|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+|
6206|                                                                                                        ||                                                ||
6207|                                                                                                        |+------------------------------------------------+|
6208|                                                                                                        ||+----------------------------------------------+||
6209|                                                                                                        |||:diagtext:`; expected` |nbsp| :placeholder:`C`|||
6210|                                                                                                        ||+----------------------------------------------+||
6211|                                                                                                        |+------------------------------------------------+|
6212+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+
6213
6214+----------------------------------------------------------------------------------------------+
6215|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
6216+----------------------------------------------------------------------------------------------+
6217
6218+--------------------------------------------------------------------------------------------------+
6219|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
6220+--------------------------------------------------------------------------------------------------+
6221
6222+---------------------------------------------------------------------------------------------+
6223|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
6224+---------------------------------------------------------------------------------------------+
6225
6226+--------------------------------------------------------------------------------------------------------+
6227|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
6228+--------------------------------------------------------------------------------------------------------+
6229
6230+-------------------------------------------------------------------------------------------------+
6231|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
6232+-------------------------------------------------------------------------------------------------+
6233
6234+----------------------------------------------------------------------------------------------------------------------------+
6235|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
6236+----------------------------------------------------------------------------------------------------------------------------+
6237
6238+------------------------------------------------------------------------------------------------------------------------------+
6239|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
6240+------------------------------------------------------------------------------------------------------------------------------+
6241
6242+---------------------------------------------------------------------------------------------------------------------+
6243|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
6244+---------------------------------------------------------------------------------------------------------------------+
6245
6246+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
6247|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
6248+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
6249
6250+-------------------------------------------------------------------------------------------------------------------------+
6251|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
6252+-------------------------------------------------------------------------------------------------------------------------+
6253
6254+-----------------------------------------------------------------------------------------------+
6255|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
6256+-----------------------------------------------------------------------------------------------+
6257
6258+------------------------------------------------------------------------------------------+
6259|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
6260+------------------------------------------------------------------------------------------+
6261
6262+----------------------------------------------------------------------------------------------------------------------------------------------+
6263|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
6264+----------------------------------------------------------------------------------------------------------------------------------------------+
6265
6266
6267-Wignored-qualifiers
6268--------------------
6269Some of the diagnostics controlled by this flag are enabled by default.
6270
6271**Diagnostic text:**
6272
6273+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
6274|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
6275|                                                  ||:diagtext:`unused`                ||                                                                |
6276|                                                  |+----------------------------------+|                                                                |
6277|                                                  ||:diagtext:`\_\_unsafe\_unretained`||                                                                |
6278|                                                  |+----------------------------------+|                                                                |
6279|                                                  ||:diagtext:`\_\_strong`            ||                                                                |
6280|                                                  |+----------------------------------+|                                                                |
6281|                                                  ||:diagtext:`\_\_weak`              ||                                                                |
6282|                                                  |+----------------------------------+|                                                                |
6283|                                                  ||:diagtext:`\_\_autoreleasing`     ||                                                                |
6284|                                                  |+----------------------------------+|                                                                |
6285+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
6286
6287+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
6288|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
6289+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
6290
6291+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
6292|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`|
6293|                                                                                    ||             ||                                          ||:diagtext:`has` ||                             |
6294|                                                                                    |+-------------+|                                          |+----------------+|                             |
6295|                                                                                    ||:diagtext:`s`||                                          ||:diagtext:`have`||                             |
6296|                                                                                    |+-------------+|                                          |+----------------+|                             |
6297+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+
6298
6299+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6300|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
6301+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6302
6303+----------------------------------------------------------------------------------------------------------------------------------------------------------+
6304|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
6305+----------------------------------------------------------------------------------------------------------------------------------------------------------+
6306
6307
6308-Wimplicit
6309----------
6310Some of the diagnostics controlled by this flag are enabled by default.
6311
6312Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
6313
6314
6315-Wimplicit-atomic-properties
6316----------------------------
6317**Diagnostic text:**
6318
6319+-----------------------------------------------------------------------------------------------------+
6320|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
6321+-----------------------------------------------------------------------------------------------------+
6322
6323+----------------------------------------------------------------------------+
6324|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
6325+----------------------------------------------------------------------------+
6326
6327
6328-Wimplicit-const-int-float-conversion
6329-------------------------------------
6330This diagnostic is enabled by default.
6331
6332**Diagnostic text:**
6333
6334+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6335|: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`|
6336+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6337
6338
6339-Wimplicit-conversion-floating-point-to-bool
6340--------------------------------------------
6341This diagnostic is enabled by default.
6342
6343**Diagnostic text:**
6344
6345+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6346|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
6347+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6348
6349
6350-Wimplicit-exception-spec-mismatch
6351----------------------------------
6352This diagnostic is enabled by default.
6353
6354**Diagnostic text:**
6355
6356+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
6357|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
6358|                                                                                   ||:diagtext:`explicit`||                                                                      ||:diagtext:`implicit`||                                           |
6359|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
6360|                                                                                   ||:diagtext:`implicit`||                                                                      ||:diagtext:`explicit`||                                           |
6361|                                                                                   |+--------------------+|                                                                      |+--------------------+|                                           |
6362+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
6363
6364
6365-Wimplicit-fallthrough
6366----------------------
6367Also controls `-Wimplicit-fallthrough-per-function`_.
6368
6369**Diagnostic text:**
6370
6371+---------------------------------------------------------------------------------+
6372|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
6373+---------------------------------------------------------------------------------+
6374
6375+-------------------------------------------------------------------------------------+
6376|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
6377+-------------------------------------------------------------------------------------+
6378
6379
6380-Wimplicit-fallthrough-per-function
6381-----------------------------------
6382**Diagnostic text:**
6383
6384+------------------------------------------------------------------------------------------------------------------+
6385|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
6386+------------------------------------------------------------------------------------------------------------------+
6387
6388
6389-Wimplicit-fixed-point-conversion
6390---------------------------------
6391This diagnostic is enabled by default.
6392
6393**Diagnostic text:**
6394
6395+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6396|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot fit within the range of values for` |nbsp| :placeholder:`B`|
6397+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6398
6399
6400-Wimplicit-float-conversion
6401---------------------------
6402Some of the diagnostics controlled by this flag are enabled by default.
6403
6404Also controls `-Wimplicit-int-float-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_.
6405
6406**Diagnostic text:**
6407
6408+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6409|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
6410+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6411
6412+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6413|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
6414+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6415
6416
6417-Wimplicit-function-declaration
6418-------------------------------
6419Some of the diagnostics controlled by this flag are enabled by default.
6420
6421**Diagnostic text:**
6422
6423+------------------------------------------------------------------------------------------------------------------------------------+
6424|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`|
6425+------------------------------------------------------------------------------------------------------------------------------------+
6426
6427+---------------------------------------------------------------------------------------------------------------------------------------------+
6428|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
6429+---------------------------------------------------------------------------------------------------------------------------------------------+
6430
6431+---------------------------------------------------------------------------------+
6432|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
6433+---------------------------------------------------------------------------------+
6434
6435+-----------------------------------------------------------------------------------------------+
6436|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
6437+-----------------------------------------------------------------------------------------------+
6438
6439
6440-Wimplicit-int
6441--------------
6442This diagnostic is enabled by default.
6443
6444**Diagnostic text:**
6445
6446+--------------------------------------------------------------------------------+
6447|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
6448+--------------------------------------------------------------------------------+
6449
6450
6451-Wimplicit-int-conversion
6452-------------------------
6453Also controls `-Wobjc-signed-char-bool-implicit-int-conversion`_.
6454
6455**Diagnostic text:**
6456
6457+---------------------------------------------------------------------------------------------+
6458|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`|
6459+---------------------------------------------------------------------------------------------+
6460
6461+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6462|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
6463+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6464
6465
6466-Wimplicit-int-float-conversion
6467-------------------------------
6468Some of the diagnostics controlled by this flag are enabled by default.
6469
6470Also controls `-Wimplicit-const-int-float-conversion`_.
6471
6472**Diagnostic text:**
6473
6474+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6475|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may lose precision`|
6476+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6477
6478
6479-Wimplicit-retain-self
6480----------------------
6481**Diagnostic text:**
6482
6483+---------------------------------------------------------------------------------------------------------------------------------------+
6484|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
6485+---------------------------------------------------------------------------------------------------------------------------------------+
6486
6487
6488-Wimplicitly-unsigned-literal
6489-----------------------------
6490This diagnostic is enabled by default.
6491
6492**Diagnostic text:**
6493
6494+----------------------------------------------------------------------------------------------------------------------------------------+
6495|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
6496+----------------------------------------------------------------------------------------------------------------------------------------+
6497
6498
6499-Wimport
6500--------
6501This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6502
6503-Wimport-preprocessor-directive-pedantic
6504----------------------------------------
6505**Diagnostic text:**
6506
6507+----------------------------------------------------------------------+
6508|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
6509+----------------------------------------------------------------------+
6510
6511
6512-Winaccessible-base
6513-------------------
6514This diagnostic is enabled by default.
6515
6516**Diagnostic text:**
6517
6518+-----------------------------------------------------------------------------------------------------------------------------------------------+
6519|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
6520+-----------------------------------------------------------------------------------------------------------------------------------------------+
6521
6522
6523-Winclude-next-absolute-path
6524----------------------------
6525This diagnostic is enabled by default.
6526
6527**Diagnostic text:**
6528
6529+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6530|: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`|
6531+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6532
6533
6534-Winclude-next-outside-header
6535-----------------------------
6536This diagnostic is enabled by default.
6537
6538**Diagnostic text:**
6539
6540+--------------------------------------------------------------------------------------------------------------------+
6541|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file; will search from start of include path`|
6542+--------------------------------------------------------------------------------------------------------------------+
6543
6544
6545-Wincompatible-exception-spec
6546-----------------------------
6547This diagnostic is enabled by default.
6548
6549**Diagnostic text:**
6550
6551+--------------------------------------------------------------------------+----------------------+--------------------------------+
6552|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
6553|                                                                          ||:diagtext:`return`  ||                                |
6554|                                                                          |+--------------------+|                                |
6555|                                                                          ||:diagtext:`argument`||                                |
6556|                                                                          |+--------------------+|                                |
6557+--------------------------------------------------------------------------+----------------------+--------------------------------+
6558
6559+-----------------------------------------------------------------------------------------------+
6560|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
6561+-----------------------------------------------------------------------------------------------+
6562
6563
6564-Wincompatible-function-pointer-types
6565-------------------------------------
6566This diagnostic is enabled by default.
6567
6568**Diagnostic text:**
6569
6570+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6571|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6572|                                                                                  ||:diagtext:`assigning to different types`                      |||                                     ||
6573|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
6574|                                                                                  ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6575|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
6576|                                                                                  ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6577|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
6578|                                                                                  ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6579|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
6580|                                                                                  ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6581|                                                                                  |+--------------------------------------------------------------+|+-------------------------------------+|
6582|                                                                                  ||:diagtext:`sending to parameter of different type`            ||                                       |
6583|                                                                                  |+--------------------------------------------------------------+|                                       |
6584|                                                                                  ||:diagtext:`casting between types`                             ||                                       |
6585|                                                                                  |+--------------------------------------------------------------+|                                       |
6586+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6587
6588
6589-Wincompatible-library-redeclaration
6590------------------------------------
6591This diagnostic is enabled by default.
6592
6593**Diagnostic text:**
6594
6595+-------------------------------------------------------------------------------------------------------------+
6596|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
6597+-------------------------------------------------------------------------------------------------------------+
6598
6599
6600-Wincompatible-ms-struct
6601------------------------
6602This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
6603
6604**Diagnostic text:**
6605
6606+---------------------------------------------------------------------------------------------------------------------------------------------+
6607|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
6608+---------------------------------------------------------------------------------------------------------------------------------------------+
6609
6610+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6611|: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`|
6612+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6613
6614
6615-Wincompatible-pointer-types
6616----------------------------
6617This diagnostic is enabled by default.
6618
6619Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
6620
6621**Diagnostic text:**
6622
6623+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6624|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6625|                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6626|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6627|                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6628|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6629|                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6630|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6631|                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6632|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6633|                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6634|                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6635|                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6636|                                                                         |+--------------------------------------------------------------+|                                       |
6637|                                                                         ||:diagtext:`casting between types`                             ||                                       |
6638|                                                                         |+--------------------------------------------------------------+|                                       |
6639+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6640
6641
6642-Wincompatible-pointer-types-discards-qualifiers
6643------------------------------------------------
6644This diagnostic is enabled by default.
6645
6646**Diagnostic text:**
6647
6648+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
6649|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
6650|                           ||:diagtext:`assigning to different types`                      ||                                                               |
6651|                           |+--------------------------------------------------------------+|                                                               |
6652|                           ||:diagtext:`passing to parameter of different type`            ||                                                               |
6653|                           |+--------------------------------------------------------------+|                                                               |
6654|                           ||:diagtext:`returning from function with different return type`||                                                               |
6655|                           |+--------------------------------------------------------------+|                                                               |
6656|                           ||:diagtext:`converting between types`                          ||                                                               |
6657|                           |+--------------------------------------------------------------+|                                                               |
6658|                           ||:diagtext:`initializing with expression of different type`    ||                                                               |
6659|                           |+--------------------------------------------------------------+|                                                               |
6660|                           ||:diagtext:`sending to parameter of different type`            ||                                                               |
6661|                           |+--------------------------------------------------------------+|                                                               |
6662|                           ||:diagtext:`casting between types`                             ||                                                               |
6663|                           |+--------------------------------------------------------------+|                                                               |
6664+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
6665
6666+---------------------------+----------------------------------------------------------------+---------------------------------------+
6667|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
6668|                           ||:diagtext:`assigning to different types`                      ||                                       |
6669|                           |+--------------------------------------------------------------+|                                       |
6670|                           ||:diagtext:`passing to parameter of different type`            ||                                       |
6671|                           |+--------------------------------------------------------------+|                                       |
6672|                           ||:diagtext:`returning from function with different return type`||                                       |
6673|                           |+--------------------------------------------------------------+|                                       |
6674|                           ||:diagtext:`converting between types`                          ||                                       |
6675|                           |+--------------------------------------------------------------+|                                       |
6676|                           ||:diagtext:`initializing with expression of different type`    ||                                       |
6677|                           |+--------------------------------------------------------------+|                                       |
6678|                           ||:diagtext:`sending to parameter of different type`            ||                                       |
6679|                           |+--------------------------------------------------------------+|                                       |
6680|                           ||:diagtext:`casting between types`                             ||                                       |
6681|                           |+--------------------------------------------------------------+|                                       |
6682+---------------------------+----------------------------------------------------------------+---------------------------------------+
6683
6684+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
6685|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`changes address space of nested pointers`|
6686|                           ||:diagtext:`reinterpret\_cast`||                                                                                                                                                          |
6687|                           |+-----------------------------+|                                                                                                                                                          |
6688|                           ||:diagtext:`C-style cast`     ||                                                                                                                                                          |
6689|                           |+-----------------------------+|                                                                                                                                                          |
6690+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
6691
6692
6693-Wincompatible-property-type
6694----------------------------
6695This diagnostic is enabled by default.
6696
6697**Diagnostic text:**
6698
6699+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6700|: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`|
6701+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6702
6703
6704-Wincompatible-sysroot
6705----------------------
6706This diagnostic is enabled by default.
6707
6708**Diagnostic text:**
6709
6710+------------------------------------------------------------------------------------------------------------------------------------+
6711|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
6712+------------------------------------------------------------------------------------------------------------------------------------+
6713
6714
6715-Wincomplete-framework-module-declaration
6716-----------------------------------------
6717This diagnostic is enabled by default.
6718
6719**Diagnostic text:**
6720
6721+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6722|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`|
6723+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6724
6725
6726-Wincomplete-implementation
6727---------------------------
6728This diagnostic is enabled by default.
6729
6730**Diagnostic text:**
6731
6732+-----------------------------------------------------------------------------------------------------------------+
6733|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
6734+-----------------------------------------------------------------------------------------------------------------+
6735
6736
6737-Wincomplete-module
6738-------------------
6739Some of the diagnostics controlled by this flag are enabled by default.
6740
6741Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
6742
6743
6744-Wincomplete-setjmp-declaration
6745-------------------------------
6746This diagnostic is enabled by default.
6747
6748**Diagnostic text:**
6749
6750+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6751|: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>.`|
6752+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6753
6754
6755-Wincomplete-umbrella
6756---------------------
6757This diagnostic is enabled by default.
6758
6759**Diagnostic text:**
6760
6761+---------------------------------------------------------------------------------------+
6762|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
6763+---------------------------------------------------------------------------------------+
6764
6765+--------------------------------------------------------------------------------------------------+
6766|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
6767+--------------------------------------------------------------------------------------------------+
6768
6769+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6770|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
6771+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6772
6773
6774-Winconsistent-dllimport
6775------------------------
6776This diagnostic is enabled by default.
6777
6778**Diagnostic text:**
6779
6780+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6781|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
6782+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6783
6784+------------------------------------------------------------------------------------------------------------------------------------+
6785|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
6786+------------------------------------------------------------------------------------------------------------------------------------+
6787
6788
6789-Winconsistent-missing-destructor-override
6790------------------------------------------
6791**Diagnostic text:**
6792
6793+------------------------------------------------------------------------------------------------------------------+
6794|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
6795+------------------------------------------------------------------------------------------------------------------+
6796
6797
6798-Winconsistent-missing-override
6799-------------------------------
6800This diagnostic is enabled by default.
6801
6802**Diagnostic text:**
6803
6804+-----------------------------------------------------------------------------------------------------------------------+
6805|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
6806+-----------------------------------------------------------------------------------------------------------------------+
6807
6808
6809-Wincrement-bool
6810----------------
6811This diagnostic is enabled by default.
6812
6813Also controls `-Wdeprecated-increment-bool`_.
6814
6815**Diagnostic text:**
6816
6817+------------------------------------------------------------------------------------------------+
6818|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
6819+------------------------------------------------------------------------------------------------+
6820
6821
6822-Winfinite-recursion
6823--------------------
6824**Diagnostic text:**
6825
6826+---------------------------------------------------------------------------------------+
6827|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
6828+---------------------------------------------------------------------------------------+
6829
6830
6831-Winit-self
6832-----------
6833This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6834
6835-Winitializer-overrides
6836-----------------------
6837This diagnostic is enabled by default.
6838
6839**Diagnostic text:**
6840
6841+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
6842|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`|
6843|                                                          ||:diagtext:`partially` |nbsp| ||                                                            |
6844|                                                          |+-----------------------------+|                                                            |
6845|                                                          ||                             ||                                                            |
6846|                                                          |+-----------------------------+|                                                            |
6847+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
6848
6849+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
6850|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`|
6851|                                                          ||:diagtext:`partially` |nbsp| ||                                                            |
6852|                                                          |+-----------------------------+|                                                            |
6853|                                                          ||                             ||                                                            |
6854|                                                          |+-----------------------------+|                                                            |
6855+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+
6856
6857
6858-Winjected-class-name
6859---------------------
6860This diagnostic is enabled by default.
6861
6862**Diagnostic text:**
6863
6864+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
6865|: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`|
6866|                                                                                                                                                                           ||:diagtext:`template name`||                                                              ||:diagtext:`'typename'`||                           |
6867|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
6868|                                                                                                                                                                           ||:diagtext:`type`         ||                                                              ||:diagtext:`'template'`||                           |
6869|                                                                                                                                                                           |+-------------------------+|                                                              |+----------------------+|                           |
6870+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
6871
6872
6873-Winline
6874--------
6875This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6876
6877-Winline-asm
6878------------
6879This diagnostic is enabled by default.
6880
6881**Diagnostic text:**
6882
6883The text of this diagnostic is not controlled by Clang.
6884
6885
6886-Winline-new-delete
6887-------------------
6888This diagnostic is enabled by default.
6889
6890**Diagnostic text:**
6891
6892+----------------------------------------------------------------------------------------------------------------------------------+
6893|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
6894+----------------------------------------------------------------------------------------------------------------------------------+
6895
6896
6897-Winstantiation-after-specialization
6898------------------------------------
6899This diagnostic is enabled by default.
6900
6901**Diagnostic text:**
6902
6903+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6904|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
6905+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6906
6907
6908-Wint-conversion
6909----------------
6910This diagnostic is enabled by default.
6911
6912**Diagnostic text:**
6913
6914+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6915|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6916|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6917|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6918|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6919|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6920|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6921|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6922|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6923|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6924|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6925|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6926|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6927|                                                                                         |+--------------------------------------------------------------+|                                       |
6928|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6929|                                                                                         |+--------------------------------------------------------------+|                                       |
6930+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6931
6932+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6933|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
6934|                                                                                         ||:diagtext:`assigning to different types`                      |||                                     ||
6935|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6936|                                                                                         ||:diagtext:`passing to parameter of different type`            |||:diagtext:`; dereference with \*`    ||
6937|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6938|                                                                                         ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
6939|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6940|                                                                                         ||:diagtext:`converting between types`                          |||:diagtext:`; remove \*`              ||
6941|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6942|                                                                                         ||:diagtext:`initializing with expression of different type`    |||:diagtext:`; remove &`               ||
6943|                                                                                         |+--------------------------------------------------------------+|+-------------------------------------+|
6944|                                                                                         ||:diagtext:`sending to parameter of different type`            ||                                       |
6945|                                                                                         |+--------------------------------------------------------------+|                                       |
6946|                                                                                         ||:diagtext:`casting between types`                             ||                                       |
6947|                                                                                         |+--------------------------------------------------------------+|                                       |
6948+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
6949
6950
6951-Wint-conversions
6952-----------------
6953Synonym for `-Wint-conversion`_.
6954
6955
6956-Wint-in-bool-context
6957---------------------
6958**Diagnostic text:**
6959
6960+--------------------------------------------------------------------------------+
6961|:warning:`warning:` |nbsp| :diagtext:`converting the enum constant to a boolean`|
6962+--------------------------------------------------------------------------------+
6963
6964+--------------------------------------------------------------------------------------------------------------------------------------+
6965|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean; did you mean '(`:placeholder:`A`:diagtext:`) != 0'?`|
6966+--------------------------------------------------------------------------------------------------------------------------------------+
6967
6968
6969-Wint-to-pointer-cast
6970---------------------
6971This diagnostic is enabled by default.
6972
6973Also controls `-Wint-to-void-pointer-cast`_.
6974
6975**Diagnostic text:**
6976
6977+-------------------------------------------------------------------------------------------------------------------------------------------+
6978|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6979+-------------------------------------------------------------------------------------------------------------------------------------------+
6980
6981
6982-Wint-to-void-pointer-cast
6983--------------------------
6984This diagnostic is enabled by default.
6985
6986**Diagnostic text:**
6987
6988+-------------------------------------------------------------------------------------------------------------------------------------------+
6989|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
6990+-------------------------------------------------------------------------------------------------------------------------------------------+
6991
6992
6993-Winteger-overflow
6994------------------
6995This diagnostic is enabled by default.
6996
6997**Diagnostic text:**
6998
6999+-----------------------------------------------------------------------------------------------------------------------------------------------------+
7000|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
7001+-----------------------------------------------------------------------------------------------------------------------------------------------------+
7002
7003
7004-Winvalid-command-line-argument
7005-------------------------------
7006This diagnostic is enabled by default.
7007
7008Also controls `-Wignored-optimization-argument`_.
7009
7010**Diagnostic text:**
7011
7012+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7013|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`|
7014+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7015
7016+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7017|: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.`|
7018+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7019
7020+----------------------------------------------------------------------------------------------------------------------------------------------------+
7021|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`|
7022+----------------------------------------------------------------------------------------------------------------------------------------------------+
7023
7024+-----------------------------------------------------------------------------------------------------------------------------------------+
7025|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
7026+-----------------------------------------------------------------------------------------------------------------------------------------+
7027
7028+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7029|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
7030+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7031
7032+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7033|:warning:`warning:` |nbsp| :diagtext:`ignoring extension '`:placeholder:`A`:diagtext:`' because the '`:placeholder:`B`:diagtext:`' architecture does not support it`|
7034+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7035
7036
7037-Winvalid-constexpr
7038-------------------
7039This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
7040
7041**Diagnostic text:**
7042
7043+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+
7044|:error:`error:` |nbsp| |+---------------------+| |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
7045|                       ||:diagtext:`constexpr`||        ||:diagtext:`function`   ||                                                        |
7046|                       |+---------------------+|        |+-----------------------+|                                                        |
7047|                       ||:diagtext:`consteval`||        ||:diagtext:`constructor`||                                                        |
7048|                       |+---------------------+|        |+-----------------------+|                                                        |
7049+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+
7050
7051
7052-Winvalid-iboutlet
7053------------------
7054This diagnostic is enabled by default.
7055
7056**Diagnostic text:**
7057
7058+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
7059|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
7060|                           ||:diagtext:`instance variable`||                                                                                                                                                  |
7061|                           |+-----------------------------+|                                                                                                                                                  |
7062|                           ||:diagtext:`property`         ||                                                                                                                                                  |
7063|                           |+-----------------------------+|                                                                                                                                                  |
7064+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
7065
7066+---------------------------------------------------------------------------------------------------------+
7067|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
7068+---------------------------------------------------------------------------------------------------------+
7069
7070
7071-Winvalid-initializer-from-system-header
7072----------------------------------------
7073This diagnostic is enabled by default.
7074
7075**Diagnostic text:**
7076
7077+--------------------------------------------------------------------------------------------------------------+
7078|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
7079+--------------------------------------------------------------------------------------------------------------+
7080
7081
7082-Winvalid-ios-deployment-target
7083-------------------------------
7084This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
7085
7086**Diagnostic text:**
7087
7088+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7089|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
7090+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7091
7092
7093-Winvalid-no-builtin-names
7094--------------------------
7095This diagnostic is enabled by default.
7096
7097**Diagnostic text:**
7098
7099+-----------------------------------------------------------------------------------------------------------------------------+
7100|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid builtin name for` |nbsp| :placeholder:`B`|
7101+-----------------------------------------------------------------------------------------------------------------------------+
7102
7103
7104-Winvalid-noreturn
7105------------------
7106This diagnostic is enabled by default.
7107
7108**Diagnostic text:**
7109
7110+-------------------------------------------------------------------------------------+
7111|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
7112+-------------------------------------------------------------------------------------+
7113
7114+--------------------------------------------------------------------------------------------------------------------------------+
7115|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
7116+--------------------------------------------------------------------------------------------------------------------------------+
7117
7118
7119-Winvalid-offsetof
7120------------------
7121This diagnostic is enabled by default.
7122
7123**Diagnostic text:**
7124
7125+----------------------------------------------------------------------------------------+
7126|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
7127+----------------------------------------------------------------------------------------+
7128
7129+----------------------------------------------------------------------------------------------------+
7130|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
7131+----------------------------------------------------------------------------------------------------+
7132
7133
7134-Winvalid-or-nonexistent-directory
7135----------------------------------
7136Some of the diagnostics controlled by this flag are enabled by default.
7137
7138**Diagnostic text:**
7139
7140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7141|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
7142+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7143
7144+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7145|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
7146+------------------------------------------------------------------------------------------------------------------------------------------------------------+
7147
7148
7149-Winvalid-partial-specialization
7150--------------------------------
7151This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
7152
7153**Diagnostic text:**
7154
7155+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
7156|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
7157|                       ||:diagtext:`class`   ||                                                                                                     |
7158|                       |+--------------------+|                                                                                                     |
7159|                       ||:diagtext:`variable`||                                                                                                     |
7160|                       |+--------------------+|                                                                                                     |
7161+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
7162
7163
7164-Winvalid-pch
7165-------------
7166This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7167
7168-Winvalid-pp-token
7169------------------
7170This diagnostic is enabled by default.
7171
7172**Diagnostic text:**
7173
7174+---------------------------------------------------------------+
7175|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
7176+---------------------------------------------------------------+
7177
7178+------------------------------------------------------------------+-----------------+-----------------------------+
7179|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
7180|                                                                  ||:diagtext:`'`  ||                             |
7181|                                                                  |+---------------+|                             |
7182|                                                                  ||:diagtext:`'"'`||                             |
7183|                                                                  |+---------------+|                             |
7184+------------------------------------------------------------------+-----------------+-----------------------------+
7185
7186
7187-Winvalid-source-encoding
7188-------------------------
7189This diagnostic is enabled by default.
7190
7191**Diagnostic text:**
7192
7193+--------------------------------------------------------------------------------------+
7194|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
7195+--------------------------------------------------------------------------------------+
7196
7197+-----------------------------------------------------------------------------------+
7198|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
7199+-----------------------------------------------------------------------------------+
7200
7201
7202-Winvalid-token-paste
7203---------------------
7204This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
7205
7206**Diagnostic text:**
7207
7208+----------------------------------------------------------------------------------------------------------------+
7209|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
7210+----------------------------------------------------------------------------------------------------------------+
7211
7212
7213-Wjump-seh-finally
7214------------------
7215This diagnostic is enabled by default.
7216
7217**Diagnostic text:**
7218
7219+-------------------------------------------------------------------------------------------+
7220|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
7221+-------------------------------------------------------------------------------------------+
7222
7223
7224-Wkeyword-compat
7225----------------
7226This diagnostic is enabled by default.
7227
7228**Diagnostic text:**
7229
7230+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
7231|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
7232|                                                                                                                             ||:diagtext:`here`                                     ||
7233|                                                                                                                             |+-----------------------------------------------------+|
7234|                                                                                                                             ||:diagtext:`for the remainder of the translation unit`||
7235|                                                                                                                             |+-----------------------------------------------------+|
7236+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
7237
7238
7239-Wkeyword-macro
7240---------------
7241**Diagnostic text:**
7242
7243+----------------------------------------------------------------------------+
7244|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
7245+----------------------------------------------------------------------------+
7246
7247
7248-Wknr-promoted-parameter
7249------------------------
7250This diagnostic is enabled by default.
7251
7252**Diagnostic text:**
7253
7254+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7255|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
7256+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7257
7258
7259-Wlanguage-extension-token
7260--------------------------
7261**Diagnostic text:**
7262
7263+-----------------------------------------------------+
7264|:warning:`warning:` |nbsp| :diagtext:`extension used`|
7265+-----------------------------------------------------+
7266
7267
7268-Wlarge-by-value-copy
7269---------------------
7270This diagnostic is enabled by default.
7271
7272**Diagnostic text:**
7273
7274+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7275|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
7276+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7277
7278+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7279|: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 ?`|
7280+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7281
7282
7283-Wliblto
7284--------
7285This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7286
7287-Wliteral-conversion
7288--------------------
7289This diagnostic is enabled by default.
7290
7291**Diagnostic text:**
7292
7293+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7294|: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`|
7295+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7296
7297+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7298|: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`|
7299+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7300
7301
7302-Wliteral-range
7303---------------
7304This diagnostic is enabled by default.
7305
7306**Diagnostic text:**
7307
7308+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7309|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
7310+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7311
7312+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7313|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
7314+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7315
7316
7317-Wlocal-type-template-args
7318--------------------------
7319Some of the diagnostics controlled by this flag are enabled by default.
7320
7321Also controls `-Wc++98-compat-local-type-template-args`_.
7322
7323**Diagnostic text:**
7324
7325+------------------------------------------------------------------------------------------------+
7326|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
7327+------------------------------------------------------------------------------------------------+
7328
7329
7330-Wlogical-not-parentheses
7331-------------------------
7332This diagnostic is enabled by default.
7333
7334**Diagnostic text:**
7335
7336+--------------------------------------------------------------------------------------------------------+------------------------------+
7337|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
7338|                                                                                                        ||:diagtext:`comparison`      ||
7339|                                                                                                        |+----------------------------+|
7340|                                                                                                        ||:diagtext:`bitwise operator`||
7341|                                                                                                        |+----------------------------+|
7342+--------------------------------------------------------------------------------------------------------+------------------------------+
7343
7344
7345-Wlogical-op-parentheses
7346------------------------
7347**Diagnostic text:**
7348
7349+---------------------------------------------------------+
7350|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
7351+---------------------------------------------------------+
7352
7353
7354-Wlong-long
7355-----------
7356Also controls `-Wc++11-long-long`_.
7357
7358**Diagnostic text:**
7359
7360+-----------------------------------------------------------------------------------------------+
7361|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
7362+-----------------------------------------------------------------------------------------------+
7363
7364
7365-Wloop-analysis
7366---------------
7367Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
7368
7369
7370-Wmacro-redefined
7371-----------------
7372This diagnostic is enabled by default.
7373
7374**Diagnostic text:**
7375
7376+------------------------------------------------------------------------------+
7377|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
7378+------------------------------------------------------------------------------+
7379
7380
7381-Wmain
7382------
7383Some of the diagnostics controlled by this flag are enabled by default.
7384
7385**Diagnostic text:**
7386
7387+--------------------------------------------------------------------------------------------+
7388|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
7389+--------------------------------------------------------------------------------------------+
7390
7391+--------------------------------------------------------------------------------------+
7392|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
7393+--------------------------------------------------------------------------------------+
7394
7395+------------------------------------------------------------------------------------+
7396|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
7397+------------------------------------------------------------------------------------+
7398
7399+-------------------------------------------------------------------------------+
7400|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
7401+-------------------------------------------------------------------------------+
7402
7403+---------------------------------------------------------------------------------------------------------+
7404|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
7405+---------------------------------------------------------------------------------------------------------+
7406
7407+------------------------------------------------------------------------+
7408|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
7409+------------------------------------------------------------------------+
7410
7411+---------------------------------------------------------------------------+
7412|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
7413+---------------------------------------------------------------------------+
7414
7415
7416-Wmain-return-type
7417------------------
7418This diagnostic is enabled by default.
7419
7420**Diagnostic text:**
7421
7422+-------------------------------------------------------------------------+
7423|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
7424+-------------------------------------------------------------------------+
7425
7426
7427-Wmalformed-warning-check
7428-------------------------
7429This diagnostic is enabled by default.
7430
7431**Diagnostic text:**
7432
7433+---------------------------------------------------------------------------------------------+
7434|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
7435+---------------------------------------------------------------------------------------------+
7436
7437
7438-Wmany-braces-around-scalar-init
7439--------------------------------
7440This diagnostic is enabled by default.
7441
7442**Diagnostic text:**
7443
7444+---------------------------------------------------------------------+----------------------------+-----------------------+
7445|:warning:`warning:` |nbsp| :diagtext:`too many braces around` |nbsp| |+--------------------------+|:diagtext:`initializer`|
7446|                                                                     ||:diagtext:`scalar` |nbsp| ||                       |
7447|                                                                     |+--------------------------+|                       |
7448|                                                                     ||                          ||                       |
7449|                                                                     |+--------------------------+|                       |
7450+---------------------------------------------------------------------+----------------------------+-----------------------+
7451
7452
7453-Wmax-tokens
7454------------
7455This diagnostic is enabled by default.
7456
7457**Diagnostic text:**
7458
7459+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7460|:warning:`warning:` |nbsp| :diagtext:`the number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds this token limit (`:placeholder:`B`:diagtext:`)`|
7461+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7462
7463+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7464|:warning:`warning:` |nbsp| :diagtext:`the total number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds the token limit (`:placeholder:`B`:diagtext:`)`|
7465+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7466
7467
7468The warning is issued if the number of pre-processor tokens exceeds
7469the token limit, which can be set in three ways:
7470
74711. As a limit at a specific point in a file, using the ``clang max_tokens_here``
7472   pragma:
7473
7474   .. code-block: c++
7475      #pragma clang max_tokens_here 1234
7476
74772. As a per-translation unit limit, using the ``-fmax-tokens=`` command-line
7478   flag:
7479
7480   .. code-block: console
7481      clang -c a.cpp -fmax-tokens=1234
7482
74833. As a per-translation unit limit using the ``clang max_tokens_total`` pragma,
7484   which works like and overrides the ``-fmax-tokens=`` flag:
7485
7486   .. code-block: c++
7487      #pragma clang max_tokens_total 1234
7488
7489These limits can be helpful in limiting code growth through included files.
7490
7491Setting a token limit of zero means no limit.
7492
7493-Wmax-unsigned-zero
7494-------------------
7495This diagnostic is enabled by default.
7496
7497**Diagnostic text:**
7498
7499+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
7500|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
7501|                                                                ||:diagtext:`a value and unsigned zero`||                                                      |
7502|                                                                |+-------------------------------------+|                                                      |
7503|                                                                ||:diagtext:`unsigned zero and a value`||                                                      |
7504|                                                                |+-------------------------------------+|                                                      |
7505+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
7506
7507
7508-Wmemset-transposed-args
7509------------------------
7510This diagnostic is enabled by default.
7511
7512**Diagnostic text:**
7513
7514+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
7515|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`|
7516|                           ||:diagtext:`'size' argument to memset is '0'`       ||                                                               |
7517|                           |+---------------------------------------------------+|                                                               |
7518|                           ||:diagtext:`setting buffer to a 'sizeof' expression`||                                                               |
7519|                           |+---------------------------------------------------+|                                                               |
7520+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+
7521
7522
7523-Wmemsize-comparison
7524--------------------
7525This diagnostic is enabled by default.
7526
7527**Diagnostic text:**
7528
7529+-----------------------------------------------------------------------------------------------------------------------+
7530|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
7531+-----------------------------------------------------------------------------------------------------------------------+
7532
7533
7534-Wmethod-signatures
7535-------------------
7536**Diagnostic text:**
7537
7538+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7539|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7540+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7541
7542+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7543|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7544+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7545
7546
7547-Wmicrosoft
7548-----------
7549Some of the diagnostics controlled by this flag are enabled by default.
7550
7551Controls `-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`_.
7552
7553
7554-Wmicrosoft-anon-tag
7555--------------------
7556Some of the diagnostics controlled by this flag are enabled by default.
7557
7558**Diagnostic text:**
7559
7560+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
7561|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
7562|                                                                             ||:diagtext:`struct`||                                             |
7563|                                                                             |+------------------+|                                             |
7564|                                                                             ||:diagtext:`union` ||                                             |
7565|                                                                             |+------------------+|                                             |
7566+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
7567
7568+--------------------------------------------------------+---------------------+---------------------------------------------+
7569|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
7570|                                                        ||:diagtext:`structs`||                                             |
7571|                                                        |+-------------------+|                                             |
7572|                                                        ||:diagtext:`unions` ||                                             |
7573|                                                        |+-------------------+|                                             |
7574+--------------------------------------------------------+---------------------+---------------------------------------------+
7575
7576
7577-Wmicrosoft-cast
7578----------------
7579This diagnostic is enabled by default.
7580
7581**Diagnostic text:**
7582
7583+------------------------------------------------------------------------------------------------------------------------------+
7584|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
7585+------------------------------------------------------------------------------------------------------------------------------+
7586
7587+-------------------------------------------------------------------------------------------------------------------------------------+
7588|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
7589+-------------------------------------------------------------------------------------------------------------------------------------+
7590
7591
7592-Wmicrosoft-charize
7593-------------------
7594**Diagnostic text:**
7595
7596+-------------------------------------------------------------------------------------+
7597|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
7598+-------------------------------------------------------------------------------------+
7599
7600
7601-Wmicrosoft-comment-paste
7602-------------------------
7603**Diagnostic text:**
7604
7605+----------------------------------------------------------------------------------------------------------+
7606|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
7607+----------------------------------------------------------------------------------------------------------+
7608
7609
7610-Wmicrosoft-const-init
7611----------------------
7612This diagnostic is enabled by default.
7613
7614**Diagnostic text:**
7615
7616+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
7617|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
7618|                                                                                                                ||                                                               ||                                            |
7619|                                                                                                                |+---------------------------------------------------------------+|                                            |
7620|                                                                                                                || |nbsp| :diagtext:`without a user-provided default constructor`||                                            |
7621|                                                                                                                |+---------------------------------------------------------------+|                                            |
7622+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
7623
7624
7625-Wmicrosoft-cpp-macro
7626---------------------
7627**Diagnostic text:**
7628
7629+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
7630|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
7631+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
7632
7633
7634-Wmicrosoft-default-arg-redefinition
7635------------------------------------
7636This diagnostic is enabled by default.
7637
7638**Diagnostic text:**
7639
7640+-----------------------------------------------------------------------+
7641|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
7642+-----------------------------------------------------------------------+
7643
7644
7645-Wmicrosoft-drectve-section
7646---------------------------
7647This diagnostic is enabled by default.
7648
7649**Diagnostic text:**
7650
7651+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
7652|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead`|
7653+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
7654
7655
7656-Wmicrosoft-end-of-file
7657-----------------------
7658**Diagnostic text:**
7659
7660+----------------------------------------------------------------------------------------------+
7661|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
7662+----------------------------------------------------------------------------------------------+
7663
7664
7665-Wmicrosoft-enum-forward-reference
7666----------------------------------
7667This diagnostic is enabled by default.
7668
7669**Diagnostic text:**
7670
7671+---------------------------------------------------------------------------------------------------+
7672|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
7673+---------------------------------------------------------------------------------------------------+
7674
7675
7676-Wmicrosoft-enum-value
7677----------------------
7678**Diagnostic text:**
7679
7680+---------------------------------------------------------------------------------------------------------------------------+
7681|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
7682+---------------------------------------------------------------------------------------------------------------------------+
7683
7684
7685-Wmicrosoft-exception-spec
7686--------------------------
7687Some of the diagnostics controlled by this flag are enabled by default.
7688
7689**Diagnostic text:**
7690
7691+------------------------------------------------------------------------------------------------+
7692|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
7693+------------------------------------------------------------------------------------------------+
7694
7695+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
7696|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
7697|                           ||                                ||                                                                                                                |
7698|                           |+--------------------------------+|                                                                                                                |
7699|                           ||:diagtext:`pointer to` |nbsp|   ||                                                                                                                |
7700|                           |+--------------------------------+|                                                                                                                |
7701|                           ||:diagtext:`reference to` |nbsp| ||                                                                                                                |
7702|                           |+--------------------------------+|                                                                                                                |
7703+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
7704
7705+-----------------------------------------------------------------------------------------------------------------+
7706|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
7707+-----------------------------------------------------------------------------------------------------------------+
7708
7709+------------------------------------------------------------------------------------------------------------------------+
7710|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
7711+------------------------------------------------------------------------------------------------------------------------+
7712
7713+--------------------------------------------------------------------------------------------------------------------------------+
7714|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
7715+--------------------------------------------------------------------------------------------------------------------------------+
7716
7717+-------------------------------------------------------------------------------------------------------------------+
7718|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
7719+-------------------------------------------------------------------------------------------------------------------+
7720
7721
7722-Wmicrosoft-exists
7723------------------
7724This diagnostic is enabled by default.
7725
7726**Diagnostic text:**
7727
7728+--------------------------------------------------------+---------------------------------+--------------------------------------------+
7729|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
7730|                                                        ||:diagtext:`\_\_if\_not\_exists`||                                            |
7731|                                                        |+-------------------------------+|                                            |
7732|                                                        ||:diagtext:`\_\_if\_exists`     ||                                            |
7733|                                                        |+-------------------------------+|                                            |
7734+--------------------------------------------------------+---------------------------------+--------------------------------------------+
7735
7736
7737-Wmicrosoft-explicit-constructor-call
7738-------------------------------------
7739This diagnostic is enabled by default.
7740
7741**Diagnostic text:**
7742
7743+-------------------------------------------------------------------------------------------+
7744|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
7745+-------------------------------------------------------------------------------------------+
7746
7747
7748-Wmicrosoft-extra-qualification
7749-------------------------------
7750This diagnostic is enabled by default.
7751
7752**Diagnostic text:**
7753
7754+--------------------------------------------------------------------------------------------+
7755|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
7756+--------------------------------------------------------------------------------------------+
7757
7758
7759-Wmicrosoft-fixed-enum
7760----------------------
7761**Diagnostic text:**
7762
7763+---------------------------------------------------------------------------------------------------------------+
7764|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
7765+---------------------------------------------------------------------------------------------------------------+
7766
7767
7768-Wmicrosoft-flexible-array
7769--------------------------
7770**Diagnostic text:**
7771
7772+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
7773|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
7774|                                                                                                                                  ||:diagtext:`struct`   ||                                            |
7775|                                                                                                                                  |+---------------------+|                                            |
7776|                                                                                                                                  ||:diagtext:`interface`||                                            |
7777|                                                                                                                                  |+---------------------+|                                            |
7778|                                                                                                                                  ||:diagtext:`union`    ||                                            |
7779|                                                                                                                                  |+---------------------+|                                            |
7780|                                                                                                                                  ||:diagtext:`class`    ||                                            |
7781|                                                                                                                                  |+---------------------+|                                            |
7782|                                                                                                                                  ||:diagtext:`enum`     ||                                            |
7783|                                                                                                                                  |+---------------------+|                                            |
7784+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
7785
7786+-------------------------------------------------------------------------------------------------------------------------------------------+
7787|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
7788+-------------------------------------------------------------------------------------------------------------------------------------------+
7789
7790
7791-Wmicrosoft-goto
7792----------------
7793This diagnostic is enabled by default.
7794
7795**Diagnostic text:**
7796
7797+----------------------------------------------------------------------------------------------------------+
7798|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
7799+----------------------------------------------------------------------------------------------------------+
7800
7801
7802-Wmicrosoft-inaccessible-base
7803-----------------------------
7804This diagnostic is enabled by default.
7805
7806**Diagnostic text:**
7807
7808+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7809|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
7810+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7811
7812
7813-Wmicrosoft-include
7814-------------------
7815This diagnostic is enabled by default.
7816
7817**Diagnostic text:**
7818
7819+------------------------------------------------------------------------------------------------------------------------------+
7820|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
7821+------------------------------------------------------------------------------------------------------------------------------+
7822
7823
7824-Wmicrosoft-mutable-reference
7825-----------------------------
7826This diagnostic is enabled by default.
7827
7828**Diagnostic text:**
7829
7830+---------------------------------------------------------------------------------------------+
7831|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
7832+---------------------------------------------------------------------------------------------+
7833
7834
7835-Wmicrosoft-pure-definition
7836---------------------------
7837This diagnostic is enabled by default.
7838
7839**Diagnostic text:**
7840
7841+-------------------------------------------------------------------------------------------------------+
7842|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
7843+-------------------------------------------------------------------------------------------------------+
7844
7845
7846-Wmicrosoft-redeclare-static
7847----------------------------
7848**Diagnostic text:**
7849
7850+-------------------------------------------------------------------------------------------------------------------------------------------+
7851|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
7852+-------------------------------------------------------------------------------------------------------------------------------------------+
7853
7854
7855-Wmicrosoft-sealed
7856------------------
7857This diagnostic is enabled by default.
7858
7859**Diagnostic text:**
7860
7861+--------------------------------------------------------------------------------+
7862|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
7863+--------------------------------------------------------------------------------+
7864
7865
7866-Wmicrosoft-template
7867--------------------
7868This diagnostic is enabled by default.
7869
7870Also controls `-Wmicrosoft-template-shadow`_.
7871
7872**Diagnostic text:**
7873
7874+------------------------------------------------------------------------------------------------------------------------------------------------------+
7875|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
7876+------------------------------------------------------------------------------------------------------------------------------------------------------+
7877
7878+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7879|: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`|
7880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7881
7882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7883|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
7884+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7885
7886+-----------------------------------------------------------------------------------------------------------------------------+
7887|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
7888+-----------------------------------------------------------------------------------------------------------------------------+
7889
7890+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
7891|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
7892|                           ||:diagtext:`class template`           ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
7893|                           |+-------------------------------------+|                                                                                               |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`|                             ||                                            |
7894|                           ||:diagtext:`class template partial`   ||                                                                                               ||+---------------------------------------------------------+                             ||                                            |
7895|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
7896|                           ||:diagtext:`variable template`        ||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
7897|                           |+-------------------------------------+|                                                                                               |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`|||                                            |
7898|                           ||:diagtext:`variable template partial`||                                                                                               ||+--------------------------------------------------------------------------------------+||                                            |
7899|                           |+-------------------------------------+|                                                                                               |+----------------------------------------------------------------------------------------+|                                            |
7900|                           ||:diagtext:`function template`        ||                                                                                               |                                                                                          |                                            |
7901|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7902|                           ||:diagtext:`member function`          ||                                                                                               |                                                                                          |                                            |
7903|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7904|                           ||:diagtext:`static data member`       ||                                                                                               |                                                                                          |                                            |
7905|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7906|                           ||:diagtext:`member class`             ||                                                                                               |                                                                                          |                                            |
7907|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7908|                           ||:diagtext:`member enumeration`       ||                                                                                               |                                                                                          |                                            |
7909|                           |+-------------------------------------+|                                                                                               |                                                                                          |                                            |
7910+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+
7911
7912+------------------------------------------------------------------------------------------------------------------------------------------------+
7913|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
7914+------------------------------------------------------------------------------------------------------------------------------------------------+
7915
7916+-------------------------------------------------------------------------------------------------+
7917|:warning:`warning:` |nbsp| :diagtext:`'static' can only be specified inside the class definition`|
7918+-------------------------------------------------------------------------------------------------+
7919
7920+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7921|: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`|
7922+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7923
7924
7925-Wmicrosoft-template-shadow
7926---------------------------
7927This diagnostic is enabled by default.
7928
7929**Diagnostic text:**
7930
7931+---------------------------------------------------------------------------------------------------------------------------+
7932|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows template parameter`|
7933+---------------------------------------------------------------------------------------------------------------------------+
7934
7935
7936-Wmicrosoft-union-member-reference
7937----------------------------------
7938This diagnostic is enabled by default.
7939
7940**Diagnostic text:**
7941
7942+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7943|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
7944+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7945
7946
7947-Wmicrosoft-unqualified-friend
7948------------------------------
7949This diagnostic is enabled by default.
7950
7951**Diagnostic text:**
7952
7953+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7954|: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`|
7955+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7956
7957
7958-Wmicrosoft-using-decl
7959----------------------
7960This diagnostic is enabled by default.
7961
7962**Diagnostic text:**
7963
7964+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7965|: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`|
7966+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7967
7968
7969-Wmicrosoft-void-pseudo-dtor
7970----------------------------
7971This diagnostic is enabled by default.
7972
7973**Diagnostic text:**
7974
7975+------------------------------------------------------------------------------------------------+
7976|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
7977+------------------------------------------------------------------------------------------------+
7978
7979
7980-Wmisleading-indentation
7981------------------------
7982**Diagnostic text:**
7983
7984+------------------------------------------------------------------------------------------------------+-------------------+-------------+
7985|:warning:`warning:` |nbsp| :diagtext:`misleading indentation; statement is not part of the previous '`|+-----------------+|:diagtext:`'`|
7986|                                                                                                      ||:diagtext:`if`   ||             |
7987|                                                                                                      |+-----------------+|             |
7988|                                                                                                      ||:diagtext:`else` ||             |
7989|                                                                                                      |+-----------------+|             |
7990|                                                                                                      ||:diagtext:`for`  ||             |
7991|                                                                                                      |+-----------------+|             |
7992|                                                                                                      ||:diagtext:`while`||             |
7993|                                                                                                      |+-----------------+|             |
7994+------------------------------------------------------------------------------------------------------+-------------------+-------------+
7995
7996
7997-Wmismatched-new-delete
7998-----------------------
7999This diagnostic is enabled by default.
8000
8001**Diagnostic text:**
8002
8003+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
8004|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
8005|                                              ||                ||                                                               ||:diagtext:`\[\]`||                                   ||:diagtext:`\[\]`||              |
8006|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
8007|                                              ||:diagtext:`\[\]`||                                                               ||                ||                                   ||                ||              |
8008|                                              |+----------------+|                                                               |+----------------+|                                   |+----------------+|              |
8009+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
8010
8011
8012-Wmismatched-parameter-types
8013----------------------------
8014This diagnostic is enabled by default.
8015
8016**Diagnostic text:**
8017
8018+---------------------------------------------------------------------------------------------------------------+
8019|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
8020+---------------------------------------------------------------------------------------------------------------+
8021
8022
8023-Wmismatched-return-types
8024-------------------------
8025This diagnostic is enabled by default.
8026
8027**Diagnostic text:**
8028
8029+-----------------------------------------------------------------------------------------------------------+
8030|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
8031+-----------------------------------------------------------------------------------------------------------+
8032
8033
8034-Wmismatched-tags
8035-----------------
8036**Diagnostic text:**
8037
8038+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
8039|: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`|
8040|                                                                                 ||:diagtext:`a struct`    |||                            ||                                                           ||:diagtext:`a struct`    |||                            ||                                                                                        |
8041|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
8042|                                                                                 ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                           ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||                                                                                        |
8043|                                                                                 |+------------------------+|+----------------------------+|                                                           |+------------------------+|+----------------------------+|                                                                                        |
8044|                                                                                 ||:diagtext:`a class`     ||                              |                                                           ||:diagtext:`a class`     ||                              |                                                                                        |
8045|                                                                                 |+------------------------+|                              |                                                           |+------------------------+|                              |                                                                                        |
8046+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+
8047
8048+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
8049|: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`|
8050|                           ||:diagtext:`struct`   |||                            ||                                                                                ||:diagtext:`struct`   |||                            ||                                                                                        |
8051|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
8052|                           ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||                                                                                        |
8053|                           |+---------------------+|+----------------------------+|                                                                                |+---------------------+|+----------------------------+|                                                                                        |
8054|                           ||:diagtext:`class`    ||                              |                                                                                ||:diagtext:`class`    ||                              |                                                                                        |
8055|                           |+---------------------+|                              |                                                                                |+---------------------+|                              |                                                                                        |
8056+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+
8057
8058
8059-Wmissing-braces
8060----------------
8061**Diagnostic text:**
8062
8063+----------------------------------------------------------------------------------------+
8064|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
8065+----------------------------------------------------------------------------------------+
8066
8067
8068-Wmissing-constinit
8069-------------------
8070This diagnostic is enabled by default.
8071
8072**Diagnostic text:**
8073
8074+---------------------------------------------------------------------------------------------------------------------------+
8075|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier missing on initializing declaration of` |nbsp| :placeholder:`A`|
8076+---------------------------------------------------------------------------------------------------------------------------+
8077
8078
8079-Wmissing-declarations
8080----------------------
8081This diagnostic is enabled by default.
8082
8083**Diagnostic text:**
8084
8085+----------------------------------------------------------------------------+
8086|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
8087+----------------------------------------------------------------------------+
8088
8089+-----------------------------------------------------------------------------------------------------------------+
8090|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
8091+-----------------------------------------------------------------------------------------------------------------+
8092
8093+--------------------------------------------------------------+
8094|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
8095+--------------------------------------------------------------+
8096
8097+-------------------------------------------------------------------------------------------------+
8098|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
8099+-------------------------------------------------------------------------------------------------+
8100
8101
8102-Wmissing-exception-spec
8103------------------------
8104This diagnostic is enabled by default.
8105
8106**Diagnostic text:**
8107
8108+--------------------------------------------------------------------------------------------------------------------------------+
8109|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
8110+--------------------------------------------------------------------------------------------------------------------------------+
8111
8112
8113-Wmissing-field-initializers
8114----------------------------
8115**Diagnostic text:**
8116
8117+-----------------------------------------------------------------------------------------------------------+
8118|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
8119+-----------------------------------------------------------------------------------------------------------+
8120
8121
8122-Wmissing-format-attribute
8123--------------------------
8124This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8125
8126-Wmissing-include-dirs
8127----------------------
8128This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8129
8130-Wmissing-method-return-type
8131----------------------------
8132**Diagnostic text:**
8133
8134+--------------------------------------------------------------------------------------------+
8135|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
8136+--------------------------------------------------------------------------------------------+
8137
8138
8139-Wmissing-noescape
8140------------------
8141This diagnostic is enabled by default.
8142
8143**Diagnostic text:**
8144
8145+----------------------------------------------------------------------------------------------------------------------------+
8146|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
8147+----------------------------------------------------------------------------------------------------------------------------+
8148
8149
8150-Wmissing-noreturn
8151------------------
8152**Diagnostic text:**
8153
8154+----------------------------------------------------------------------------------------+
8155|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
8156+----------------------------------------------------------------------------------------+
8157
8158+---------------------------+----------------------+---------------------------------------------------------------------------------------+
8159|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
8160|                           ||:diagtext:`function`||                                                                                       |
8161|                           |+--------------------+|                                                                                       |
8162|                           ||:diagtext:`method`  ||                                                                                       |
8163|                           |+--------------------+|                                                                                       |
8164+---------------------------+----------------------+---------------------------------------------------------------------------------------+
8165
8166
8167-Wmissing-prototype-for-cc
8168--------------------------
8169This diagnostic is enabled by default.
8170
8171**Diagnostic text:**
8172
8173+----------------------------------------------------------------------------------------------------------------------------------------------+
8174|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
8175+----------------------------------------------------------------------------------------------------------------------------------------------+
8176
8177
8178-Wmissing-prototypes
8179--------------------
8180**Diagnostic text:**
8181
8182+-------------------------------------------------------------------------------------------------+
8183|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
8184+-------------------------------------------------------------------------------------------------+
8185
8186
8187-Wmissing-selector-name
8188-----------------------
8189This diagnostic is enabled by default.
8190
8191**Diagnostic text:**
8192
8193+---------------------------------------------------------------------------------------------------------------------------------------------+
8194|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
8195+---------------------------------------------------------------------------------------------------------------------------------------------+
8196
8197
8198-Wmissing-sysroot
8199-----------------
8200This diagnostic is enabled by default.
8201
8202**Diagnostic text:**
8203
8204+------------------------------------------------------------------------------------------------+
8205|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
8206+------------------------------------------------------------------------------------------------+
8207
8208
8209-Wmissing-variable-declarations
8210-------------------------------
8211**Diagnostic text:**
8212
8213+---------------------------------------------------------------------------------------------------------------------+
8214|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
8215+---------------------------------------------------------------------------------------------------------------------+
8216
8217
8218-Rmodule-build
8219--------------
8220**Diagnostic text:**
8221
8222+---------------------------------------------------------------------------------------------------------------------+
8223|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
8224+---------------------------------------------------------------------------------------------------------------------+
8225
8226+--------------------------------------------------------------------------------------------+
8227|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
8228+--------------------------------------------------------------------------------------------+
8229
8230+-----------------------------------------------------------------------------------------------------------------------------------+
8231|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
8232+-----------------------------------------------------------------------------------------------------------------------------------+
8233
8234+---------------------------------------------------------------------------------------------------------------------+
8235|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
8236+---------------------------------------------------------------------------------------------------------------------+
8237
8238
8239-Wmodule-conflict
8240-----------------
8241This diagnostic is enabled by default.
8242
8243**Diagnostic text:**
8244
8245+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8246|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
8247+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8248
8249+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8250|: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`|
8251+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8252
8253
8254-Wmodule-file-config-mismatch
8255-----------------------------
8256This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
8257
8258**Diagnostic text:**
8259
8260+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8261|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
8262+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8263
8264
8265-Wmodule-file-extension
8266-----------------------
8267This diagnostic is enabled by default.
8268
8269**Diagnostic text:**
8270
8271+----------------------------------------------------------------------------------------------------------------+
8272|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
8273+----------------------------------------------------------------------------------------------------------------+
8274
8275
8276-Rmodule-import
8277---------------
8278**Diagnostic text:**
8279
8280+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+
8281|:remark:`remark:` |nbsp| :diagtext:`importing module '`:placeholder:`A`:diagtext:`'`|+---------------------------------------------------------+| |nbsp| :diagtext:`from '`:placeholder:`B`:diagtext:`'`|
8282|                                                                                    ||                                                         ||                                                       |
8283|                                                                                    |+---------------------------------------------------------+|                                                       |
8284|                                                                                    ||+-------------------------------------------------------+||                                                       |
8285|                                                                                    ||| |nbsp| :diagtext:`into '`:placeholder:`D`:diagtext:`'`|||                                                       |
8286|                                                                                    ||+-------------------------------------------------------+||                                                       |
8287|                                                                                    |+---------------------------------------------------------+|                                                       |
8288+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+
8289
8290
8291-Wmodule-import-in-extern-c
8292---------------------------
8293This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
8294
8295**Diagnostic text:**
8296
8297+-----------------------------------------------------------------------------------------------------------------------------------------------+
8298|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
8299+-----------------------------------------------------------------------------------------------------------------------------------------------+
8300
8301
8302-Wmodules-ambiguous-internal-linkage
8303------------------------------------
8304This diagnostic is enabled by default.
8305
8306**Diagnostic text:**
8307
8308+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
8309|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
8310+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
8311
8312
8313-Wmodules-import-nested-redundant
8314---------------------------------
8315This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
8316
8317**Diagnostic text:**
8318
8319+-------------------------------------------------------------------------------------------------------------------------------------+
8320|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
8321+-------------------------------------------------------------------------------------------------------------------------------------+
8322
8323
8324-Wmost
8325------
8326Some of the diagnostics controlled by this flag are enabled by default.
8327
8328Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wframe-address`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wint-in-bool-context`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wrange-loop-construct`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtautological-compare`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
8329
8330
8331-Wmove
8332------
8333Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_.
8334
8335
8336-Wmsvc-include
8337--------------
8338Synonym for `-Wmicrosoft-include`_.
8339
8340
8341-Wmsvc-not-found
8342----------------
8343This diagnostic is enabled by default.
8344
8345**Diagnostic text:**
8346
8347+-------------------------------------------------------------------------------------------------------------------------------------+
8348|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
8349+-------------------------------------------------------------------------------------------------------------------------------------+
8350
8351
8352-Wmultichar
8353-----------
8354This diagnostic is enabled by default.
8355
8356**Diagnostic text:**
8357
8358+-------------------------------------------------------------------------+
8359|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
8360+-------------------------------------------------------------------------+
8361
8362
8363-Wmultiple-move-vbase
8364---------------------
8365This diagnostic is enabled by default.
8366
8367**Diagnostic text:**
8368
8369+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8370|: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`|
8371+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8372
8373
8374-Wnarrowing
8375-----------
8376Synonym for `-Wc++11-narrowing`_.
8377
8378
8379-Wnested-anon-types
8380-------------------
8381**Diagnostic text:**
8382
8383+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
8384|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
8385|                                                                                       ||:diagtext:`struct`||                                    |
8386|                                                                                       |+------------------+|                                    |
8387|                                                                                       ||:diagtext:`union` ||                                    |
8388|                                                                                       |+------------------+|                                    |
8389+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
8390
8391
8392-Wnested-externs
8393----------------
8394This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8395
8396-Wnew-returns-null
8397------------------
8398This diagnostic is enabled by default.
8399
8400**Diagnostic text:**
8401
8402+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
8403|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
8404|                                                                                                                               ||                                 ||
8405|                                                                                                                               |+---------------------------------+|
8406|                                                                                                                               || |nbsp| :diagtext:`or 'noexcept'`||
8407|                                                                                                                               |+---------------------------------+|
8408+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
8409
8410
8411-Wnewline-eof
8412-------------
8413**Diagnostic text:**
8414
8415+----------------------------------------------------------------+
8416|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
8417+----------------------------------------------------------------+
8418
8419+----------------------------------------------------------------+
8420|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
8421+----------------------------------------------------------------+
8422
8423
8424-Wnoderef
8425---------
8426This diagnostic is enabled by default.
8427
8428**Diagnostic text:**
8429
8430+----------------------------------------------------------------------------------------------------------------------------+
8431|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`|
8432+----------------------------------------------------------------------------------------------------------------------------+
8433
8434+-----------------------------------------------------------------------------------+
8435|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`|
8436+-----------------------------------------------------------------------------------+
8437
8438+-----------------------------------------------------------------------------------------------------+
8439|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`|
8440+-----------------------------------------------------------------------------------------------------+
8441
8442
8443-Wnoexcept-type
8444---------------
8445Synonym for `-Wc++17-compat-mangling`_.
8446
8447
8448-Wnon-c-typedef-for-linkage
8449---------------------------
8450This diagnostic is enabled by default.
8451
8452**Diagnostic text:**
8453
8454+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+
8455|:warning:`warning:` |nbsp| :diagtext:`anonymous non-C-compatible type given name for linkage purposes by` |nbsp| |+-------------------+| |nbsp| :diagtext:`declaration; add a tag name here`|
8456|                                                                                                                 ||:diagtext:`typedef`||                                                    |
8457|                                                                                                                 |+-------------------+|                                                    |
8458|                                                                                                                 ||:diagtext:`alias`  ||                                                    |
8459|                                                                                                                 |+-------------------+|                                                    |
8460+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+
8461
8462
8463-Wnon-gcc
8464---------
8465Some of the diagnostics controlled by this flag are enabled by default.
8466
8467Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
8468
8469
8470-Wnon-literal-null-conversion
8471-----------------------------
8472This diagnostic is enabled by default.
8473
8474**Diagnostic text:**
8475
8476+--------------------------------------------------------------------------------------------------------------------------------------------+
8477|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
8478+--------------------------------------------------------------------------------------------------------------------------------------------+
8479
8480
8481-Wnon-modular-include-in-framework-module
8482-----------------------------------------
8483**Diagnostic text:**
8484
8485+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
8486|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
8487+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
8488
8489
8490-Wnon-modular-include-in-module
8491-------------------------------
8492Also controls `-Wnon-modular-include-in-framework-module`_.
8493
8494**Diagnostic text:**
8495
8496+-------------------------------------------------------------------------------------------------------------------------------------------------+
8497|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
8498+-------------------------------------------------------------------------------------------------------------------------------------------------+
8499
8500
8501-Wnon-pod-varargs
8502-----------------
8503This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
8504
8505**Diagnostic text:**
8506
8507+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
8508|: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`|
8509|                                                                ||:diagtext:`non-POD`    ||                                                                                            ||:diagtext:`function`   ||                                        |
8510|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
8511|                                                                ||:diagtext:`non-trivial`||                                                                                            ||:diagtext:`block`      ||                                        |
8512|                                                                |+-----------------------+|                                                                                            |+-----------------------+|                                        |
8513|                                                                |                         |                                                                                            ||:diagtext:`method`     ||                                        |
8514|                                                                |                         |                                                                                            |+-----------------------+|                                        |
8515|                                                                |                         |                                                                                            ||:diagtext:`constructor`||                                        |
8516|                                                                |                         |                                                                                            |+-----------------------+|                                        |
8517+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
8518
8519+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
8520|: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`|
8521|                                                      ||:diagtext:`non-POD`    ||                                                                                                 ||:diagtext:`function`   ||                                                                          |
8522|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
8523|                                                      ||:diagtext:`non-trivial`||                                                                                                 ||:diagtext:`block`      ||                                                                          |
8524|                                                      |+-----------------------+|                                                                                                 |+-----------------------+|                                                                          |
8525|                                                      |                         |                                                                                                 ||:diagtext:`method`     ||                                                                          |
8526|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
8527|                                                      |                         |                                                                                                 ||:diagtext:`constructor`||                                                                          |
8528|                                                      |                         |                                                                                                 |+-----------------------+|                                                                          |
8529+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
8530
8531+----------------------------------------------------------------------------------------------------------+
8532|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
8533+----------------------------------------------------------------------------------------------------------+
8534
8535+--------------------------------------------------------------------------------------------------------------------------+
8536|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
8537+--------------------------------------------------------------------------------------------------------------------------+
8538
8539
8540-Wnon-power-of-two-alignment
8541----------------------------
8542This diagnostic is enabled by default.
8543
8544**Diagnostic text:**
8545
8546+------------------------------------------------------------------------------+
8547|:warning:`warning:` |nbsp| :diagtext:`requested alignment is not a power of 2`|
8548+------------------------------------------------------------------------------+
8549
8550
8551-Wnon-virtual-dtor
8552------------------
8553**Diagnostic text:**
8554
8555+---------------------------------------------------------------------------------------------------------------+
8556|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
8557+---------------------------------------------------------------------------------------------------------------+
8558
8559
8560-Wnonnull
8561---------
8562This diagnostic is enabled by default.
8563
8564**Diagnostic text:**
8565
8566+------------------------------------------------------------------------------------------------+
8567|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
8568+------------------------------------------------------------------------------------------------+
8569
8570+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
8571|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
8572|                                                                 ||:diagtext:`function`||                                                         |
8573|                                                                 |+--------------------+|                                                         |
8574|                                                                 ||:diagtext:`method`  ||                                                         |
8575|                                                                 |+--------------------+|                                                         |
8576+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
8577
8578
8579-Wnonportable-cfstrings
8580-----------------------
8581This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8582
8583-Wnonportable-include-path
8584--------------------------
8585This diagnostic is enabled by default.
8586
8587**Diagnostic text:**
8588
8589+------------------------------------------------------------------------------------------------------------------------------------------------------+
8590|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
8591+------------------------------------------------------------------------------------------------------------------------------------------------------+
8592
8593
8594-Wnonportable-system-include-path
8595---------------------------------
8596**Diagnostic text:**
8597
8598+------------------------------------------------------------------------------------------------------------------------------------------------------+
8599|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
8600+------------------------------------------------------------------------------------------------------------------------------------------------------+
8601
8602
8603-Wnonportable-vector-initialization
8604-----------------------------------
8605This diagnostic is enabled by default.
8606
8607**Diagnostic text:**
8608
8609+---------------------------------------------------------------------------------------------------------------------+
8610|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
8611+---------------------------------------------------------------------------------------------------------------------+
8612
8613
8614-Wnontrivial-memaccess
8615----------------------
8616This diagnostic is enabled by default.
8617
8618**Diagnostic text:**
8619
8620+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
8621|: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| |+----------------------------------------+|
8622|                           ||:diagtext:`destination for`  ||                                                                                                                                                                         ||:diagtext:`primitive-default-initialize`||
8623|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
8624|                           ||:diagtext:`source of`        ||                                                                                                                                                                         ||:diagtext:`primitive-copy`              ||
8625|                           |+-----------------------------+|                                                                                                                                                                         |+----------------------------------------+|
8626|                           ||:diagtext:`first operand of` ||                                                                                                                                                                         |                                          |
8627|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
8628|                           ||:diagtext:`second operand of`||                                                                                                                                                                         |                                          |
8629|                           |+-----------------------------+|                                                                                                                                                                         |                                          |
8630+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+
8631
8632
8633-Wnsconsumed-mismatch
8634---------------------
8635This diagnostic is enabled by default.
8636
8637**Diagnostic text:**
8638
8639+---------------------------------------------------------------------------------------------------------------+
8640|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
8641+---------------------------------------------------------------------------------------------------------------+
8642
8643
8644-Wnsreturns-mismatch
8645--------------------
8646This diagnostic is enabled by default.
8647
8648**Diagnostic text:**
8649
8650+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
8651|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
8652|                                                                                     ||:diagtext:`not\_retained`||                              |
8653|                                                                                     |+-------------------------+|                              |
8654|                                                                                     ||:diagtext:`retained`     ||                              |
8655|                                                                                     |+-------------------------+|                              |
8656+-------------------------------------------------------------------------------------+---------------------------+------------------------------+
8657
8658
8659-Wnull-arithmetic
8660-----------------
8661This diagnostic is enabled by default.
8662
8663**Diagnostic text:**
8664
8665+--------------------------------------------------------------------------+
8666|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
8667+--------------------------------------------------------------------------+
8668
8669+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
8670|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
8671|                                                                                      ||+----------------------------------------------------------+||
8672|                                                                                      |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
8673|                                                                                      ||+----------------------------------------------------------+||
8674|                                                                                      |+------------------------------------------------------------+|
8675|                                                                                      ||+----------------------------------------------------------+||
8676|                                                                                      |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
8677|                                                                                      ||+----------------------------------------------------------+||
8678|                                                                                      |+------------------------------------------------------------+|
8679+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
8680
8681
8682-Wnull-character
8683----------------
8684This diagnostic is enabled by default.
8685
8686**Diagnostic text:**
8687
8688+-----------------------------------------------------------------------------+--------------------+---------------------------+
8689|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
8690|                                                                             ||:diagtext:`char`  ||                           |
8691|                                                                             |+------------------+|                           |
8692|                                                                             ||:diagtext:`string`||                           |
8693|                                                                             |+------------------+|                           |
8694+-----------------------------------------------------------------------------+--------------------+---------------------------+
8695
8696+-------------------------------------------------------------+
8697|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
8698+-------------------------------------------------------------+
8699
8700
8701-Wnull-conversion
8702-----------------
8703This diagnostic is enabled by default.
8704
8705**Diagnostic text:**
8706
8707+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
8708|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
8709|                                                                     ||:diagtext:`NULL`   ||                                                       |
8710|                                                                     |+-------------------+|                                                       |
8711|                                                                     ||:diagtext:`nullptr`||                                                       |
8712|                                                                     |+-------------------+|                                                       |
8713+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
8714
8715
8716-Wnull-dereference
8717------------------
8718This diagnostic is enabled by default.
8719
8720**Diagnostic text:**
8721
8722+------------------------------------------------------------------------------------------------------------+
8723|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
8724+------------------------------------------------------------------------------------------------------------+
8725
8726+---------------------------------------------------------------------------------------------------------+
8727|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
8728+---------------------------------------------------------------------------------------------------------+
8729
8730
8731-Wnull-pointer-arithmetic
8732-------------------------
8733**Diagnostic text:**
8734
8735+--------------------------------------------------------------------------------------------------------------------------------+
8736|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
8737+--------------------------------------------------------------------------------------------------------------------------------+
8738
8739+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
8740|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
8741|                                                                                                             ||                                            ||
8742|                                                                                                             |+--------------------------------------------+|
8743|                                                                                                             || |nbsp| :diagtext:`if the offset is nonzero`||
8744|                                                                                                             |+--------------------------------------------+|
8745+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
8746
8747
8748-Wnullability
8749-------------
8750This diagnostic is enabled by default.
8751
8752**Diagnostic text:**
8753
8754+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8755|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
8756+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8757
8758+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8759|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
8760+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8761
8762+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8763|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
8764+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8765
8766+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8767|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
8768+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8769
8770+----------------------------------------------------------------------------------------------+
8771|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
8772+----------------------------------------------------------------------------------------------+
8773
8774
8775-Wnullability-completeness
8776--------------------------
8777This diagnostic is enabled by default.
8778
8779Also controls `-Wnullability-completeness-on-arrays`_.
8780
8781**Diagnostic text:**
8782
8783+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
8784|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
8785|                           ||:diagtext:`pointer`       ||                                                                                                           |
8786|                           |+--------------------------+|                                                                                                           |
8787|                           ||:diagtext:`block pointer` ||                                                                                                           |
8788|                           |+--------------------------+|                                                                                                           |
8789|                           ||:diagtext:`member pointer`||                                                                                                           |
8790|                           |+--------------------------+|                                                                                                           |
8791+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
8792
8793
8794-Wnullability-completeness-on-arrays
8795------------------------------------
8796This diagnostic is enabled by default.
8797
8798**Diagnostic text:**
8799
8800+----------------------------------------------------------------------------------------------------------------------------------------------+
8801|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
8802+----------------------------------------------------------------------------------------------------------------------------------------------+
8803
8804
8805-Wnullability-declspec
8806----------------------
8807This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
8808
8809**Diagnostic text:**
8810
8811+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
8812|: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:`?`|
8813|                                                                                                                                                                                                                                 ||:diagtext:`pointer`                ||             |
8814|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
8815|                                                                                                                                                                                                                                 ||:diagtext:`block pointer`          ||             |
8816|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
8817|                                                                                                                                                                                                                                 ||:diagtext:`member pointer`         ||             |
8818|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
8819|                                                                                                                                                                                                                                 ||:diagtext:`function pointer`       ||             |
8820|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
8821|                                                                                                                                                                                                                                 ||:diagtext:`member function pointer`||             |
8822|                                                                                                                                                                                                                                 |+-----------------------------------+|             |
8823+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
8824
8825
8826-Wnullability-extension
8827-----------------------
8828**Diagnostic text:**
8829
8830+---------------------------------------------------------------------------------------------------------------------------------+
8831|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
8832+---------------------------------------------------------------------------------------------------------------------------------+
8833
8834
8835-Wnullability-inferred-on-nested-type
8836-------------------------------------
8837This diagnostic is enabled by default.
8838
8839**Diagnostic text:**
8840
8841+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
8842|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
8843|                                                                                            ||:diagtext:`array`    ||                                 |
8844|                                                                                            |+---------------------+|                                 |
8845|                                                                                            ||:diagtext:`reference`||                                 |
8846|                                                                                            |+---------------------+|                                 |
8847+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
8848
8849
8850-Wnullable-to-nonnull-conversion
8851--------------------------------
8852**Diagnostic text:**
8853
8854+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8855|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
8856+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8857
8858
8859-Wobjc-autosynthesis-property-ivar-name-match
8860---------------------------------------------
8861This diagnostic is enabled by default.
8862
8863**Diagnostic text:**
8864
8865+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
8866|: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`|
8867|                                                                                                                           ||                       ||                                                                                                                                 |
8868|                                                                                                                           |+-----------------------+|                                                                                                                                 |
8869|                                                                                                                           ||:diagtext:`synthesized`||                                                                                                                                 |
8870|                                                                                                                           |+-----------------------+|                                                                                                                                 |
8871+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
8872
8873
8874-Wobjc-bool-constant-conversion
8875-------------------------------
8876This diagnostic is enabled by default.
8877
8878**Diagnostic text:**
8879
8880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8881|: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`|
8882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8883
8884
8885-Wobjc-boxing
8886-------------
8887This diagnostic is enabled by default.
8888
8889**Diagnostic text:**
8890
8891+-------------------------------------------------------------------------------------------------------------------------------------------------+
8892|:warning:`warning:` |nbsp| :diagtext:`string is ill-formed as UTF-8 and will become a null` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when boxed`|
8893+-------------------------------------------------------------------------------------------------------------------------------------------------+
8894
8895
8896-Wobjc-circular-container
8897-------------------------
8898This diagnostic is enabled by default.
8899
8900**Diagnostic text:**
8901
8902+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8903|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`|
8904+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8905
8906
8907-Wobjc-cocoa-api
8908----------------
8909Synonym for `-Wobjc-redundant-api-use`_.
8910
8911
8912-Wobjc-designated-initializers
8913------------------------------
8914This diagnostic is enabled by default.
8915
8916**Diagnostic text:**
8917
8918+-----------------------------------------------------------------------------------------------------------------------------------+
8919|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
8920+-----------------------------------------------------------------------------------------------------------------------------------+
8921
8922+--------------------------------------------------------------------------------------------------+
8923|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
8924+--------------------------------------------------------------------------------------------------+
8925
8926+--------------------------------------------------------------------------------------------------------------------+
8927|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
8928+--------------------------------------------------------------------------------------------------------------------+
8929
8930+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8931|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
8932+------------------------------------------------------------------------------------------------------------------------------------------------------------+
8933
8934+-----------------------------------------------------------------------------------------------------------+
8935|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
8936+-----------------------------------------------------------------------------------------------------------+
8937
8938+----------------------------------------------------------------------------------------------------------+
8939|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
8940+----------------------------------------------------------------------------------------------------------+
8941
8942
8943-Wobjc-flexible-array
8944---------------------
8945This diagnostic is enabled by default.
8946
8947**Diagnostic text:**
8948
8949+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8950|: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`|
8951+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8952
8953+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8954|: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`|
8955+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8956
8957
8958-Wobjc-forward-class-redefinition
8959---------------------------------
8960This diagnostic is enabled by default.
8961
8962**Diagnostic text:**
8963
8964+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
8965|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
8966+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
8967
8968
8969-Wobjc-interface-ivars
8970----------------------
8971**Diagnostic text:**
8972
8973+-------------------------------------------------------------------------------------------------------+
8974|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
8975+-------------------------------------------------------------------------------------------------------+
8976
8977
8978-Wobjc-literal-compare
8979----------------------
8980This diagnostic is enabled by default.
8981
8982Also controls `-Wobjc-string-compare`_.
8983
8984**Diagnostic text:**
8985
8986+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
8987|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
8988|                                                                   ||:diagtext:`an array literal`    ||                                          |
8989|                                                                   |+--------------------------------+|                                          |
8990|                                                                   ||:diagtext:`a dictionary literal`||                                          |
8991|                                                                   |+--------------------------------+|                                          |
8992|                                                                   ||:diagtext:`a numeric literal`   ||                                          |
8993|                                                                   |+--------------------------------+|                                          |
8994|                                                                   ||:diagtext:`a boxed expression`  ||                                          |
8995|                                                                   |+--------------------------------+|                                          |
8996|                                                                   ||                                ||                                          |
8997|                                                                   |+--------------------------------+|                                          |
8998+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
8999
9000
9001-Wobjc-literal-conversion
9002-------------------------
9003This diagnostic is enabled by default.
9004
9005**Diagnostic text:**
9006
9007+-------------------------------------------------------------------------------------------------------------------------+
9008|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
9009+-------------------------------------------------------------------------------------------------------------------------+
9010
9011+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
9012|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
9013|                                                                                                                               ||:diagtext:`array element type`   ||                        |
9014|                                                                                                                               |+---------------------------------+|                        |
9015|                                                                                                                               ||:diagtext:`dictionary key type`  ||                        |
9016|                                                                                                                               |+---------------------------------+|                        |
9017|                                                                                                                               ||:diagtext:`dictionary value type`||                        |
9018|                                                                                                                               |+---------------------------------+|                        |
9019+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
9020
9021
9022-Wobjc-macro-redefinition
9023-------------------------
9024This diagnostic is enabled by default.
9025
9026**Diagnostic text:**
9027
9028+-------------------------------------------------------------------------------------------+
9029|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
9030+-------------------------------------------------------------------------------------------+
9031
9032
9033-Wobjc-messaging-id
9034-------------------
9035**Diagnostic text:**
9036
9037+---------------------------------------------------------------+
9038|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
9039+---------------------------------------------------------------+
9040
9041
9042-Wobjc-method-access
9043--------------------
9044This diagnostic is enabled by default.
9045
9046**Diagnostic text:**
9047
9048+---------------------------------------------------------------------------------------------------------------------------------------+
9049|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
9050+---------------------------------------------------------------------------------------------------------------------------------------+
9051
9052+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9053|: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:`?`|
9054+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9055
9056+------------------------------------------------------------------------------------------------------------------------------------------+
9057|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
9058+------------------------------------------------------------------------------------------------------------------------------------------+
9059
9060+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9061|: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:`?`|
9062+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9063
9064+-------------------------------------------------------------------------------------------------------------------------------------------------------+
9065|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
9066+-------------------------------------------------------------------------------------------------------------------------------------------------------+
9067
9068+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9069|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
9070+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9071
9072
9073-Wobjc-missing-property-synthesis
9074---------------------------------
9075**Diagnostic text:**
9076
9077+------------------------------------------------------------------------------------------------------------------+
9078|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
9079+------------------------------------------------------------------------------------------------------------------+
9080
9081
9082-Wobjc-missing-super-calls
9083--------------------------
9084This diagnostic is enabled by default.
9085
9086**Diagnostic text:**
9087
9088+-------------------------------------------------------------------------------------------------------------------+
9089|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
9090+-------------------------------------------------------------------------------------------------------------------+
9091
9092
9093-Wobjc-multiple-method-names
9094----------------------------
9095This diagnostic is enabled by default.
9096
9097**Diagnostic text:**
9098
9099+--------------------------------------------------------------------------------------------------------------+
9100|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
9101+--------------------------------------------------------------------------------------------------------------+
9102
9103
9104-Wobjc-noncopy-retain-block-property
9105------------------------------------
9106This diagnostic is enabled by default.
9107
9108**Diagnostic text:**
9109
9110+--------------------------------------------------------------------------------------------------------------------+
9111|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
9112+--------------------------------------------------------------------------------------------------------------------+
9113
9114
9115-Wobjc-nonunified-exceptions
9116----------------------------
9117This diagnostic is enabled by default.
9118
9119**Diagnostic text:**
9120
9121+-----------------------------------------------------------------------------------------------------------------------------+
9122|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
9123+-----------------------------------------------------------------------------------------------------------------------------+
9124
9125
9126-Wobjc-property-assign-on-object-type
9127-------------------------------------
9128**Diagnostic text:**
9129
9130+--------------------------------------------------------------------------------------------------------------------------------------------+
9131|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`|
9132+--------------------------------------------------------------------------------------------------------------------------------------------+
9133
9134
9135-Wobjc-property-implementation
9136------------------------------
9137This diagnostic is enabled by default.
9138
9139**Diagnostic text:**
9140
9141+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9142|: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`|
9143+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9144
9145+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9146|: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`|
9147+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9148
9149+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9150|: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`|
9151+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9152
9153+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9154|: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`|
9155+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9156
9157
9158-Wobjc-property-implicit-mismatch
9159---------------------------------
9160This diagnostic is enabled by default.
9161
9162**Diagnostic text:**
9163
9164+---------------------------------------------------------------------------------------------------------------------------------------+
9165|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
9166+---------------------------------------------------------------------------------------------------------------------------------------+
9167
9168
9169-Wobjc-property-matches-cocoa-ownership-rule
9170--------------------------------------------
9171This diagnostic is enabled by default.
9172
9173**Diagnostic text:**
9174
9175+-------------------------------------------------------------------------------------------------------------+
9176|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
9177+-------------------------------------------------------------------------------------------------------------+
9178
9179
9180-Wobjc-property-no-attribute
9181----------------------------
9182This diagnostic is enabled by default.
9183
9184**Diagnostic text:**
9185
9186+-----------------------------------------------------------------------------------------------------+
9187|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
9188+-----------------------------------------------------------------------------------------------------+
9189
9190+--------------------------------------------------------------------------------------------------------------------+
9191|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
9192+--------------------------------------------------------------------------------------------------------------------+
9193
9194
9195-Wobjc-property-synthesis
9196-------------------------
9197This diagnostic is enabled by default.
9198
9199**Diagnostic text:**
9200
9201+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9202|: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`|
9203+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9204
9205+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9206|: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`|
9207+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9208
9209+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9210|: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`|
9211+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9212
9213
9214-Wobjc-protocol-method-implementation
9215-------------------------------------
9216This diagnostic is enabled by default.
9217
9218**Diagnostic text:**
9219
9220+----------------------------------------------------------------------------------------------------------------------------+
9221|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
9222+----------------------------------------------------------------------------------------------------------------------------+
9223
9224
9225-Wobjc-protocol-property-synthesis
9226----------------------------------
9227This diagnostic is enabled by default.
9228
9229**Diagnostic text:**
9230
9231+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9232|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
9233+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9234
9235
9236-Wobjc-protocol-qualifiers
9237--------------------------
9238This diagnostic is enabled by default.
9239
9240**Diagnostic text:**
9241
9242+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9243|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
9244+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9245
9246
9247-Wobjc-readonly-with-setter-property
9248------------------------------------
9249This diagnostic is enabled by default.
9250
9251**Diagnostic text:**
9252
9253+-----------------------------------------------------------------------------------------+
9254|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
9255+-----------------------------------------------------------------------------------------+
9256
9257
9258-Wobjc-redundant-api-use
9259------------------------
9260Synonym for `-Wobjc-redundant-literal-use`_.
9261
9262
9263-Wobjc-redundant-literal-use
9264----------------------------
9265This diagnostic is enabled by default.
9266
9267**Diagnostic text:**
9268
9269+-------------------------------------------------------------------------------------------------------------------+
9270|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
9271+-------------------------------------------------------------------------------------------------------------------+
9272
9273
9274-Wobjc-root-class
9275-----------------
9276This diagnostic is enabled by default.
9277
9278**Diagnostic text:**
9279
9280+-------------------------------------------------------------------------------------------------------------------------------+
9281|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
9282+-------------------------------------------------------------------------------------------------------------------------------+
9283
9284
9285-Wobjc-signed-char-bool
9286-----------------------
9287Some of the diagnostics controlled by this flag are enabled by default.
9288
9289Controls `-Wobjc-bool-constant-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_, `-Wobjc-signed-char-bool-implicit-int-conversion`_, `-Wtautological-objc-bool-compare`_.
9290
9291
9292-Wobjc-signed-char-bool-implicit-float-conversion
9293-------------------------------------------------
9294This diagnostic is enabled by default.
9295
9296**Diagnostic text:**
9297
9298+----------------------------------------------------------------------------------------------------------------------------------------+
9299|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from floating-point type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`|
9300+----------------------------------------------------------------------------------------------------------------------------------------+
9301
9302
9303-Wobjc-signed-char-bool-implicit-int-conversion
9304-----------------------------------------------
9305**Diagnostic text:**
9306
9307+----------------------------------------------------------------------------------------------------------------------------------+
9308|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from integral type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`|
9309+----------------------------------------------------------------------------------------------------------------------------------+
9310
9311
9312-Wobjc-string-compare
9313---------------------
9314This diagnostic is enabled by default.
9315
9316**Diagnostic text:**
9317
9318+---------------------------------------------------------------------------------------------------+
9319|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
9320+---------------------------------------------------------------------------------------------------+
9321
9322
9323-Wobjc-string-concatenation
9324---------------------------
9325This diagnostic is enabled by default.
9326
9327**Diagnostic text:**
9328
9329+-------------------------------------------------------------------------------------------------------------------------+
9330|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
9331+-------------------------------------------------------------------------------------------------------------------------+
9332
9333
9334-Wobjc-unsafe-perform-selector
9335------------------------------
9336This diagnostic is enabled by default.
9337
9338**Diagnostic text:**
9339
9340+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
9341|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
9342|                                                                                                                   ||:diagtext:`struct`||                        |
9343|                                                                                                                   |+------------------+|                        |
9344|                                                                                                                   ||:diagtext:`union` ||                        |
9345|                                                                                                                   |+------------------+|                        |
9346|                                                                                                                   ||:diagtext:`vector`||                        |
9347|                                                                                                                   |+------------------+|                        |
9348+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
9349
9350
9351-Wodr
9352-----
9353This diagnostic is enabled by default.
9354
9355**Diagnostic text:**
9356
9357+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9358|:warning:`warning:` |nbsp| :diagtext:`template parameter lists have a different number of parameters (`:placeholder:`A` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`B`:diagtext:`)`|
9359+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9360
9361+------------------------------------------------------------------------------------------------------------+
9362|:warning:`warning:` |nbsp| :diagtext:`template parameter has different kinds in different translation units`|
9363+------------------------------------------------------------------------------------------------------------+
9364
9365+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9366|: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:`)`|
9367+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9368
9369+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9370|: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:`)`|
9371+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9372
9373+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9374|: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:`)`|
9375+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9376
9377+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9378|: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:`)`|
9379+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9380
9381+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9382|: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:`)`|
9383|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                       |
9384|                           |+--------------------+|                                                                                                                                                                                                                       |
9385|                           ||:diagtext:`instance`||                                                                                                                                                                                                                       |
9386|                           |+--------------------+|                                                                                                                                                                                                                       |
9387+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9388
9389+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9390|: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:`)`|
9391|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                         |
9392|                           |+--------------------+|                                                                                                                                                                                                                         |
9393|                           ||:diagtext:`instance`||                                                                                                                                                                                                                         |
9394|                           |+--------------------+|                                                                                                                                                                                                                         |
9395+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9396
9397+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9398|: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:`)`|
9399|                           ||:diagtext:`class`   ||                                                                                                                                                                                                                |
9400|                           |+--------------------+|                                                                                                                                                                                                                |
9401|                           ||:diagtext:`instance`||                                                                                                                                                                                                                |
9402|                           |+--------------------+|                                                                                                                                                                                                                |
9403+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9404
9405+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
9406|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is variadic in one translation unit and not variadic in another`|
9407|                           ||:diagtext:`class`   ||                                                                                                                                     |
9408|                           |+--------------------+|                                                                                                                                     |
9409|                           ||:diagtext:`instance`||                                                                                                                                     |
9410|                           |+--------------------+|                                                                                                                                     |
9411+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+
9412
9413+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
9414|: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`|
9415|                                                                                                                      ||:diagtext:`@synthesize`||                                                  ||:diagtext:`@dynamic`   ||                                               |
9416|                                                                                                                      |+-----------------------+|                                                  |+-----------------------+|                                               |
9417|                                                                                                                      ||:diagtext:`@dynamic`   ||                                                  ||:diagtext:`@synthesize`||                                               |
9418|                                                                                                                      |+-----------------------+|                                                  |+-----------------------+|                                               |
9419+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+
9420
9421+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9422|: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:`)`|
9423+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9424
9425+---------------------------------------------------------------------------------------------------------------------+
9426|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible superclasses`|
9427+---------------------------------------------------------------------------------------------------------------------+
9428
9429+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9430|: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:`)`|
9431+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9432
9433+------------------------------------------------------------------------------------+-------------------+----------------------------------+
9434|:warning:`warning:` |nbsp| :diagtext:`parameter kind mismatch; parameter is` |nbsp| |+-----------------+| |nbsp| :diagtext:`parameter pack`|
9435|                                                                                    ||:diagtext:`not a`||                                  |
9436|                                                                                    |+-----------------+|                                  |
9437|                                                                                    ||:diagtext:`a`    ||                                  |
9438|                                                                                    |+-----------------+|                                  |
9439+------------------------------------------------------------------------------------+-------------------+----------------------------------+
9440
9441+--------------------------------------------------------------------------------------------------------------------------------------------------+
9442|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
9443+--------------------------------------------------------------------------------------------------------------------------------------------------+
9444
9445+-----------------------------------------------------------------------------------------------------------------------------------------+
9446|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple translation units`|
9447+-----------------------------------------------------------------------------------------------------------------------------------------+
9448
9449+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9450|: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:`)`|
9451+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9452
9453
9454-Wold-style-cast
9455----------------
9456**Diagnostic text:**
9457
9458+------------------------------------------------------------+
9459|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
9460+------------------------------------------------------------+
9461
9462
9463-Wold-style-definition
9464----------------------
9465This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9466
9467-Wopencl-unsupported-rgba
9468-------------------------
9469This diagnostic is enabled by default.
9470
9471**Diagnostic text:**
9472
9473+----------------------------------------------------------------------------------------------------------------------------+
9474|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
9475+----------------------------------------------------------------------------------------------------------------------------+
9476
9477
9478-Wopenmp
9479--------
9480Some of the diagnostics controlled by this flag are enabled by default.
9481
9482Controls `-Wopenmp-clauses`_, `-Wopenmp-loop-form`_, `-Wopenmp-mapping`_, `-Wopenmp-target`_, `-Wsource-uses-openmp`_.
9483
9484
9485-Wopenmp-clauses
9486----------------
9487This diagnostic is enabled by default.
9488
9489**Diagnostic text:**
9490
9491+-------------------------------------------------------------------------------------------------------------------------+
9492|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
9493+-------------------------------------------------------------------------------------------------------------------------+
9494
9495+----------------------------------------------------------------------------------------------------------------------------------------------------+
9496|:warning:`warning:` |nbsp| :diagtext:`allocator with the 'thread' trait access has unspecified behavior on '`:placeholder:`A`:diagtext:`' directive`|
9497+----------------------------------------------------------------------------------------------------------------------------------------------------+
9498
9499+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9500|:warning:`warning:` |nbsp| :diagtext:`the context property '`:placeholder:`A`:diagtext:`' is not valid for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`|
9501+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9502
9503+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9504|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in the context set '`:placeholder:`B`:diagtext:`' cannot have a score ('`:placeholder:`C`:diagtext:`'); score ignored`|
9505+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9506
9507+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9508|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' is not valid for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`|
9509+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9510
9511+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9512|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in context set '`:placeholder:`B`:diagtext:`' requires a context property defined in parentheses; selector ignored`|
9513+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9514
9515+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
9516|:warning:`warning:` |nbsp| :diagtext:`the context` |nbsp| |+--------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' was used already in the same 'omp declare variant' directive;` |nbsp| |+--------------------+| |nbsp| :diagtext:`ignored`|
9517|                                                          ||:diagtext:`set`     ||                                                                                                                        ||:diagtext:`set`     ||                           |
9518|                                                          |+--------------------+|                                                                                                                        |+--------------------+|                           |
9519|                                                          ||:diagtext:`selector`||                                                                                                                        ||:diagtext:`selector`||                           |
9520|                                                          |+--------------------+|                                                                                                                        |+--------------------+|                           |
9521|                                                          ||:diagtext:`property`||                                                                                                                        ||:diagtext:`property`||                           |
9522|                                                          |+--------------------+|                                                                                                                        |+--------------------+|                           |
9523+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
9524
9525+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9526|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context property for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`|
9527+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9528
9529+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9530|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context selector for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`|
9531+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9532
9533+--------------------------------------------------------------------------------------------------------------------------------------+
9534|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context set in a \`declare variant\`; set ignored`|
9535+--------------------------------------------------------------------------------------------------------------------------------------+
9536
9537+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9538|:warning:`warning:` |nbsp| :diagtext:`expected '`:placeholder:`A`:diagtext:`' after the` |nbsp| :placeholder:`B`:diagtext:`; '`:placeholder:`A`:diagtext:`' assumed`|
9539+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9540
9541+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+
9542|:warning:`warning:` |nbsp| :diagtext:`expected identifier or string literal describing a context` |nbsp| |+--------------------+|:diagtext:`;` |nbsp| |+--------------------+| |nbsp| :diagtext:`skipped`|
9543|                                                                                                         ||:diagtext:`set`     ||                     ||:diagtext:`set`     ||                           |
9544|                                                                                                         |+--------------------+|                     |+--------------------+|                           |
9545|                                                                                                         ||:diagtext:`selector`||                     ||:diagtext:`selector`||                           |
9546|                                                                                                         |+--------------------+|                     |+--------------------+|                           |
9547|                                                                                                         ||:diagtext:`property`||                     ||:diagtext:`property`||                           |
9548|                                                                                                         |+--------------------+|                     |+--------------------+|                           |
9549+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+
9550
9551+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
9552|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
9553|                                                                                 ||                                                 ||                                     |
9554|                                                                                 |+-------------------------------------------------+|                                     |
9555|                                                                                 ||:diagtext:`and other variables in clause` |nbsp| ||                                     |
9556|                                                                                 |+-------------------------------------------------+|                                     |
9557+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
9558
9559+---------------------------------------------------------------------------------------+
9560|:warning:`warning:` |nbsp| :diagtext:`more than one 'device\_type' clause is specified`|
9561+---------------------------------------------------------------------------------------+
9562
9563+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
9564|:warning:`warning:` |nbsp| :diagtext:`allocate directive specifies` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`allocator while previously used` |nbsp| |+--------------------------------------------+|
9565|                                                                           ||:diagtext:`default`                         ||                                                           ||:diagtext:`default`                         ||
9566|                                                                           |+--------------------------------------------+|                                                           |+--------------------------------------------+|
9567|                                                                           ||+------------------------------------------+||                                                           ||+------------------------------------------+||
9568|                                                                           |||:diagtext:`'`:placeholder:`B`:diagtext:`'`|||                                                           |||:diagtext:`'`:placeholder:`D`:diagtext:`'`|||
9569|                                                                           ||+------------------------------------------+||                                                           ||+------------------------------------------+||
9570|                                                                           |+--------------------------------------------+|                                                           |+--------------------------------------------+|
9571+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+
9572
9573
9574-Wopenmp-loop-form
9575------------------
9576This diagnostic is enabled by default.
9577
9578**Diagnostic text:**
9579
9580+-----------------------------------------------------------------------------------------------------------------------------------------+
9581|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
9582+-----------------------------------------------------------------------------------------------------------------------------------------+
9583
9584+-----------------------------------------------------------------------------------------------------------------------------+
9585|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
9586+-----------------------------------------------------------------------------------------------------------------------------+
9587
9588
9589-Wopenmp-mapping
9590----------------
9591This diagnostic is enabled by default.
9592
9593**Diagnostic text:**
9594
9595+----------------------------------------------------------------------------------------------------------------------------------------------------------+
9596|:warning:`warning:` |nbsp| :diagtext:`Type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not trivially copyable and not guaranteed to be mapped correctly`|
9597+----------------------------------------------------------------------------------------------------------------------------------------------------------+
9598
9599
9600-Wopenmp-target
9601---------------
9602This diagnostic is enabled by default.
9603
9604Also controls `-Wopenmp-mapping`_.
9605
9606**Diagnostic text:**
9607
9608+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9609|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
9610+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9611
9612+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9613|: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.`|
9614+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9615
9616+-----------------------------------------------------------------------------------------------------------------------------+
9617|:warning:`warning:` |nbsp| :diagtext:`declaration marked as declare target after first use, it may lead to incorrect results`|
9618+-----------------------------------------------------------------------------------------------------------------------------+
9619
9620+-----------------------------------------------------------------------------------------------+
9621|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
9622+-----------------------------------------------------------------------------------------------+
9623
9624
9625-Woption-ignored
9626----------------
9627This diagnostic is enabled by default.
9628
9629**Diagnostic text:**
9630
9631+------------------------------------------------------------------------------------------------------------------------------------------+
9632|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
9633+------------------------------------------------------------------------------------------------------------------------------------------+
9634
9635+-------------------------------------------------------------------------------------------------------------------------------+
9636|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`|
9637+-------------------------------------------------------------------------------------------------------------------------------+
9638
9639+----------------------------------------------------------------------------------------------------------------------------+
9640|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
9641+----------------------------------------------------------------------------------------------------------------------------+
9642
9643+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
9644|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
9645|                                                                                                                   ||                                         ||                      |
9646|                                                                                                                   |+-----------------------------------------+|                      |
9647|                                                                                                                   ||:diagtext:`the implicit usage of` |nbsp| ||                      |
9648|                                                                                                                   |+-----------------------------------------+|                      |
9649+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
9650
9651+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
9652|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`|
9653|                                                                                                                       ||:diagtext:`implicit usage of`||                                              |
9654|                                                                                                                       |+-----------------------------+|                                              |
9655|                                                                                                                       ||                             ||                                              |
9656|                                                                                                                       |+-----------------------------+|                                              |
9657+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+
9658
9659+-----------------------------------------------------------------------------------------------------------+
9660|:warning:`warning:` |nbsp| :diagtext:`ignoring '-msmall-data-limit=' with -mcmodel=large for -fpic or RV64`|
9661+-----------------------------------------------------------------------------------------------------------+
9662
9663+----------------------------------------------------------------------------------------------+
9664|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`|
9665+----------------------------------------------------------------------------------------------+
9666
9667
9668-Wordered-compare-function-pointers
9669-----------------------------------
9670This diagnostic is enabled by default.
9671
9672**Diagnostic text:**
9673
9674+------------------------------------------------------------------------------------------------------------------------------------------------------------+
9675|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
9676+------------------------------------------------------------------------------------------------------------------------------------------------------------+
9677
9678
9679-Wout-of-line-declaration
9680-------------------------
9681This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
9682
9683**Diagnostic text:**
9684
9685+-------------------------------------------------------------------------------------------+
9686|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
9687+-------------------------------------------------------------------------------------------+
9688
9689
9690-Wout-of-scope-function
9691-----------------------
9692This diagnostic is enabled by default.
9693
9694**Diagnostic text:**
9695
9696+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
9697|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
9698|                                                                                                 ||                                                                                     ||
9699|                                                                                                 |+-------------------------------------------------------------------------------------+|
9700|                                                                                                 || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
9701|                                                                                                 |+-------------------------------------------------------------------------------------+|
9702+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
9703
9704
9705-Wover-aligned
9706--------------
9707**Diagnostic text:**
9708
9709+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9710|: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`|
9711+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9712
9713
9714-Woverflow
9715----------
9716This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9717
9718-Woverlength-strings
9719--------------------
9720**Diagnostic text:**
9721
9722+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
9723|: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`|
9724|                                                                                                                                                                                         ||:diagtext:`C90`    ||                                                     |
9725|                                                                                                                                                                                         |+-------------------+|                                                     |
9726|                                                                                                                                                                                         ||:diagtext:`ISO C99`||                                                     |
9727|                                                                                                                                                                                         |+-------------------+|                                                     |
9728|                                                                                                                                                                                         ||:diagtext:`C++`    ||                                                     |
9729|                                                                                                                                                                                         |+-------------------+|                                                     |
9730+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
9731
9732
9733-Woverloaded-shift-op-parentheses
9734---------------------------------
9735This diagnostic is enabled by default.
9736
9737**Diagnostic text:**
9738
9739+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
9740|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
9741|                                                                  ||:diagtext:`>>`||                                                                  |
9742|                                                                  |+--------------+|                                                                  |
9743|                                                                  ||:diagtext:`<<`||                                                                  |
9744|                                                                  |+--------------+|                                                                  |
9745+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
9746
9747
9748-Woverloaded-virtual
9749--------------------
9750**Diagnostic text:**
9751
9752+-----------------------------------------------------------------------------------------------+-----------------------+
9753|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
9754|                                                                                               ||:diagtext:`function` ||
9755|                                                                                               |+---------------------+|
9756|                                                                                               ||:diagtext:`functions`||
9757|                                                                                               |+---------------------+|
9758+-----------------------------------------------------------------------------------------------+-----------------------+
9759
9760
9761-Woverride-init
9762---------------
9763Synonym for `-Winitializer-overrides`_.
9764
9765
9766-Woverride-module
9767-----------------
9768This diagnostic is enabled by default.
9769
9770**Diagnostic text:**
9771
9772+-------------------------------------------------------------------------------------------------------+
9773|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
9774+-------------------------------------------------------------------------------------------------------+
9775
9776
9777-Woverriding-method-mismatch
9778----------------------------
9779**Diagnostic text:**
9780
9781+-------------------------------------------------------------------------------------------------------------------------------------------+
9782|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
9783+-------------------------------------------------------------------------------------------------------------------------------------------+
9784
9785+------------------------------------------------------------------------------------------------------------+
9786|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
9787+------------------------------------------------------------------------------------------------------------+
9788
9789+----------------------------------------------------------------------------------------------------------------------------------------+
9790|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
9791+----------------------------------------------------------------------------------------------------------------------------------------+
9792
9793+--------------------------------------------------------------------------------------------------------+
9794|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
9795+--------------------------------------------------------------------------------------------------------+
9796
9797+--------------------------------------------------------------------------------------------------------+
9798|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
9799+--------------------------------------------------------------------------------------------------------+
9800
9801+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9802|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
9803+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9804
9805+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9806|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
9807+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9808
9809
9810-Woverriding-t-option
9811---------------------
9812This diagnostic is enabled by default.
9813
9814**Diagnostic text:**
9815
9816+---------------------------------------------------------------------------------------------------------------------------+
9817|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
9818+---------------------------------------------------------------------------------------------------------------------------+
9819
9820
9821-Wpacked
9822--------
9823**Diagnostic text:**
9824
9825+--------------------------------------------------------------------------------------------------+
9826|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
9827+--------------------------------------------------------------------------------------------------+
9828
9829
9830-Wpadded
9831--------
9832**Diagnostic text:**
9833
9834+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
9835|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
9836|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                |
9837|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
9838|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                |
9839|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                |
9840|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                |
9841|                                                      |+---------------------+|                                                                                |                  |               |                                                |
9842+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
9843
9844+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
9845|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
9846|                                                      ||:diagtext:`struct`   ||                                                                                ||:diagtext:`byte`|||             ||                                                    |
9847|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
9848|                                                      ||:diagtext:`interface`||                                                                                ||:diagtext:`bit` |||:diagtext:`s`||                                                    |
9849|                                                      |+---------------------+|                                                                                |+----------------+|+-------------+|                                                    |
9850|                                                      ||:diagtext:`class`    ||                                                                                |                  |               |                                                    |
9851|                                                      |+---------------------+|                                                                                |                  |               |                                                    |
9852+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
9853
9854+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
9855|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
9856|                                                                                                                                      ||:diagtext:`byte`|||             ||                                         |
9857|                                                                                                                                      |+----------------+|+-------------+|                                         |
9858|                                                                                                                                      ||:diagtext:`bit` |||:diagtext:`s`||                                         |
9859|                                                                                                                                      |+----------------+|+-------------+|                                         |
9860+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
9861
9862
9863-Wparentheses
9864-------------
9865Some of the diagnostics controlled by this flag are enabled by default.
9866
9867Also controls `-Wbitwise-conditional-parentheses`_, `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
9868
9869**Diagnostic text:**
9870
9871+-----------------------------------------------------------------------------------------------------------+
9872|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
9873+-----------------------------------------------------------------------------------------------------------+
9874
9875+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9876|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
9877+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9878
9879+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9880|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
9881+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9882
9883
9884-Wparentheses-equality
9885----------------------
9886This diagnostic is enabled by default.
9887
9888**Diagnostic text:**
9889
9890+--------------------------------------------------------------------------------------+
9891|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
9892+--------------------------------------------------------------------------------------+
9893
9894
9895-Wpartial-availability
9896----------------------
9897Synonym for `-Wunguarded-availability`_.
9898
9899
9900-Rpass
9901------
9902**Diagnostic text:**
9903
9904The text of this diagnostic is not controlled by Clang.
9905
9906
9907-Rpass-analysis
9908---------------
9909**Diagnostic text:**
9910
9911The text of this diagnostic is not controlled by Clang.
9912
9913+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9914|: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!`|
9915+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9916
9917+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9918|: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'.`|
9919+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9920
9921
9922-Wpass-failed
9923-------------
9924This diagnostic is enabled by default.
9925
9926**Diagnostic text:**
9927
9928The text of this diagnostic is not controlled by Clang.
9929
9930
9931-Rpass-missed
9932-------------
9933**Diagnostic text:**
9934
9935The text of this diagnostic is not controlled by Clang.
9936
9937
9938-Wpch-date-time
9939---------------
9940This diagnostic is enabled by default.
9941
9942**Diagnostic text:**
9943
9944+---------------------------+--------------------------------+-----------------------------------------------------+
9945|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
9946|                           ||:diagtext:`precompiled header`||                                                     |
9947|                           |+------------------------------+|                                                     |
9948|                           ||:diagtext:`module`            ||                                                     |
9949|                           |+------------------------------+|                                                     |
9950+---------------------------+--------------------------------+-----------------------------------------------------+
9951
9952
9953-Wpedantic
9954----------
9955Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc++20-designator`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
9956
9957**Diagnostic text:**
9958
9959+-----------------------------------------------------------------------------------------------------+
9960|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
9961+-----------------------------------------------------------------------------------------------------+
9962
9963+------------------------------------------------------------------------+
9964|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
9965+------------------------------------------------------------------------+
9966
9967+--------------------------------------------------------------------------+
9968|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
9969+--------------------------------------------------------------------------+
9970
9971+--------------------------------------------------------------------------------+
9972|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
9973+--------------------------------------------------------------------------------+
9974
9975+--------------------------------------------------------------------------------------------+
9976|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
9977+--------------------------------------------------------------------------------------------+
9978
9979+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
9980|: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| |+---------------------+|
9981|                                                                                                                                                                                              ||:diagtext:`private`  ||
9982|                                                                                                                                                                                              |+---------------------+|
9983|                                                                                                                                                                                              ||:diagtext:`protected`||
9984|                                                                                                                                                                                              |+---------------------+|
9985+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
9986
9987+--------------------------------------------------------+--------------------+------------------------------------------------------------+
9988|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
9989|                                                        ||:diagtext:`struct`||                                                            |
9990|                                                        |+------------------+|                                                            |
9991|                                                        ||:diagtext:`union` ||                                                            |
9992|                                                        |+------------------+|                                                            |
9993+--------------------------------------------------------+--------------------+------------------------------------------------------------+
9994
9995+-----------------------------------------------------------------------------------------------------------------------------------+
9996|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`|
9997+-----------------------------------------------------------------------------------------------------------------------------------+
9998
9999+----------------------------------------------------------------------------------------------------+
10000|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`|
10001+----------------------------------------------------------------------------------------------------+
10002
10003+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
10004|: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`|
10005|                                                                    ||:diagtext:`copying variable`                        ||                                                                                                                                          |
10006|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10007|                                                                    ||:diagtext:`copying parameter`                       ||                                                                                                                                          |
10008|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10009|                                                                    ||:diagtext:`returning object`                        ||                                                                                                                                          |
10010|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10011|                                                                    ||:diagtext:`initializing statement expression result`||                                                                                                                                          |
10012|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10013|                                                                    ||:diagtext:`throwing object`                         ||                                                                                                                                          |
10014|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10015|                                                                    ||:diagtext:`copying member subobject`                ||                                                                                                                                          |
10016|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10017|                                                                    ||:diagtext:`copying array element`                   ||                                                                                                                                          |
10018|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10019|                                                                    ||:diagtext:`allocating object`                       ||                                                                                                                                          |
10020|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10021|                                                                    ||:diagtext:`copying temporary`                       ||                                                                                                                                          |
10022|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10023|                                                                    ||:diagtext:`initializing base subobject`             ||                                                                                                                                          |
10024|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10025|                                                                    ||:diagtext:`initializing vector element`             ||                                                                                                                                          |
10026|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10027|                                                                    ||:diagtext:`capturing value`                         ||                                                                                                                                          |
10028|                                                                    |+----------------------------------------------------+|                                                                                                                                          |
10029+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
10030
10031+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10032|: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`|
10033+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10034
10035+--------------------------------------------------------------------------------------------------------------------------------------+
10036|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
10037+--------------------------------------------------------------------------------------------------------------------------------------+
10038
10039+--------------------------------------------------------------------------------------------------------------------------+
10040|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`|
10041+--------------------------------------------------------------------------------------------------------------------------+
10042
10043+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10044|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
10045+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10046
10047+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10048|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
10049|                                                     ||:diagtext:`function`||                                                                                               |
10050|                                                     |+--------------------+|                                                                                               |
10051|                                                     ||:diagtext:`variable`||                                                                                               |
10052|                                                     |+--------------------+|                                                                                               |
10053+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
10054
10055+---------------------------------------------------------------------------------------+
10056|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
10057+---------------------------------------------------------------------------------------+
10058
10059+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
10060|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
10061|                                                                                                                                              ||:diagtext:`small`||             |
10062|                                                                                                                                              |+-----------------+|             |
10063|                                                                                                                                              ||:diagtext:`large`||             |
10064|                                                                                                                                              |+-----------------+|             |
10065+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
10066
10067+--------------------------------------------------------------------------------------------------+
10068|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
10069+--------------------------------------------------------------------------------------------------+
10070
10071+-----------------------------------------------------------------------------------------------+
10072|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
10073+-----------------------------------------------------------------------------------------------+
10074
10075+-------------------------------------------------------------------------------+
10076|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
10077+-------------------------------------------------------------------------------+
10078
10079+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
10080|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
10081|                                                               ||:diagtext:`sizeof`                                 ||                                |
10082|                                                               |+---------------------------------------------------+|                                |
10083|                                                               ||:diagtext:`alignof`                                ||                                |
10084|                                                               |+---------------------------------------------------+|                                |
10085|                                                               ||:diagtext:`vec\_step`                              ||                                |
10086|                                                               |+---------------------------------------------------+|                                |
10087|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
10088|                                                               |+---------------------------------------------------+|                                |
10089|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
10090|                                                               |+---------------------------------------------------+|                                |
10091+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
10092
10093+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
10094|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
10095|                                                               ||:diagtext:`sizeof`                                 ||                            |
10096|                                                               |+---------------------------------------------------+|                            |
10097|                                                               ||:diagtext:`alignof`                                ||                            |
10098|                                                               |+---------------------------------------------------+|                            |
10099|                                                               ||:diagtext:`vec\_step`                              ||                            |
10100|                                                               |+---------------------------------------------------+|                            |
10101|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
10102|                                                               |+---------------------------------------------------+|                            |
10103|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
10104|                                                               |+---------------------------------------------------+|                            |
10105+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
10106
10107+-------------------------------------------------------------------------------------------+
10108|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
10109+-------------------------------------------------------------------------------------------+
10110
10111+----------------------------------------------------------------------------------------+
10112|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
10113+----------------------------------------------------------------------------------------+
10114
10115+-------------------------------------------------------------------------------------------------------+
10116|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
10117+-------------------------------------------------------------------------------------------------------+
10118
10119+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10120|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
10121+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10122
10123+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10124|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
10125+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10126
10127+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
10128|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
10129|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
10130|                                                    |+---------------------+|                           |+-------------+|                                              |
10131|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
10132|                                                    |+---------------------+|                           |+-------------+|                                              |
10133+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
10134
10135+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
10136|: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`|
10137|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
10138|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
10139|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
10140|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
10141|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
10142|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
10143+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
10144
10145+-----------------------------------------------------------------------------------------------------------------------+
10146|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
10147+-----------------------------------------------------------------------------------------------------------------------+
10148
10149+--------------------------------------------------------------------------------------------------------------------+
10150|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
10151+--------------------------------------------------------------------------------------------------------------------+
10152
10153+------------------------------------------------------------------------------------------------------------+
10154|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
10155+------------------------------------------------------------------------------------------------------------+
10156
10157+-------------------------------------------------------------------------------------------------------------+
10158|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
10159+-------------------------------------------------------------------------------------------------------------+
10160
10161+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
10162|: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`|
10163|                                                                                                                                                   ||:diagtext:`integral`   ||                                                                                        |
10164|                                                                                                                                                   |+-----------------------+|                                                                                        |
10165|                                                                                                                                                   ||:diagtext:`enumeration`||                                                                                        |
10166|                                                                                                                                                   |+-----------------------+|                                                                                        |
10167+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
10168
10169+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
10170|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
10171|                           ||:diagtext:`assigning to different types`                      ||                                                                      |
10172|                           |+--------------------------------------------------------------+|                                                                      |
10173|                           ||:diagtext:`passing to parameter of different type`            ||                                                                      |
10174|                           |+--------------------------------------------------------------+|                                                                      |
10175|                           ||:diagtext:`returning from function with different return type`||                                                                      |
10176|                           |+--------------------------------------------------------------+|                                                                      |
10177|                           ||:diagtext:`converting between types`                          ||                                                                      |
10178|                           |+--------------------------------------------------------------+|                                                                      |
10179|                           ||:diagtext:`initializing with expression of different type`    ||                                                                      |
10180|                           |+--------------------------------------------------------------+|                                                                      |
10181|                           ||:diagtext:`sending to parameter of different type`            ||                                                                      |
10182|                           |+--------------------------------------------------------------+|                                                                      |
10183|                           ||:diagtext:`casting between types`                             ||                                                                      |
10184|                           |+--------------------------------------------------------------+|                                                                      |
10185+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
10186
10187+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10188|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
10189+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10190
10191+--------------------------------------------------------------------------------------------------+
10192|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
10193+--------------------------------------------------------------------------------------------------+
10194
10195+-------------------------------------------------------------------------------------------------------------------------------------+
10196|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
10197+-------------------------------------------------------------------------------------------------------------------------------------+
10198
10199+---------------------------------------------------------------------------------------------------------------------------+
10200|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
10201+---------------------------------------------------------------------------------------------------------------------------+
10202
10203+---------------------------------------------------------------------------------------------------------------------------+
10204|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
10205+---------------------------------------------------------------------------------------------------------------------------+
10206
10207+---------------------------------------------------------------------------------------------------------------------------+
10208|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`|
10209+---------------------------------------------------------------------------------------------------------------------------+
10210
10211+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
10212|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
10213|                                                                             ||:diagtext:`struct`||                                             |
10214|                                                                             |+------------------+|                                             |
10215|                                                                             ||:diagtext:`union` ||                                             |
10216|                                                                             |+------------------+|                                             |
10217+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
10218
10219+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
10220|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
10221|                                                                                                                                    ||:diagtext:`type`           ||                        |
10222|                                                                                                                                    |+---------------------------+|                        |
10223|                                                                                                                                    ||:diagtext:`underlying type`||                        |
10224|                                                                                                                                    |+---------------------------+|                        |
10225+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
10226
10227+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
10228|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
10229|                                                   ||:diagtext:`function`||                                                                             |
10230|                                                   |+--------------------+|                                                                             |
10231|                                                   ||:diagtext:`method`  ||                                                                             |
10232|                                                   |+--------------------+|                                                                             |
10233|                                                   ||:diagtext:`block`   ||                                                                             |
10234|                                                   |+--------------------+|                                                                             |
10235+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
10236
10237+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
10238|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
10239|                           ||:diagtext:`qualifier in` |nbsp| ||                              ||                     ||                            |
10240|                           |+--------------------------------+|                              |+---------------------+|                            |
10241|                           ||:diagtext:`static` |nbsp|       ||                              ||                     ||                            |
10242|                           |+--------------------------------+|                              |+---------------------+|                            |
10243|                           ||                                ||                              ||:diagtext:`'\[\*\] '`||                            |
10244|                           |+--------------------------------+|                              |+---------------------+|                            |
10245+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
10246
10247+--------------------------------------------------------+------------------------------------------------+
10248|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
10249|                                                        ||:diagtext:`outside of a function`             ||
10250|                                                        |+----------------------------------------------+|
10251|                                                        ||+--------------------------------------------+||
10252|                                                        |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
10253|                                                        ||+--------------------------------------------+||
10254|                                                        |+----------------------------------------------+|
10255|                                                        ||:diagtext:`inside instance variable list`     ||
10256|                                                        |+----------------------------------------------+|
10257|                                                        ||:diagtext:`after member function definition`  ||
10258|                                                        |+----------------------------------------------+|
10259+--------------------------------------------------------+------------------------------------------------+
10260
10261+-----------------------------------------------------------------------------------------+
10262|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
10263+-----------------------------------------------------------------------------------------+
10264
10265+----------------------------------------------------------------------------------------+
10266|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
10267+----------------------------------------------------------------------------------------+
10268
10269+-------------------------------------------------------------------------------------------------+
10270|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
10271+-------------------------------------------------------------------------------------------------+
10272
10273+-----------------------------------------------------------------------------------+
10274|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
10275+-----------------------------------------------------------------------------------+
10276
10277+-------------------------------------------------------------------------------------------------------+
10278|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
10279+-------------------------------------------------------------------------------------------------------+
10280
10281+--------------------------------------------------------------------------------------------------+
10282|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
10283+--------------------------------------------------------------------------------------------------+
10284
10285+-----------------------------------------------------------------------------------------------------------+
10286|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
10287+-----------------------------------------------------------------------------------------------------------+
10288
10289+----------------------------------------------------------------------------------------+
10290|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C99 extension`|
10291+----------------------------------------------------------------------------------------+
10292
10293+-----------------------------------------------------------------------+
10294|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
10295+-----------------------------------------------------------------------+
10296
10297+------------------------------------------------------------------------------------------------+
10298|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
10299+------------------------------------------------------------------------------------------------+
10300
10301+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
10302|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
10303|                                                            ||:diagtext:`a namespace`  ||                                                     |
10304|                                                            |+-------------------------+|                                                     |
10305|                                                            ||:diagtext:`an enumerator`||                                                     |
10306|                                                            |+-------------------------+|                                                     |
10307+------------------------------------------------------------+---------------------------+-----------------------------------------------------+
10308
10309+-----------------------------------------------------------------------------+
10310|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
10311+-----------------------------------------------------------------------------+
10312
10313+------------------------------------------------------------+
10314|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
10315+------------------------------------------------------------+
10316
10317+-----------------------------------------------------------------------------------+
10318|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
10319+-----------------------------------------------------------------------------------+
10320
10321+----------------------------------------------------------------+
10322|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
10323+----------------------------------------------------------------+
10324
10325+------------------------------------------------------------------------------------------------------------+
10326|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
10327+------------------------------------------------------------------------------------------------------------+
10328
10329+---------------------------------------------------------------------------------------+
10330|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
10331+---------------------------------------------------------------------------------------+
10332
10333+----------------------------------------------------------------------------------------+
10334|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
10335+----------------------------------------------------------------------------------------+
10336
10337+---------------------------------------------------------------------+
10338|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
10339+---------------------------------------------------------------------+
10340
10341+-----------------------------------------------------------------------+
10342|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
10343+-----------------------------------------------------------------------+
10344
10345+-----------------------------------------------------------------------+
10346|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
10347+-----------------------------------------------------------------------+
10348
10349+----------------------------------------------------------------------------------------------------------------+
10350|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
10351+----------------------------------------------------------------------------------------------------------------+
10352
10353+------------------------------------------------------------------------+
10354|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
10355+------------------------------------------------------------------------+
10356
10357+--------------------------------------------------------------------------------+
10358|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
10359+--------------------------------------------------------------------------------+
10360
10361+------------------------------------------------------------------------------+
10362|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
10363+------------------------------------------------------------------------------+
10364
10365+--------------------------------------------------------------------------------------+
10366|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a Clang extension in OpenCL`|
10367+--------------------------------------------------------------------------------------+
10368
10369+----------------------------------------------------------------------------------------------------------------------------------------+
10370|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
10371+----------------------------------------------------------------------------------------------------------------------------------------+
10372
10373+-------------------------------------------------------------------------------------------------+
10374|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
10375+-------------------------------------------------------------------------------------------------+
10376
10377
10378-Wpedantic-core-features
10379------------------------
10380**Diagnostic text:**
10381
10382+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10383|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
10384+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
10385
10386
10387-Wpessimizing-move
10388------------------
10389**Diagnostic text:**
10390
10391+--------------------------------------------------------------------------------------+
10392|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
10393+--------------------------------------------------------------------------------------+
10394
10395+--------------------------------------------------------------------------------------------------------+
10396|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
10397+--------------------------------------------------------------------------------------------------------+
10398
10399
10400-Wpointer-arith
10401---------------
10402Some of the diagnostics controlled by this flag are enabled by default.
10403
10404**Diagnostic text:**
10405
10406+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
10407|: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`|
10408|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                      || |nbsp| :diagtext:`the`||                                 ||             ||                        ||                                                 ||                                      |
10409|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        |+-------------------------------------------------+|                                      |
10410|                                                    ||                     ||                           ||:diagtext:`s`||                      ||                       ||                                 ||:diagtext:`s`||                        ||+-----------------------------------------------+||                                      |
10411|                                                    |+---------------------+|                           |+-------------+|                      |+-----------------------+|                                 |+-------------+|                        ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`|||                                      |
10412|                                                    |                       |                           |               |                      |                         |                                 |               |                        ||+-----------------------------------------------+||                                      |
10413|                                                    |                       |                           |               |                      |                         |                                 |               |                        |+-------------------------------------------------+|                                      |
10414+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
10415
10416+----------------------------------------------------------------------------------------+
10417|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
10418+----------------------------------------------------------------------------------------+
10419
10420+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
10421|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
10422|                                                    || |nbsp| :diagtext:`a`||                           ||             ||                                              |
10423|                                                    |+---------------------+|                           |+-------------+|                                              |
10424|                                                    ||                     ||                           ||:diagtext:`s`||                                              |
10425|                                                    |+---------------------+|                           |+-------------+|                                              |
10426+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
10427
10428+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
10429|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`|
10430|                                                               ||:diagtext:`sizeof`                                 ||                                |
10431|                                                               |+---------------------------------------------------+|                                |
10432|                                                               ||:diagtext:`alignof`                                ||                                |
10433|                                                               |+---------------------------------------------------+|                                |
10434|                                                               ||:diagtext:`vec\_step`                              ||                                |
10435|                                                               |+---------------------------------------------------+|                                |
10436|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                                |
10437|                                                               |+---------------------------------------------------+|                                |
10438|                                                               ||:diagtext:`\_\_alignof`                            ||                                |
10439|                                                               |+---------------------------------------------------+|                                |
10440+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+
10441
10442+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
10443|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`|
10444|                                                               ||:diagtext:`sizeof`                                 ||                            |
10445|                                                               |+---------------------------------------------------+|                            |
10446|                                                               ||:diagtext:`alignof`                                ||                            |
10447|                                                               |+---------------------------------------------------+|                            |
10448|                                                               ||:diagtext:`vec\_step`                              ||                            |
10449|                                                               |+---------------------------------------------------+|                            |
10450|                                                               ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`||                            |
10451|                                                               |+---------------------------------------------------+|                            |
10452|                                                               ||:diagtext:`\_\_alignof`                            ||                            |
10453|                                                               |+---------------------------------------------------+|                            |
10454+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+
10455
10456+-----------------------------------------------------------------------------------------------------------------------------------------------------+
10457|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
10458+-----------------------------------------------------------------------------------------------------------------------------------------------------+
10459
10460
10461-Wpointer-bool-conversion
10462-------------------------
10463This diagnostic is enabled by default.
10464
10465**Diagnostic text:**
10466
10467+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
10468|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
10469|                                                      ||:diagtext:`function call`||                                                                                             |
10470|                                                      |+-------------------------+|                                                                                             |
10471|                                                      ||:diagtext:`parameter`    ||                                                                                             |
10472|                                                      |+-------------------------+|                                                                                             |
10473+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
10474
10475+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
10476|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
10477|                                                 ||                            ||                                                                                 |
10478|                                                 |+----------------------------+|                                                                                 |
10479|                                                 || |nbsp| :diagtext:`function`||                                                                                 |
10480|                                                 |+----------------------------+|                                                                                 |
10481|                                                 || |nbsp| :diagtext:`array`   ||                                                                                 |
10482|                                                 |+----------------------------+|                                                                                 |
10483+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
10484
10485
10486-Wpointer-compare
10487-----------------
10488This diagnostic is enabled by default.
10489
10490**Diagnostic text:**
10491
10492+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+
10493|:warning:`warning:` |nbsp| :diagtext:`comparing a pointer to a null character constant; did you mean to compare to` |nbsp| |+----------------------+|:diagtext:`?`|
10494|                                                                                                                           ||:diagtext:`NULL`      ||             |
10495|                                                                                                                           |+----------------------+|             |
10496|                                                                                                                           ||:diagtext:`(void \*)0`||             |
10497|                                                                                                                           |+----------------------+|             |
10498+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+
10499
10500
10501-Wpointer-integer-compare
10502-------------------------
10503This diagnostic is enabled by default.
10504
10505**Diagnostic text:**
10506
10507+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10508|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
10509+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10510
10511
10512-Wpointer-sign
10513--------------
10514This diagnostic is enabled by default.
10515
10516**Diagnostic text:**
10517
10518+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
10519|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
10520|                           ||:diagtext:`assigning to different types`                      ||                                                                                  |
10521|                           |+--------------------------------------------------------------+|                                                                                  |
10522|                           ||:diagtext:`passing to parameter of different type`            ||                                                                                  |
10523|                           |+--------------------------------------------------------------+|                                                                                  |
10524|                           ||:diagtext:`returning from function with different return type`||                                                                                  |
10525|                           |+--------------------------------------------------------------+|                                                                                  |
10526|                           ||:diagtext:`converting between types`                          ||                                                                                  |
10527|                           |+--------------------------------------------------------------+|                                                                                  |
10528|                           ||:diagtext:`initializing with expression of different type`    ||                                                                                  |
10529|                           |+--------------------------------------------------------------+|                                                                                  |
10530|                           ||:diagtext:`sending to parameter of different type`            ||                                                                                  |
10531|                           |+--------------------------------------------------------------+|                                                                                  |
10532|                           ||:diagtext:`casting between types`                             ||                                                                                  |
10533|                           |+--------------------------------------------------------------+|                                                                                  |
10534+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
10535
10536
10537-Wpointer-to-enum-cast
10538----------------------
10539This diagnostic is enabled by default.
10540
10541Also controls `-Wvoid-pointer-to-enum-cast`_.
10542
10543**Diagnostic text:**
10544
10545+-------------------------------------------------------------------------------------------------------------------------------------------+
10546|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
10547+-------------------------------------------------------------------------------------------------------------------------------------------+
10548
10549
10550-Wpointer-to-int-cast
10551---------------------
10552This diagnostic is enabled by default.
10553
10554Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_.
10555
10556**Diagnostic text:**
10557
10558+-------------------------------------------------------------------------------------------------------------------------------------------+
10559|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
10560+-------------------------------------------------------------------------------------------------------------------------------------------+
10561
10562
10563-Wpointer-to-int-cast
10564---------------------
10565This diagnostic is enabled by default.
10566
10567Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_.
10568
10569**Diagnostic text:**
10570
10571+-------------------------------------------------------------------------------------------------------------------------------------------+
10572|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
10573+-------------------------------------------------------------------------------------------------------------------------------------------+
10574
10575
10576-Wpointer-type-mismatch
10577-----------------------
10578This diagnostic is enabled by default.
10579
10580**Diagnostic text:**
10581
10582+------------------------------------------------------------+
10583|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
10584+------------------------------------------------------------+
10585
10586
10587-Wpoison-system-directories
10588---------------------------
10589**Diagnostic text:**
10590
10591+----------------------------------------------------------------------------------------------------------------------+
10592|:warning:`warning:` |nbsp| :diagtext:`include location '`:placeholder:`A`:diagtext:`' is unsafe for cross-compilation`|
10593+----------------------------------------------------------------------------------------------------------------------+
10594
10595
10596-Wpotentially-evaluated-expression
10597----------------------------------
10598This diagnostic is enabled by default.
10599
10600**Diagnostic text:**
10601
10602+----------------------------------------------------------------------------------------------------------------------------------+
10603|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
10604+----------------------------------------------------------------------------------------------------------------------------------+
10605
10606
10607-Wpragma-clang-attribute
10608------------------------
10609This diagnostic is enabled by default.
10610
10611**Diagnostic text:**
10612
10613+-------------------------------------------------------------------------------------------------------------------------------------------+
10614|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
10615+-------------------------------------------------------------------------------------------------------------------------------------------+
10616
10617
10618-Wpragma-once-outside-header
10619----------------------------
10620This diagnostic is enabled by default.
10621
10622**Diagnostic text:**
10623
10624+----------------------------------------------------------------+
10625|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
10626+----------------------------------------------------------------+
10627
10628
10629-Wpragma-pack
10630-------------
10631Some of the diagnostics controlled by this flag are enabled by default.
10632
10633Also controls `-Wpragma-pack-suspicious-include`_.
10634
10635**Diagnostic text:**
10636
10637+----------------------------------------------------------------------------------------------------------------+
10638|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
10639+----------------------------------------------------------------------------------------------------------------+
10640
10641+---------------------------------------------------------------------------------------------+
10642|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
10643+---------------------------------------------------------------------------------------------+
10644
10645
10646-Wpragma-pack-suspicious-include
10647--------------------------------
10648**Diagnostic text:**
10649
10650+-------------------------------------------------------------------------------------------------------------------------------------------+
10651|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
10652+-------------------------------------------------------------------------------------------------------------------------------------------+
10653
10654
10655-Wpragma-system-header-outside-header
10656-------------------------------------
10657This diagnostic is enabled by default.
10658
10659**Diagnostic text:**
10660
10661+----------------------------------------------------------------------------------+
10662|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
10663+----------------------------------------------------------------------------------+
10664
10665
10666-Wpragmas
10667---------
10668Some of the diagnostics controlled by this flag are enabled by default.
10669
10670Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
10671
10672**Diagnostic text:**
10673
10674+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
10675|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
10676|                                                                                                                                      ||:diagtext:`function`||                        |
10677|                                                                                                                                      |+--------------------+|                        |
10678|                                                                                                                                      ||:diagtext:`variable`||                        |
10679|                                                                                                                                      |+--------------------+|                        |
10680+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
10681
10682
10683-Wpredefined-identifier-outside-function
10684----------------------------------------
10685This diagnostic is enabled by default.
10686
10687**Diagnostic text:**
10688
10689+------------------------------------------------------------------------------------------+
10690|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
10691+------------------------------------------------------------------------------------------+
10692
10693
10694-Wprivate-extern
10695----------------
10696This diagnostic is enabled by default.
10697
10698**Diagnostic text:**
10699
10700+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10701|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
10702+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10703
10704
10705-Wprivate-header
10706----------------
10707This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
10708
10709**Diagnostic text:**
10710
10711+----------------------------------------------------------------------------------------------------------------+
10712|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
10713+----------------------------------------------------------------------------------------------------------------+
10714
10715
10716-Wprivate-module
10717----------------
10718This diagnostic is enabled by default.
10719
10720**Diagnostic text:**
10721
10722+----------------------------------------------------------------------------------------------------------------+
10723|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`|
10724+----------------------------------------------------------------------------------------------------------------+
10725
10726+----------------------------------------------------------------------------------------------------------------------------------------+
10727|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`|
10728+----------------------------------------------------------------------------------------------------------------------------------------+
10729
10730+----------------------------------------------------------------------------------------------------------------------------------+
10731|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
10732+----------------------------------------------------------------------------------------------------------------------------------+
10733
10734+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10735|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`|
10736+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10737
10738
10739-Wprofile-instr-missing
10740-----------------------
10741**Diagnostic text:**
10742
10743+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
10744|: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`|
10745|                                                                                                                             ||             ||                                             ||:diagtext:`has` ||                           |
10746|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
10747|                                                                                                                             ||:diagtext:`s`||                                             ||:diagtext:`have`||                           |
10748|                                                                                                                             |+-------------+|                                             |+----------------+|                           |
10749+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+
10750
10751
10752-Wprofile-instr-out-of-date
10753---------------------------
10754This diagnostic is enabled by default.
10755
10756**Diagnostic text:**
10757
10758+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
10759|: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`|
10760|                                                                                                                              ||             ||                                             ||:diagtext:`has` ||                                                        |
10761|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
10762|                                                                                                                              ||:diagtext:`s`||                                             ||:diagtext:`have`||                                                        |
10763|                                                                                                                              |+-------------+|                                             |+----------------+|                                                        |
10764+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+
10765
10766
10767-Wprofile-instr-unprofiled
10768--------------------------
10769This diagnostic is enabled by default.
10770
10771**Diagnostic text:**
10772
10773+--------------------------------------------------------------------------------------------------------+
10774|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
10775+--------------------------------------------------------------------------------------------------------+
10776
10777
10778-Wproperty-access-dot-syntax
10779----------------------------
10780This diagnostic is enabled by default.
10781
10782**Diagnostic text:**
10783
10784+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10785|: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:`?`|
10786+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10787
10788
10789-Wproperty-attribute-mismatch
10790-----------------------------
10791This diagnostic is enabled by default.
10792
10793**Diagnostic text:**
10794
10795+-------------------------------------------------------------------------------------------------------------+
10796|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
10797+-------------------------------------------------------------------------------------------------------------+
10798
10799+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10800|: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`|
10801+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10802
10803+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10804|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
10805+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10806
10807+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10808|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
10809+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10810
10811
10812-Wprotocol
10813----------
10814This diagnostic is enabled by default.
10815
10816**Diagnostic text:**
10817
10818+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10819|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
10820+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10821
10822
10823-Wprotocol-property-synthesis-ambiguity
10824---------------------------------------
10825This diagnostic is enabled by default.
10826
10827**Diagnostic text:**
10828
10829+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
10830|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
10831|                                                       ||+-------------------------------------------+                 ||                                              |
10832|                                                       |||:diagtext:`of type` |nbsp| :placeholder:`B`|                 ||                                              |
10833|                                                       ||+-------------------------------------------+                 ||                                              |
10834|                                                       |+--------------------------------------------------------------+|                                              |
10835|                                                       ||+---------------------------------------------------------+   ||                                              |
10836|                                                       |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`|   ||                                              |
10837|                                                       ||+---------------------------------------------------------+   ||                                              |
10838|                                                       |+--------------------------------------------------------------+|                                              |
10839|                                                       ||+------------------------------------------------------------+||                                              |
10840|                                                       |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`|||                                              |
10841|                                                       ||+------------------------------------------------------------+||                                              |
10842|                                                       |+--------------------------------------------------------------+|                                              |
10843|                                                       ||+-----------------------------------------------+             ||                                              |
10844|                                                       |||:diagtext:`with getter` |nbsp| :placeholder:`B`|             ||                                              |
10845|                                                       ||+-----------------------------------------------+             ||                                              |
10846|                                                       |+--------------------------------------------------------------+|                                              |
10847|                                                       ||+-----------------------------------------------+             ||                                              |
10848|                                                       |||:diagtext:`with setter` |nbsp| :placeholder:`B`|             ||                                              |
10849|                                                       ||+-----------------------------------------------+             ||                                              |
10850|                                                       |+--------------------------------------------------------------+|                                              |
10851+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
10852
10853
10854-Wqualified-void-return-type
10855----------------------------
10856This diagnostic is enabled by default.
10857
10858**Diagnostic text:**
10859
10860+---------------------------------------------------------------------------------------------------------+
10861|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
10862+---------------------------------------------------------------------------------------------------------+
10863
10864
10865-Wquoted-include-in-framework-header
10866------------------------------------
10867**Diagnostic text:**
10868
10869+-------------------------------------------------------------------------------------------------------------------------------------------------+
10870|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`|
10871+-------------------------------------------------------------------------------------------------------------------------------------------------+
10872
10873
10874-Wrange-loop-analysis
10875---------------------
10876Controls `-Wrange-loop-bind-reference`_, `-Wrange-loop-construct`_.
10877
10878
10879-Wrange-loop-bind-reference
10880---------------------------
10881**Diagnostic text:**
10882
10883+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10884|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary value produced by a range of type` |nbsp| :placeholder:`B`|
10885+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10886
10887
10888-Wrange-loop-construct
10889----------------------
10890**Diagnostic text:**
10891
10892+------------------------------------------------------------------------------------------------------------------------------------------------------+
10893|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary constructed from a different type`|
10894+------------------------------------------------------------------------------------------------------------------------------------------------------+
10895
10896+------------------------------------------------------------------------------------------------------------------------------------------------+
10897|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`B`|
10898+------------------------------------------------------------------------------------------------------------------------------------------------+
10899
10900
10901-Wreadonly-iboutlet-property
10902----------------------------
10903This diagnostic is enabled by default.
10904
10905**Diagnostic text:**
10906
10907+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10908|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
10909+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10910
10911
10912-Wreceiver-expr
10913---------------
10914This diagnostic is enabled by default.
10915
10916**Diagnostic text:**
10917
10918+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
10919|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
10920+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
10921
10922
10923-Wreceiver-forward-class
10924------------------------
10925Some of the diagnostics controlled by this flag are enabled by default.
10926
10927**Diagnostic text:**
10928
10929+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10930|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
10931+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10932
10933+---------------------------------------------------------------------------------------------------------------------------------------------+
10934|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
10935+---------------------------------------------------------------------------------------------------------------------------------------------+
10936
10937
10938-Wredeclared-class-member
10939-------------------------
10940This diagnostic is enabled by default.
10941
10942**Diagnostic text:**
10943
10944+------------------------------------------------------------------------+
10945|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
10946+------------------------------------------------------------------------+
10947
10948
10949-Wredundant-decls
10950-----------------
10951This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10952
10953-Wredundant-move
10954----------------
10955**Diagnostic text:**
10956
10957+-------------------------------------------------------------------------+
10958|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
10959+-------------------------------------------------------------------------+
10960
10961
10962-Wredundant-parens
10963------------------
10964**Diagnostic text:**
10965
10966+-----------------------------------------------------------------------------------+
10967|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
10968+-----------------------------------------------------------------------------------+
10969
10970
10971-Wregister
10972----------
10973This diagnostic is enabled by default.
10974
10975Also controls `-Wdeprecated-register`_.
10976
10977**Diagnostic text:**
10978
10979+----------------------------------------------------------------------------------------------+
10980|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
10981+----------------------------------------------------------------------------------------------+
10982
10983
10984-Wreinterpret-base-class
10985------------------------
10986This diagnostic is enabled by default.
10987
10988**Diagnostic text:**
10989
10990+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
10991|: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'`|
10992|                                                                  ||:diagtext:`from`||                                                         ||:diagtext:`to`  ||                               ||:diagtext:`virtual base`           ||                                                                                   |
10993|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
10994|                                                                  ||:diagtext:`to`  ||                                                         ||:diagtext:`from`||                               ||:diagtext:`base at non-zero offset`||                                                                                   |
10995|                                                                  |+----------------+|                                                         |+----------------+|                               |+-----------------------------------+|                                                                                   |
10996+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
10997
10998
10999-Rremark-backend-plugin
11000-----------------------
11001**Diagnostic text:**
11002
11003The text of this diagnostic is not controlled by Clang.
11004
11005
11006-Wreorder
11007---------
11008Some of the diagnostics controlled by this flag are enabled by default.
11009
11010Controls `-Wreorder-ctor`_, `-Wreorder-init-list`_.
11011
11012
11013-Wreorder-ctor
11014--------------
11015**Diagnostic text:**
11016
11017+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
11018|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
11019|                           ||:diagtext:`field`     ||                                                                             ||:diagtext:`field`||                        |
11020|                           |+----------------------+|                                                                             |+-----------------+|                        |
11021|                           ||:diagtext:`base class`||                                                                             ||:diagtext:`base` ||                        |
11022|                           |+----------------------+|                                                                             |+-----------------+|                        |
11023+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
11024
11025
11026-Wreorder-init-list
11027-------------------
11028This diagnostic is enabled by default.
11029
11030**Diagnostic text:**
11031
11032+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11033|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires field designators to be specified in declaration order; field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after field` |nbsp| :placeholder:`A`|
11034+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11035
11036
11037-Wrequires-expression
11038---------------------
11039This diagnostic is enabled by default.
11040
11041**Diagnostic text:**
11042
11043+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11044|:warning:`warning:` |nbsp| :diagtext:`this requires expression will only be checked for syntactic validity; did you intend to place it in a nested requirement? (add another 'requires' before the expression)`|
11045+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11046
11047
11048-Wrequires-super-attribute
11049--------------------------
11050This diagnostic is enabled by default.
11051
11052**Diagnostic text:**
11053
11054+-----------------------------------------------------------------------------------------------------+----------------------------------+
11055|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
11056|                                                                                                     ||:diagtext:`methods in protocols`||
11057|                                                                                                     |+--------------------------------+|
11058|                                                                                                     ||:diagtext:`dealloc`             ||
11059|                                                                                                     |+--------------------------------+|
11060+-----------------------------------------------------------------------------------------------------+----------------------------------+
11061
11062
11063-Wreserved-id-macro
11064-------------------
11065**Diagnostic text:**
11066
11067+--------------------------------------------------------------------------+
11068|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
11069+--------------------------------------------------------------------------+
11070
11071
11072-Wreserved-user-defined-literal
11073-------------------------------
11074Some of the diagnostics controlled by this flag are enabled by default.
11075
11076Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
11077
11078**Diagnostic text:**
11079
11080+-----------------------------------------------------------------------------------------------------------------------+
11081|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
11082+-----------------------------------------------------------------------------------------------------------------------+
11083
11084+-------------------------------------------------------------------------------------------------------------------+
11085|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
11086+-------------------------------------------------------------------------------------------------------------------+
11087
11088
11089-Wretained-language-linkage
11090---------------------------
11091**Diagnostic text:**
11092
11093+-----------------------------------------------------------------------------------------------------------------------------------------------------+
11094|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
11095+-----------------------------------------------------------------------------------------------------------------------------------------------------+
11096
11097
11098-Wreturn-stack-address
11099----------------------
11100This diagnostic is enabled by default.
11101
11102**Diagnostic text:**
11103
11104+---------------------------------------------------------------------------------+
11105|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
11106+---------------------------------------------------------------------------------+
11107
11108+--------------------------------------------------------+--------------------------+------------------------------------------+
11109|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
11110|                                                        ||:diagtext:`address of`  ||                                          |
11111|                                                        |+------------------------+|                                          |
11112|                                                        ||:diagtext:`reference to`||                                          |
11113|                                                        |+------------------------+|                                          |
11114+--------------------------------------------------------+--------------------------+------------------------------------------+
11115
11116+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
11117|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
11118|                           ||:diagtext:`address of`  ||                                                        ||:diagtext:`local variable`||                                                    |
11119|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
11120|                           ||:diagtext:`reference to`||                                                        ||:diagtext:`parameter`     ||                                                    |
11121|                           |+------------------------+|                                                        |+--------------------------+|                                                    |
11122+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+
11123
11124
11125-Wreturn-std-move
11126-----------------
11127**Diagnostic text:**
11128
11129+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
11130|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`|
11131|                                                                                                                                     ||:diagtext:`returned`||                           |
11132|                                                                                                                                     |+--------------------+|                           |
11133|                                                                                                                                     ||:diagtext:`thrown`  ||                           |
11134|                                                                                                                                     |+--------------------+|                           |
11135+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+
11136
11137
11138-Wreturn-std-move-in-c++11
11139--------------------------
11140**Diagnostic text:**
11141
11142+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11143|: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`|
11144+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11145
11146
11147-Wreturn-type
11148-------------
11149This diagnostic is enabled by default.
11150
11151Also controls `-Wreturn-type-c-linkage`_.
11152
11153**Diagnostic text:**
11154
11155+-----------------------+---------------------------+---------------------------------------------------------------------+
11156|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
11157|                       ||:diagtext:`void function`||                                                                     |
11158|                       |+-------------------------+|                                                                     |
11159|                       ||:diagtext:`void method`  ||                                                                     |
11160|                       |+-------------------------+|                                                                     |
11161|                       ||:diagtext:`constructor`  ||                                                                     |
11162|                       |+-------------------------+|                                                                     |
11163|                       ||:diagtext:`destructor`   ||                                                                     |
11164|                       |+-------------------------+|                                                                     |
11165+-----------------------+---------------------------+---------------------------------------------------------------------+
11166
11167+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
11168|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
11169|                                                   ||:diagtext:`function`||                                                                 |
11170|                                                   |+--------------------+|                                                                 |
11171|                                                   ||:diagtext:`method`  ||                                                                 |
11172|                                                   |+--------------------+|                                                                 |
11173+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
11174
11175+---------------------------------------------------------------------------------+
11176|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value`|
11177+---------------------------------------------------------------------------------+
11178
11179+--------------------------------------------------------------------------------+
11180|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value`|
11181+--------------------------------------------------------------------------------+
11182
11183+------------------------------------------------------------------------------+
11184|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value`|
11185+------------------------------------------------------------------------------+
11186
11187+------------------------------------------------------------------------------------------------------+
11188|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value in all control paths`|
11189+------------------------------------------------------------------------------------------------------+
11190
11191+-----------------------------------------------------------------------------------------------------+
11192|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value in all control paths`|
11193+-----------------------------------------------------------------------------------------------------+
11194
11195+---------------------------------------------------------------------------------------------------+
11196|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value in all control paths`|
11197+---------------------------------------------------------------------------------------------------+
11198
11199+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
11200|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
11201|                                                   ||:diagtext:`function`||                                                                 |
11202|                                                   |+--------------------+|                                                                 |
11203|                                                   ||:diagtext:`method`  ||                                                                 |
11204|                                                   |+--------------------+|                                                                 |
11205+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
11206
11207
11208-Wreturn-type-c-linkage
11209-----------------------
11210This diagnostic is enabled by default.
11211
11212**Diagnostic text:**
11213
11214+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11215|: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`|
11216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11217
11218+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11219|: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`|
11220+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11221
11222
11223-Wrewrite-not-bool
11224------------------
11225This diagnostic is enabled by default.
11226
11227**Diagnostic text:**
11228
11229+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11230|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 requires return type of selected 'operator==' function for rewritten '`:placeholder:`B`:diagtext:`' comparison to be 'bool', not` |nbsp| :placeholder:`A`|
11231+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11232
11233
11234-Rsanitize-address
11235------------------
11236**Diagnostic text:**
11237
11238+--------------------------------------------------------------------------------------------------------+
11239|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
11240+--------------------------------------------------------------------------------------------------------+
11241
11242+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
11243|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
11244|                                                                                                                                               ||:diagtext:`is not C++`              ||
11245|                                                                                                                                               |+------------------------------------+|
11246|                                                                                                                                               ||:diagtext:`is packed`               ||
11247|                                                                                                                                               |+------------------------------------+|
11248|                                                                                                                                               ||:diagtext:`is a union`              ||
11249|                                                                                                                                               |+------------------------------------+|
11250|                                                                                                                                               ||:diagtext:`is trivially copyable`   ||
11251|                                                                                                                                               |+------------------------------------+|
11252|                                                                                                                                               ||:diagtext:`has trivial destructor`  ||
11253|                                                                                                                                               |+------------------------------------+|
11254|                                                                                                                                               ||:diagtext:`is standard layout`      ||
11255|                                                                                                                                               |+------------------------------------+|
11256|                                                                                                                                               ||:diagtext:`is in a blacklisted file`||
11257|                                                                                                                                               |+------------------------------------+|
11258|                                                                                                                                               ||:diagtext:`is blacklisted`          ||
11259|                                                                                                                                               |+------------------------------------+|
11260+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
11261
11262
11263-Wsection
11264---------
11265This diagnostic is enabled by default.
11266
11267**Diagnostic text:**
11268
11269+--------------------------------------------------------------------------------------------+
11270|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
11271+--------------------------------------------------------------------------------------------+
11272
11273+------------------------------------------------------------------------+
11274|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`|
11275+------------------------------------------------------------------------+
11276
11277+---------------------------+---------------------+-------------------------------------------------------+
11278|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`|
11279|                           ||:diagtext:`codeseg`||                                                       |
11280|                           |+-------------------+|                                                       |
11281|                           ||:diagtext:`section`||                                                       |
11282|                           |+-------------------+|                                                       |
11283+---------------------------+---------------------+-------------------------------------------------------+
11284
11285
11286-Wselector
11287----------
11288Also controls `-Wselector-type-mismatch`_.
11289
11290**Diagnostic text:**
11291
11292+-------------------------------------------------------------------------------------------------------------------------------------------------+
11293|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
11294+-------------------------------------------------------------------------------------------------------------------------------------------------+
11295
11296
11297-Wselector-type-mismatch
11298------------------------
11299**Diagnostic text:**
11300
11301+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11302|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
11303+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11304
11305
11306-Wself-assign
11307-------------
11308Some of the diagnostics controlled by this flag are enabled by default.
11309
11310Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_.
11311
11312**Diagnostic text:**
11313
11314+------------------------------------------------------------------------------------------------------------------------------------------+
11315|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
11316+------------------------------------------------------------------------------------------------------------------------------------------+
11317
11318
11319-Wself-assign-field
11320-------------------
11321This diagnostic is enabled by default.
11322
11323**Diagnostic text:**
11324
11325+--------------------------------------------------------+-------------------------------+-----------------------------+
11326|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
11327|                                                        ||:diagtext:`field`            ||                             |
11328|                                                        |+-----------------------------+|                             |
11329|                                                        ||:diagtext:`instance variable`||                             |
11330|                                                        |+-----------------------------+|                             |
11331+--------------------------------------------------------+-------------------------------+-----------------------------+
11332
11333
11334-Wself-assign-overloaded
11335------------------------
11336**Diagnostic text:**
11337
11338+------------------------------------------------------------------------------------------------------------------------------------------+
11339|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
11340+------------------------------------------------------------------------------------------------------------------------------------------+
11341
11342
11343-Wself-move
11344-----------
11345**Diagnostic text:**
11346
11347+------------------------------------------------------------------------------------------------------------------------------+
11348|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
11349+------------------------------------------------------------------------------------------------------------------------------+
11350
11351
11352-Wsemicolon-before-method-body
11353------------------------------
11354**Diagnostic text:**
11355
11356+------------------------------------------------------------------------------+
11357|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
11358+------------------------------------------------------------------------------+
11359
11360
11361-Wsentinel
11362----------
11363This diagnostic is enabled by default.
11364
11365**Diagnostic text:**
11366
11367+------------------------------------------------------------------+-----------------------------+
11368|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
11369|                                                                  ||:diagtext:`function call`  ||
11370|                                                                  |+---------------------------+|
11371|                                                                  ||:diagtext:`method dispatch`||
11372|                                                                  |+---------------------------+|
11373|                                                                  ||:diagtext:`block call`     ||
11374|                                                                  |+---------------------------+|
11375+------------------------------------------------------------------+-----------------------------+
11376
11377+------------------------------------------------------------------------------------------------------------------------------------------------+
11378|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
11379+------------------------------------------------------------------------------------------------------------------------------------------------+
11380
11381
11382-Wsequence-point
11383----------------
11384Synonym for `-Wunsequenced`_.
11385
11386
11387-Wserialized-diagnostics
11388------------------------
11389This diagnostic is enabled by default.
11390
11391**Diagnostic text:**
11392
11393+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11394|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
11395+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11396
11397+--------------------------------------------------------------------------------------------+
11398|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
11399+--------------------------------------------------------------------------------------------+
11400
11401
11402-Wshadow
11403--------
11404Some of the diagnostics controlled by this flag are enabled by default.
11405
11406Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
11407
11408**Diagnostic text:**
11409
11410+--------------------------------------------------------------------+-------------------------------------------------------------+
11411|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
11412|                                                                    ||:diagtext:`local variable`                                 ||
11413|                                                                    |+-----------------------------------------------------------+|
11414|                                                                    ||+-----------------------------------------------+          ||
11415|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
11416|                                                                    ||+-----------------------------------------------+          ||
11417|                                                                    |+-----------------------------------------------------------+|
11418|                                                                    ||+---------------------------------------------------------+||
11419|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
11420|                                                                    ||+---------------------------------------------------------+||
11421|                                                                    |+-----------------------------------------------------------+|
11422|                                                                    ||+--------------------------------------------+             ||
11423|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
11424|                                                                    ||+--------------------------------------------+             ||
11425|                                                                    |+-----------------------------------------------------------+|
11426|                                                                    ||+----------------------------------------------+           ||
11427|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
11428|                                                                    ||+----------------------------------------------+           ||
11429|                                                                    |+-----------------------------------------------------------+|
11430|                                                                    ||+-------------------------------------------------+        ||
11431|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
11432|                                                                    ||+-------------------------------------------------+        ||
11433|                                                                    |+-----------------------------------------------------------+|
11434+--------------------------------------------------------------------+-------------------------------------------------------------+
11435
11436
11437-Wshadow-all
11438------------
11439Some of the diagnostics controlled by this flag are enabled by default.
11440
11441Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
11442
11443
11444-Wshadow-field
11445--------------
11446**Diagnostic text:**
11447
11448+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
11449|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`|
11450|                           ||:diagtext:`parameter`             ||                                ||                                                ||                                                                      |
11451|                           |+----------------------------------+|                                |+------------------------------------------------+|                                                                      |
11452|                           ||:diagtext:`non-static data member`||                                ||+----------------------------------------------+||                                                                      |
11453|                           |+----------------------------------+|                                |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| |||                                                                      |
11454|                           |                                    |                                ||+----------------------------------------------+||                                                                      |
11455|                           |                                    |                                |+------------------------------------------------+|                                                                      |
11456+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+
11457
11458
11459-Wshadow-field-in-constructor
11460-----------------------------
11461Also controls `-Wshadow-field-in-constructor-modified`_.
11462
11463**Diagnostic text:**
11464
11465+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11466|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
11467+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11468
11469
11470-Wshadow-field-in-constructor-modified
11471--------------------------------------
11472**Diagnostic text:**
11473
11474+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11475|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
11476+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11477
11478
11479-Wshadow-ivar
11480-------------
11481This diagnostic is enabled by default.
11482
11483**Diagnostic text:**
11484
11485+------------------------------------------------------------------------------------------------------------------------------+
11486|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
11487+------------------------------------------------------------------------------------------------------------------------------+
11488
11489
11490-Wshadow-uncaptured-local
11491-------------------------
11492**Diagnostic text:**
11493
11494+--------------------------------------------------------------------+-------------------------------------------------------------+
11495|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
11496|                                                                    ||:diagtext:`local variable`                                 ||
11497|                                                                    |+-----------------------------------------------------------+|
11498|                                                                    ||+-----------------------------------------------+          ||
11499|                                                                    |||:diagtext:`variable in` |nbsp| :placeholder:`C`|          ||
11500|                                                                    ||+-----------------------------------------------+          ||
11501|                                                                    |+-----------------------------------------------------------+|
11502|                                                                    ||+---------------------------------------------------------+||
11503|                                                                    |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
11504|                                                                    ||+---------------------------------------------------------+||
11505|                                                                    |+-----------------------------------------------------------+|
11506|                                                                    ||+--------------------------------------------+             ||
11507|                                                                    |||:diagtext:`field of` |nbsp| :placeholder:`C`|             ||
11508|                                                                    ||+--------------------------------------------+             ||
11509|                                                                    |+-----------------------------------------------------------+|
11510|                                                                    ||+----------------------------------------------+           ||
11511|                                                                    |||:diagtext:`typedef in` |nbsp| :placeholder:`C`|           ||
11512|                                                                    ||+----------------------------------------------+           ||
11513|                                                                    |+-----------------------------------------------------------+|
11514|                                                                    ||+-------------------------------------------------+        ||
11515|                                                                    |||:diagtext:`type alias in` |nbsp| :placeholder:`C`|        ||
11516|                                                                    ||+-------------------------------------------------+        ||
11517|                                                                    |+-----------------------------------------------------------+|
11518+--------------------------------------------------------------------+-------------------------------------------------------------+
11519
11520
11521-Wshift-count-negative
11522----------------------
11523This diagnostic is enabled by default.
11524
11525**Diagnostic text:**
11526
11527+--------------------------------------------------------------+
11528|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
11529+--------------------------------------------------------------+
11530
11531
11532-Wshift-count-overflow
11533----------------------
11534This diagnostic is enabled by default.
11535
11536**Diagnostic text:**
11537
11538+-------------------------------------------------------------------+
11539|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
11540+-------------------------------------------------------------------+
11541
11542
11543-Wshift-negative-value
11544----------------------
11545This diagnostic is enabled by default.
11546
11547**Diagnostic text:**
11548
11549+------------------------------------------------------------------------------------+
11550|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
11551+------------------------------------------------------------------------------------+
11552
11553
11554-Wshift-op-parentheses
11555----------------------
11556This diagnostic is enabled by default.
11557
11558**Diagnostic text:**
11559
11560+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11561|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
11562+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11563
11564
11565-Wshift-overflow
11566----------------
11567This diagnostic is enabled by default.
11568
11569**Diagnostic text:**
11570
11571+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11572|: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`|
11573+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11574
11575
11576-Wshift-sign-overflow
11577---------------------
11578**Diagnostic text:**
11579
11580+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11581|: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`|
11582+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11583
11584
11585-Wshorten-64-to-32
11586------------------
11587**Diagnostic text:**
11588
11589+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11590|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
11591+---------------------------------------------------------------------------------------------------------------------------------------------------------+
11592
11593
11594-Wsign-compare
11595--------------
11596**Diagnostic text:**
11597
11598+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11599|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
11600+--------------------------------------------------------------------------------------------------------------------------------------------------------+
11601
11602
11603-Wsign-conversion
11604-----------------
11605**Diagnostic text:**
11606
11607+----------------------------------------------------------------------------------------------------------------------------------------------------+
11608|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
11609+----------------------------------------------------------------------------------------------------------------------------------------------------+
11610
11611+---------------------------------------------------------------------------------------------------------------------------------------------+
11612|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
11613+---------------------------------------------------------------------------------------------------------------------------------------------+
11614
11615+-----------------------------------------------------------------------------------------------------------+
11616|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`|
11617+-----------------------------------------------------------------------------------------------------------+
11618
11619
11620-Wsign-promo
11621------------
11622This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11623
11624-Wsigned-enum-bitfield
11625----------------------
11626**Diagnostic text:**
11627
11628+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11629|: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`|
11630+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11631
11632
11633-Wsigned-unsigned-wchar
11634-----------------------
11635This diagnostic is an error by default, but the flag ``-Wno-signed-unsigned-wchar`` can be used to disable the error.
11636
11637**Diagnostic text:**
11638
11639+----------------------------------------------------------------------------------------------+
11640|:error:`error:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
11641+----------------------------------------------------------------------------------------------+
11642
11643
11644-Wsizeof-array-argument
11645-----------------------
11646This diagnostic is enabled by default.
11647
11648**Diagnostic text:**
11649
11650+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11651|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
11652+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11653
11654
11655-Wsizeof-array-decay
11656--------------------
11657This diagnostic is enabled by default.
11658
11659**Diagnostic text:**
11660
11661+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11662|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
11663+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11664
11665
11666-Wsizeof-array-div
11667------------------
11668This diagnostic is enabled by default.
11669
11670**Diagnostic text:**
11671
11672+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11673|:warning:`warning:` |nbsp| :diagtext:`expression does not compute the number of elements in this array; element type is` |nbsp| :placeholder:`A`:diagtext:`, not` |nbsp| :placeholder:`B`|
11674+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11675
11676
11677-Wsizeof-pointer-div
11678--------------------
11679This diagnostic is enabled by default.
11680
11681**Diagnostic text:**
11682
11683+-------------------------------------------------------------------------------------------------------------------------------+
11684|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`|
11685+-------------------------------------------------------------------------------------------------------------------------------+
11686
11687
11688-Wsizeof-pointer-memaccess
11689--------------------------
11690This diagnostic is enabled by default.
11691
11692**Diagnostic text:**
11693
11694+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11695|: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`|
11696+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11697
11698+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
11699|: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`|
11700|                                                                                                                                                                                                 ||:diagtext:`destination`||                                                                                       |
11701|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
11702|                                                                                                                                                                                                 ||:diagtext:`source`     ||                                                                                       |
11703|                                                                                                                                                                                                 |+-----------------------+|                                                                                       |
11704+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
11705
11706
11707-Wslash-u-filename
11708------------------
11709This diagnostic is enabled by default.
11710
11711**Diagnostic text:**
11712
11713+--------------------------------------------------------------------------------------------------+
11714|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
11715+--------------------------------------------------------------------------------------------------+
11716
11717
11718-Wsometimes-uninitialized
11719-------------------------
11720**Diagnostic text:**
11721
11722+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
11723|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
11724|                                                                                                     ||:diagtext:`used`    ||                                                  ||+---------------------------------------------------------------+-------------------+                       ||
11725|                                                                                                     |+--------------------+|                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+|                       ||
11726|                                                                                                     ||:diagtext:`captured`||                                                  |||                                                               ||:diagtext:`true` ||                       ||
11727|                                                                                                     |+--------------------+|                                                  |||                                                               |+-----------------+|                       ||
11728|                                                                                                     |                      |                                                  |||                                                               ||:diagtext:`false`||                       ||
11729|                                                                                                     |                      |                                                  |||                                                               |+-----------------+|                       ||
11730|                                                                                                     |                      |                                                  ||+---------------------------------------------------------------+-------------------+                       ||
11731|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11732|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
11733|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
11734|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`is entered`                          ||||
11735|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
11736|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
11737|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
11738|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
11739|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11740|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
11741|                                                                                                     |                      |                                                  |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
11742|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`condition is true`                   ||||
11743|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
11744|                                                                                                     |                      |                                                  |||                                                       ||:diagtext:`exits because its condition is false`||||
11745|                                                                                                     |                      |                                                  |||                                                       |+------------------------------------------------+|||
11746|                                                                                                     |                      |                                                  ||+-------------------------------------------------------+--------------------------------------------------+||
11747|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11748|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
11749|                                                                                                     |                      |                                                  |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`|                                    ||
11750|                                                                                                     |                      |                                                  ||+----------------------------------------------------------------------+                                    ||
11751|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11752|                                                                                                     |                      |                                                  ||:diagtext:`its declaration is reached`                                                                      ||
11753|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11754|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
11755|                                                                                                     |                      |                                                  |||:placeholder:`D` |nbsp| :diagtext:`is called`|                                                             ||
11756|                                                                                                     |                      |                                                  ||+---------------------------------------------+                                                             ||
11757|                                                                                                     |                      |                                                  |+------------------------------------------------------------------------------------------------------------+|
11758+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
11759
11760
11761-Wsource-uses-openmp
11762--------------------
11763Some of the diagnostics controlled by this flag are enabled by default.
11764
11765**Diagnostic text:**
11766
11767+-----------------------------------------------------------------------------------------------------------------------------+
11768|:warning:`warning:` |nbsp| :diagtext:`nesting \`omp begin/end declare variant\` is not supported yet; nested context ignored`|
11769+-----------------------------------------------------------------------------------------------------------------------------+
11770
11771+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11772|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied to the function that was defined already; the original function might be used`|
11773+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11774
11775+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11776|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied for function after first usage; the original function might be used`|
11777+----------------------------------------------------------------------------------------------------------------------------------------------------------+
11778
11779+------------------------------------------------------------------------------------------------------------------------------------------+
11780|:warning:`warning:` |nbsp| :diagtext:`variant function in '#pragma omp declare variant' is itself marked as '#pragma omp declare variant'`|
11781+------------------------------------------------------------------------------------------------------------------------------------------+
11782
11783+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11784|:warning:`warning:` |nbsp| :diagtext:`score expressions in the OpenMP context selector need to be constant;` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not and will be ignored`|
11785+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11786
11787+------------------------------------------------------------------------------------------------------------------------------+
11788|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
11789+------------------------------------------------------------------------------------------------------------------------------+
11790
11791+------------------------------------------------------------------------------+
11792|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
11793+------------------------------------------------------------------------------+
11794
11795
11796-Wspir-compat
11797-------------
11798**Diagnostic text:**
11799
11800+----------------------------------------------------------------------------------------------------------------------+
11801|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
11802+----------------------------------------------------------------------------------------------------------------------+
11803
11804
11805-Wstack-exhausted
11806-----------------
11807This diagnostic is enabled by default.
11808
11809**Diagnostic text:**
11810
11811+----------------------------------------------------------------------------------------------------------------------------------------+
11812|:warning:`warning:` |nbsp| :diagtext:`stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely`|
11813+----------------------------------------------------------------------------------------------------------------------------------------+
11814
11815
11816-Wstack-protector
11817-----------------
11818This diagnostic is enabled by default.
11819
11820**Diagnostic text:**
11821
11822+-------------------------------------------------------------------------------------------------------------------+
11823|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`|
11824+-------------------------------------------------------------------------------------------------------------------+
11825
11826
11827-Wstack-protector
11828-----------------
11829This diagnostic is enabled by default.
11830
11831**Diagnostic text:**
11832
11833+-------------------------------------------------------------------------------------------------------------------+
11834|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`|
11835+-------------------------------------------------------------------------------------------------------------------+
11836
11837
11838-Wstatic-float-init
11839-------------------
11840This diagnostic is enabled by default.
11841
11842Also controls `-Wgnu-static-float-init`_.
11843
11844**Diagnostic text:**
11845
11846+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11847|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
11848+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
11849
11850
11851-Wstatic-in-inline
11852------------------
11853Some of the diagnostics controlled by this flag are enabled by default.
11854
11855**Diagnostic text:**
11856
11857+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
11858|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
11859|                                                     ||:diagtext:`function`||                                                                                               |
11860|                                                     |+--------------------+|                                                                                               |
11861|                                                     ||:diagtext:`variable`||                                                                                               |
11862|                                                     |+--------------------+|                                                                                               |
11863+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
11864
11865+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
11866|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
11867|                                                     ||:diagtext:`function`||                                                                                               |
11868|                                                     |+--------------------+|                                                                                               |
11869|                                                     ||:diagtext:`variable`||                                                                                               |
11870|                                                     |+--------------------+|                                                                                               |
11871+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
11872
11873
11874-Wstatic-inline-explicit-instantiation
11875--------------------------------------
11876This diagnostic is enabled by default.
11877
11878**Diagnostic text:**
11879
11880+-------------------------------------------------+--------------------+--------------------------------------------------------+
11881|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
11882|                                                 ||:diagtext:`static`||                                                        |
11883|                                                 |+------------------+|                                                        |
11884|                                                 ||:diagtext:`inline`||                                                        |
11885|                                                 |+------------------+|                                                        |
11886+-------------------------------------------------+--------------------+--------------------------------------------------------+
11887
11888
11889-Wstatic-local-in-inline
11890------------------------
11891This diagnostic is enabled by default.
11892
11893**Diagnostic text:**
11894
11895+--------------------------------------------------------------------------------------------------------------------------------+
11896|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
11897+--------------------------------------------------------------------------------------------------------------------------------+
11898
11899
11900-Wstatic-self-init
11901------------------
11902This diagnostic is enabled by default.
11903
11904**Diagnostic text:**
11905
11906+----------------------------------------------------------------------------------------------------------------------------------------------------+
11907|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
11908+----------------------------------------------------------------------------------------------------------------------------------------------------+
11909
11910
11911-Wstdlibcxx-not-found
11912---------------------
11913This diagnostic is enabled by default.
11914
11915**Diagnostic text:**
11916
11917+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11918|: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`|
11919+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11920
11921
11922-Wstrict-aliasing
11923-----------------
11924This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11925
11926-Wstrict-aliasing=0
11927-------------------
11928This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11929
11930-Wstrict-aliasing=1
11931-------------------
11932This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11933
11934-Wstrict-aliasing=2
11935-------------------
11936This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11937
11938-Wstrict-overflow
11939-----------------
11940This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11941
11942-Wstrict-overflow=0
11943-------------------
11944This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11945
11946-Wstrict-overflow=1
11947-------------------
11948This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11949
11950-Wstrict-overflow=2
11951-------------------
11952This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11953
11954-Wstrict-overflow=3
11955-------------------
11956This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11957
11958-Wstrict-overflow=4
11959-------------------
11960This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11961
11962-Wstrict-overflow=5
11963-------------------
11964This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11965
11966-Wstrict-prototypes
11967-------------------
11968**Diagnostic text:**
11969
11970+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
11971|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
11972|                                                   ||:diagtext:`function declaration is not`                     ||                               |
11973|                                                   |+------------------------------------------------------------+|                               |
11974|                                                   ||:diagtext:`block declaration is not`                        ||                               |
11975|                                                   |+------------------------------------------------------------+|                               |
11976|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
11977|                                                   |+------------------------------------------------------------+|                               |
11978+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
11979
11980
11981-Wstrict-prototypes
11982-------------------
11983**Diagnostic text:**
11984
11985+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
11986|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
11987|                                                   ||:diagtext:`function declaration is not`                     ||                               |
11988|                                                   |+------------------------------------------------------------+|                               |
11989|                                                   ||:diagtext:`block declaration is not`                        ||                               |
11990|                                                   |+------------------------------------------------------------+|                               |
11991|                                                   ||:diagtext:`old-style function definition is not preceded by`||                               |
11992|                                                   |+------------------------------------------------------------+|                               |
11993+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
11994
11995
11996-Wstrict-selector-match
11997-----------------------
11998**Diagnostic text:**
11999
12000+--------------------------------------------------------------------------------------------------------------+
12001|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
12002+--------------------------------------------------------------------------------------------------------------+
12003
12004
12005-Wstring-compare
12006----------------
12007This diagnostic is enabled by default.
12008
12009**Diagnostic text:**
12010
12011+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+
12012|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use an explicit string comparison function instead)`|
12013|                                                                           ||:diagtext:`a string literal`||                                                                                       |
12014|                                                                           |+----------------------------+|                                                                                       |
12015|                                                                           ||:diagtext:`@encode`         ||                                                                                       |
12016|                                                                           |+----------------------------+|                                                                                       |
12017+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+
12018
12019
12020-Wstring-conversion
12021-------------------
12022**Diagnostic text:**
12023
12024+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
12025|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
12026+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
12027
12028
12029-Wstring-plus-char
12030------------------
12031This diagnostic is enabled by default.
12032
12033**Diagnostic text:**
12034
12035+------------------------------------------------------------------------------------------------------------------------------------------+
12036|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
12037+------------------------------------------------------------------------------------------------------------------------------------------+
12038
12039
12040-Wstring-plus-int
12041-----------------
12042This diagnostic is enabled by default.
12043
12044**Diagnostic text:**
12045
12046+----------------------------------------------------------------------------------------------------------------------------------+
12047|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
12048+----------------------------------------------------------------------------------------------------------------------------------+
12049
12050
12051-Wstrlcpy-strlcat-size
12052----------------------
12053This diagnostic is enabled by default.
12054
12055**Diagnostic text:**
12056
12057+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12058|: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`|
12059+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12060
12061
12062-Wstrncat-size
12063--------------
12064This diagnostic is enabled by default.
12065
12066**Diagnostic text:**
12067
12068+--------------------------------------------------------------------------------------------------------------------------------+
12069|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
12070+--------------------------------------------------------------------------------------------------------------------------------+
12071
12072+-------------------------------------------------------------------------------------------------------+
12073|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
12074+-------------------------------------------------------------------------------------------------------+
12075
12076+-------------------------------------------------------------------------------------------+
12077|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
12078+-------------------------------------------------------------------------------------------+
12079
12080
12081-Wsuper-class-method-mismatch
12082-----------------------------
12083**Diagnostic text:**
12084
12085+--------------------------------------------------------------------------------------------------------------------------------+
12086|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
12087+--------------------------------------------------------------------------------------------------------------------------------+
12088
12089
12090-Wsuspicious-bzero
12091------------------
12092This diagnostic is enabled by default.
12093
12094**Diagnostic text:**
12095
12096+----------------------------------------------------------------------+
12097|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`|
12098+----------------------------------------------------------------------+
12099
12100
12101-Wsuspicious-memaccess
12102----------------------
12103This diagnostic is enabled by default.
12104
12105Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_.
12106
12107
12108-Wswitch
12109--------
12110This diagnostic is enabled by default.
12111
12112**Diagnostic text:**
12113
12114+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12115|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
12116+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12117
12118+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12119|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12120|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
12121|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`|                                                                                                ||
12122|                           ||+----------------------------------------------------------------------------------------------+                                                                                                ||
12123|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12124|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
12125|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`|                                                ||
12126|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
12127|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12128|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
12129|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`|                 ||
12130|                           ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
12131|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12132|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
12133|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
12134|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
12135|                           |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12136+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12137
12138+------------------------------------------------------------------------------------------------+
12139|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
12140+------------------------------------------------------------------------------------------------+
12141
12142
12143-Wswitch-bool
12144-------------
12145This diagnostic is enabled by default.
12146
12147**Diagnostic text:**
12148
12149+-------------------------------------------------------------------------+
12150|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
12151+-------------------------------------------------------------------------+
12152
12153
12154-Wswitch-default
12155----------------
12156This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
12157
12158-Wswitch-enum
12159-------------
12160**Diagnostic text:**
12161
12162+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12163|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12164|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
12165|                           |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`|                                                                                                ||
12166|                           ||+---------------------------------------------------------------------------------------------------------+                                                                                                ||
12167|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12168|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
12169|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`|                                                ||
12170|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+                                                ||
12171|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12172|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
12173|                           |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`|                 ||
12174|                           ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+                 ||
12175|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12176|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
12177|                           |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
12178|                           ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
12179|                           |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
12180+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12181
12182
12183-Wsync-fetch-and-nand-semantics-changed
12184---------------------------------------
12185This diagnostic is enabled by default.
12186
12187**Diagnostic text:**
12188
12189+-------------------------------------------------------------------------------------------------------------------------------------------+
12190|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
12191+-------------------------------------------------------------------------------------------------------------------------------------------+
12192
12193
12194-Wsynth
12195-------
12196This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
12197
12198-Wtautological-bitwise-compare
12199------------------------------
12200**Diagnostic text:**
12201
12202+-------------------------------------------------------------------------------------+-------------------+
12203|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
12204|                                                                                     ||:diagtext:`false`||
12205|                                                                                     |+-----------------+|
12206|                                                                                     ||:diagtext:`true` ||
12207|                                                                                     |+-----------------+|
12208+-------------------------------------------------------------------------------------+-------------------+
12209
12210+----------------------------------------------------------------------------------------------+
12211|:warning:`warning:` |nbsp| :diagtext:`bitwise or with non-zero value always evaluates to true`|
12212+----------------------------------------------------------------------------------------------+
12213
12214
12215-Wtautological-compare
12216----------------------
12217Some of the diagnostics controlled by this flag are enabled by default.
12218
12219Also controls `-Wtautological-bitwise-compare`_, `-Wtautological-constant-compare`_, `-Wtautological-objc-bool-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
12220
12221**Diagnostic text:**
12222
12223+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+
12224|:warning:`warning:` |nbsp| |+-------------------------------------------------------------+| |nbsp| :diagtext:`to 1 byte is` |nbsp| |+-----------------------+|
12225|                           ||:diagtext:`aligning a value`                                 ||                                        ||:diagtext:`a no-op`    ||
12226|                           |+-------------------------------------------------------------+|                                        |+-----------------------+|
12227|                           ||:diagtext:`the result of checking whether a value is aligned`||                                        ||:diagtext:`always true`||
12228|                           |+-------------------------------------------------------------+|                                        |+-----------------------+|
12229+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+
12230
12231+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+
12232|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+------------------------------------------+|
12233|                           ||:diagtext:`self-`        ||                                                  ||:diagtext:`a constant`                    ||
12234|                           |+-------------------------+|                                                  |+------------------------------------------+|
12235|                           ||:diagtext:`array` |nbsp| ||                                                  ||:diagtext:`true`                          ||
12236|                           |+-------------------------+|                                                  |+------------------------------------------+|
12237|                           |                           |                                                  ||:diagtext:`false`                         ||
12238|                           |                           |                                                  |+------------------------------------------+|
12239|                           |                           |                                                  ||:diagtext:`'std::strong\_ordering::equal'`||
12240|                           |                           |                                                  |+------------------------------------------+|
12241+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+
12242
12243
12244-Wtautological-constant-compare
12245-------------------------------
12246This diagnostic is enabled by default.
12247
12248Also controls `-Wtautological-constant-out-of-range-compare`_.
12249
12250**Diagnostic text:**
12251
12252+-----------------------------------------------------------------------------------------------------------------------------------+
12253|:warning:`warning:` |nbsp| :diagtext:`converting the result of '?:' with integer constants to a boolean always evaluates to 'true'`|
12254+-----------------------------------------------------------------------------------------------------------------------------------+
12255
12256+-------------------------------------------------------------------------------------------------------------+-------------------+
12257|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean always evaluates to` |nbsp| |+-----------------+|
12258|                                                                                                             ||:diagtext:`false`||
12259|                                                                                                             |+-----------------+|
12260|                                                                                                             ||:diagtext:`true` ||
12261|                                                                                                             |+-----------------+|
12262+-------------------------------------------------------------------------------------------------------------+-------------------+
12263
12264+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
12265|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
12266|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
12267|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
12268|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
12269|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
12270|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
12271|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
12272|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
12273|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
12274+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
12275
12276
12277-Wtautological-constant-in-range-compare
12278----------------------------------------
12279Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
12280
12281
12282-Wtautological-constant-out-of-range-compare
12283--------------------------------------------
12284This diagnostic is enabled by default.
12285
12286**Diagnostic text:**
12287
12288+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
12289|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
12290|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
12291|                                                                      |||:diagtext:`constant` |nbsp| :placeholder:`A`|||                                |||:diagtext:`expression of type` |nbsp| :placeholder:`C`|||                                                     |
12292|                                                                      ||+--------------------------------------------+||                                ||+------------------------------------------------------+||                                                     |
12293|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
12294|                                                                      ||:diagtext:`true`                              ||                                ||:diagtext:`boolean expression`                          ||                                                     |
12295|                                                                      |+----------------------------------------------+|                                |+--------------------------------------------------------+|                                                     |
12296|                                                                      ||:diagtext:`false`                             ||                                |                                                          |                                                     |
12297|                                                                      |+----------------------------------------------+|                                |                                                          |                                                     |
12298+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+
12299
12300
12301-Wtautological-objc-bool-compare
12302--------------------------------
12303This diagnostic is enabled by default.
12304
12305**Diagnostic text:**
12306
12307+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12308|: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`|
12309+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12310
12311
12312-Wtautological-overlap-compare
12313------------------------------
12314**Diagnostic text:**
12315
12316+-----------------------------------------------------------------------------------------+-------------------+
12317|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
12318|                                                                                         ||:diagtext:`false`||
12319|                                                                                         |+-----------------+|
12320|                                                                                         ||:diagtext:`true` ||
12321|                                                                                         |+-----------------+|
12322+-----------------------------------------------------------------------------------------+-------------------+
12323
12324
12325-Wtautological-pointer-compare
12326------------------------------
12327This diagnostic is enabled by default.
12328
12329**Diagnostic text:**
12330
12331+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
12332|: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`|
12333|                                                                    ||:diagtext:`function call`||                                                          ||:diagtext:`not` |nbsp| ||                                        ||:diagtext:`true` ||                                |
12334|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
12335|                                                                    ||:diagtext:`parameter`    ||                                                          ||                       ||                                        ||:diagtext:`false`||                                |
12336|                                                                    |+-------------------------+|                                                          |+-----------------------+|                                        |+-----------------+|                                |
12337+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
12338
12339+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
12340|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
12341|                                                            ||:diagtext:`address of`||                                                          ||:diagtext:`not` |nbsp| ||                                                     ||:diagtext:`true` ||
12342|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
12343|                                                            ||:diagtext:`function`  ||                                                          ||                       ||                                                     ||:diagtext:`false`||
12344|                                                            |+----------------------+|                                                          |+-----------------------+|                                                     |+-----------------+|
12345|                                                            ||:diagtext:`array`     ||                                                          |                         |                                                     |                   |
12346|                                                            |+----------------------+|                                                          |                         |                                                     |                   |
12347+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
12348
12349
12350-Wtautological-type-limit-compare
12351---------------------------------
12352**Diagnostic text:**
12353
12354+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
12355|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
12356|                                                                   ||:placeholder:`D`||                                ||:placeholder:`B`||                                                     |
12357|                                                                   |+----------------+|                                |+----------------+|                                                     |
12358|                                                                   ||:placeholder:`B`||                                ||:placeholder:`D`||                                                     |
12359|                                                                   |+----------------+|                                |+----------------+|                                                     |
12360+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+
12361
12362
12363-Wtautological-undefined-compare
12364--------------------------------
12365This diagnostic is enabled by default.
12366
12367**Diagnostic text:**
12368
12369+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
12370|: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| |+-----------------+|
12371|                                                                                                                                                                               ||:diagtext:`true` ||
12372|                                                                                                                                                                               |+-----------------+|
12373|                                                                                                                                                                               ||:diagtext:`false`||
12374|                                                                                                                                                                               |+-----------------+|
12375+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
12376
12377+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
12378|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
12379|                                                                                                                                                      ||:diagtext:`true` ||
12380|                                                                                                                                                      |+-----------------+|
12381|                                                                                                                                                      ||:diagtext:`false`||
12382|                                                                                                                                                      |+-----------------+|
12383+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
12384
12385
12386-Wtautological-unsigned-enum-zero-compare
12387-----------------------------------------
12388**Diagnostic text:**
12389
12390+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
12391|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
12392|                                                                      ||:placeholder:`D`                    ||                                ||:diagtext:`unsigned enum expression`||                                                     |
12393|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
12394|                                                                      ||:diagtext:`unsigned enum expression`||                                ||:placeholder:`D`                    ||                                                     |
12395|                                                                      |+------------------------------------+|                                |+------------------------------------+|                                                     |
12396+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+
12397
12398
12399-Wtautological-unsigned-zero-compare
12400------------------------------------
12401**Diagnostic text:**
12402
12403+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
12404|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`|
12405|                                                                      ||:placeholder:`D`               ||                                ||:diagtext:`unsigned expression`||                                                     |
12406|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
12407|                                                                      ||:diagtext:`unsigned expression`||                                ||:placeholder:`D`               ||                                                     |
12408|                                                                      |+-------------------------------+|                                |+-------------------------------+|                                                     |
12409+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+
12410
12411
12412-Wtentative-definition-incomplete-type
12413--------------------------------------
12414This diagnostic is enabled by default.
12415
12416**Diagnostic text:**
12417
12418+---------------------------------------------------------------------------------------------------------------------------------------------------+
12419|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
12420+---------------------------------------------------------------------------------------------------------------------------------------------------+
12421
12422
12423-Wthread-safety
12424---------------
12425Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
12426
12427
12428-Wthread-safety-analysis
12429------------------------
12430**Diagnostic text:**
12431
12432+----------------------------------------------------------------------------------------------------------------------------------------------------+
12433|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
12434+----------------------------------------------------------------------------------------------------------------------------------------------------+
12435
12436+---------------------------------------------------------------------------------------------------------------------------------+
12437|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
12438+---------------------------------------------------------------------------------------------------------------------------------+
12439
12440+---------------------------------------------------------------------+
12441|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
12442+---------------------------------------------------------------------+
12443
12444+-----------------------------------------------------------------------------------------------------------------------------------------------+
12445|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
12446+-----------------------------------------------------------------------------------------------------------------------------------------------+
12447
12448+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12449|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
12450+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
12451
12452+------------------------------------------------------------------------------------------------------------------------------------------------------------+
12453|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
12454+------------------------------------------------------------------------------------------------------------------------------------------------------------+
12455
12456+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12457|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
12458+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12459
12460+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12461|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12462|                                                                                                                                                   ||+------------------------------------------+            ||
12463|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12464|                                                                                                                                                   ||+------------------------------------------+            ||
12465|                                                                                                                                                   |+--------------------------------------------------------+|
12466|                                                                                                                                                   ||+------------------------------------------------------+||
12467|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12468|                                                                                                                                                   ||+------------------------------------------------------+||
12469|                                                                                                                                                   |+--------------------------------------------------------+|
12470+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12471
12472+--------------------------------------------------------------------------------------------------------------------------------------------------+
12473|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
12474+--------------------------------------------------------------------------------------------------------------------------------------------------+
12475
12476+------------------------------------------------------------------------------------------------------------------------------------+
12477|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
12478+------------------------------------------------------------------------------------------------------------------------------------+
12479
12480+----------------------------------------------------------------------------------------------------------------------------------+
12481|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
12482+----------------------------------------------------------------------------------------------------------------------------------+
12483
12484+--------------------------------------------------------------------------------------------------------------------------------------------+
12485|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
12486+--------------------------------------------------------------------------------------------------------------------------------------------+
12487
12488+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
12489|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
12490|                                                                                                                                        ||:diagtext:`shared`   ||                                            ||:diagtext:`shared`   ||                          |
12491|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
12492|                                                                                                                                        ||:diagtext:`exclusive`||                                            ||:diagtext:`exclusive`||                          |
12493|                                                                                                                                        |+---------------------+|                                            |+---------------------+|                          |
12494+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
12495
12496+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
12497|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
12498|                           ||:diagtext:`reading`||                                                                                                               ||:diagtext:`any mutex`            ||
12499|                           |+-------------------+|                                                                                                               |+---------------------------------+|
12500|                           ||:diagtext:`writing`||                                                                                                               ||:diagtext:`any mutex exclusively`||
12501|                           |+-------------------+|                                                                                                               |+---------------------------------+|
12502+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+
12503
12504+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12505|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12506|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
12507|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12508|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
12509|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
12510|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
12511|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12512|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
12513|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
12514+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12515
12516+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
12517|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+|
12518|                           ||:diagtext:`reading`||                                                                                                ||:diagtext:`any mutex`            ||
12519|                           |+-------------------+|                                                                                                |+---------------------------------+|
12520|                           ||:diagtext:`writing`||                                                                                                ||:diagtext:`any mutex exclusively`||
12521|                           |+-------------------+|                                                                                                |+---------------------------------+|
12522+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+
12523
12524+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12525|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12526|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
12527|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12528|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
12529|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
12530|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
12531|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12532|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
12533|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
12534+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12535
12536
12537-Wthread-safety-attributes
12538--------------------------
12539**Diagnostic text:**
12540
12541+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12542|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
12543+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12544
12545+-----------------------------------------------------------------------------------------------------------------------------------------------+
12546|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability' attribute`|
12547+-----------------------------------------------------------------------------------------------------------------------------------------------+
12548
12549+----------------------------------------------------------------------------------------------------------------------------------+
12550|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
12551+----------------------------------------------------------------------------------------------------------------------------------+
12552
12553+------------------------------------------------------------------------------------------------------------------------------------+
12554|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
12555+------------------------------------------------------------------------------------------------------------------------------------+
12556
12557+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12558|: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`|
12559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12560
12561+----------------------------------------------------------------------------------------------------------------------------------------------------------+
12562|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`|
12563+----------------------------------------------------------------------------------------------------------------------------------------------------------+
12564
12565
12566-Wthread-safety-beta
12567--------------------
12568**Diagnostic text:**
12569
12570+------------------------------------------------------------------+
12571|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
12572+------------------------------------------------------------------+
12573
12574
12575-Wthread-safety-negative
12576------------------------
12577**Diagnostic text:**
12578
12579+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12580|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
12581+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12582
12583
12584-Wthread-safety-precise
12585-----------------------
12586**Diagnostic text:**
12587
12588+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12589|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12590|                                                                                                                                                   ||+------------------------------------------+            ||
12591|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12592|                                                                                                                                                   ||+------------------------------------------+            ||
12593|                                                                                                                                                   |+--------------------------------------------------------+|
12594|                                                                                                                                                   ||+------------------------------------------------------+||
12595|                                                                                                                                                   |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12596|                                                                                                                                                   ||+------------------------------------------------------+||
12597|                                                                                                                                                   |+--------------------------------------------------------+|
12598+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12599
12600+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12601|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12602|                           ||:diagtext:`reading`||                                                                                                                                       ||+------------------------------------------+            ||
12603|                           |+-------------------+|                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12604|                           ||:diagtext:`writing`||                                                                                                                                       ||+------------------------------------------+            ||
12605|                           |+-------------------+|                                                                                                                                       |+--------------------------------------------------------+|
12606|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
12607|                           |                     |                                                                                                                                       |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12608|                           |                     |                                                                                                                                       ||+------------------------------------------------------+||
12609|                           |                     |                                                                                                                                       |+--------------------------------------------------------+|
12610+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12611
12612+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12613|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12614|                           ||:diagtext:`reading`||                                                                                                                        ||+------------------------------------------+            ||
12615|                           |+-------------------+|                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12616|                           ||:diagtext:`writing`||                                                                                                                        ||+------------------------------------------+            ||
12617|                           |+-------------------+|                                                                                                                        |+--------------------------------------------------------+|
12618|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
12619|                           |                     |                                                                                                                        |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12620|                           |                     |                                                                                                                        ||+------------------------------------------------------+||
12621|                           |                     |                                                                                                                        |+--------------------------------------------------------+|
12622+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12623
12624
12625-Wthread-safety-reference
12626-------------------------
12627**Diagnostic text:**
12628
12629+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12630|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12631|                                                                                                                                                                ||+------------------------------------------+            ||
12632|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12633|                                                                                                                                                                ||+------------------------------------------+            ||
12634|                                                                                                                                                                |+--------------------------------------------------------+|
12635|                                                                                                                                                                ||+------------------------------------------------------+||
12636|                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12637|                                                                                                                                                                ||+------------------------------------------------------+||
12638|                                                                                                                                                                |+--------------------------------------------------------+|
12639+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12640
12641+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12642|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
12643|                                                                                                                                                                                ||+------------------------------------------+            ||
12644|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`'`|            ||
12645|                                                                                                                                                                                ||+------------------------------------------+            ||
12646|                                                                                                                                                                                |+--------------------------------------------------------+|
12647|                                                                                                                                                                                ||+------------------------------------------------------+||
12648|                                                                                                                                                                                |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
12649|                                                                                                                                                                                ||+------------------------------------------------------+||
12650|                                                                                                                                                                                |+--------------------------------------------------------+|
12651+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
12652
12653
12654-Wthread-safety-verbose
12655-----------------------
12656**Diagnostic text:**
12657
12658+---------------------------------------------------------------------+
12659|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
12660+---------------------------------------------------------------------+
12661
12662
12663-Wtrigraphs
12664-----------
12665This diagnostic is enabled by default.
12666
12667**Diagnostic text:**
12668
12669+-----------------------------------------------------------------------------------------------------+
12670|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
12671+-----------------------------------------------------------------------------------------------------+
12672
12673+------------------------------------------------------------------+
12674|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
12675+------------------------------------------------------------------+
12676
12677+-------------------------------------------------------+
12678|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
12679+-------------------------------------------------------+
12680
12681+-------------------------------------------------------------------------------+
12682|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
12683+-------------------------------------------------------------------------------+
12684
12685
12686-Wtype-limits
12687-------------
12688Synonym for `-Wtautological-constant-in-range-compare`_.
12689
12690
12691-Wtype-limits
12692-------------
12693Synonym for `-Wtautological-constant-in-range-compare`_.
12694
12695
12696-Wtype-safety
12697-------------
12698This diagnostic is enabled by default.
12699
12700**Diagnostic text:**
12701
12702+----------------------------------------------------------------------------------------------------------------------------+
12703|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
12704+----------------------------------------------------------------------------------------------------------------------------+
12705
12706+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
12707|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
12708|                                                                                                                                                                                   ||+-------------------------------------------------+||
12709|                                                                                                                                                                                   |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
12710|                                                                                                                                                                                   ||+-------------------------------------------------+||
12711|                                                                                                                                                                                   |+---------------------------------------------------+|
12712|                                                                                                                                                                                   ||                                                   ||
12713|                                                                                                                                                                                   |+---------------------------------------------------+|
12714+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
12715
12716+---------------------------------------------------------------------------------------------------+
12717|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
12718+---------------------------------------------------------------------------------------------------+
12719
12720
12721-Wtypedef-redefinition
12722----------------------
12723This diagnostic is enabled by default.
12724
12725**Diagnostic text:**
12726
12727+--------------------------------------------------------------------------------------------------------------------------+
12728|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
12729+--------------------------------------------------------------------------------------------------------------------------+
12730
12731
12732-Wtypename-missing
12733------------------
12734This diagnostic is enabled by default.
12735
12736**Diagnostic text:**
12737
12738+-------------------------------------------------------------------------------------------------------------------------------------+
12739|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
12740+-------------------------------------------------------------------------------------------------------------------------------------+
12741
12742
12743-Wunable-to-open-stats-file
12744---------------------------
12745This diagnostic is enabled by default.
12746
12747**Diagnostic text:**
12748
12749+-------------------------------------------------------------------------------------------------------------------------------------------+
12750|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
12751+-------------------------------------------------------------------------------------------------------------------------------------------+
12752
12753
12754-Wunavailable-declarations
12755--------------------------
12756This diagnostic is enabled by default.
12757
12758**Diagnostic text:**
12759
12760+----------------------------------------------------------------------------------------------------------------------+
12761|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
12762+----------------------------------------------------------------------------------------------------------------------+
12763
12764
12765-Wundeclared-selector
12766---------------------
12767**Diagnostic text:**
12768
12769+----------------------------------------------------------------------------------+
12770|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
12771+----------------------------------------------------------------------------------+
12772
12773+-------------------------------------------------------------------------------------------------------------------------------------------------+
12774|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
12775+-------------------------------------------------------------------------------------------------------------------------------------------------+
12776
12777
12778-Wundef
12779-------
12780**Diagnostic text:**
12781
12782+---------------------------------------------------------------------------------------------+
12783|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
12784+---------------------------------------------------------------------------------------------+
12785
12786
12787-Wundefined-bool-conversion
12788---------------------------
12789This diagnostic is enabled by default.
12790
12791**Diagnostic text:**
12792
12793+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12794|: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`|
12795+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12796
12797+-----------------------------------------------------------------------------------------------------------------------------------------------+
12798|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
12799+-----------------------------------------------------------------------------------------------------------------------------------------------+
12800
12801
12802-Wundefined-func-template
12803-------------------------
12804**Diagnostic text:**
12805
12806+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12807|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
12808+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12809
12810
12811-Wundefined-inline
12812------------------
12813This diagnostic is enabled by default.
12814
12815**Diagnostic text:**
12816
12817+----------------------------------------------------------------------------------------------------------------+
12818|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
12819+----------------------------------------------------------------------------------------------------------------+
12820
12821
12822-Wundefined-internal
12823--------------------
12824This diagnostic is enabled by default.
12825
12826**Diagnostic text:**
12827
12828+---------------------------+----------------------+-----------------------------------------------------------------------------------+
12829|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
12830|                           ||:diagtext:`function`||                                                                                   |
12831|                           |+--------------------+|                                                                                   |
12832|                           ||:diagtext:`variable`||                                                                                   |
12833|                           |+--------------------+|                                                                                   |
12834+---------------------------+----------------------+-----------------------------------------------------------------------------------+
12835
12836
12837-Wundefined-internal-type
12838-------------------------
12839**Diagnostic text:**
12840
12841+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
12842|: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`|
12843|                                                                                                         ||:diagtext:`function`||                                                                                  |
12844|                                                                                                         |+--------------------+|                                                                                  |
12845|                                                                                                         ||:diagtext:`variable`||                                                                                  |
12846|                                                                                                         |+--------------------+|                                                                                  |
12847+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
12848
12849
12850-Wundefined-reinterpret-cast
12851----------------------------
12852**Diagnostic text:**
12853
12854+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12855|: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`|
12856+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12857
12858+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12859|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
12860+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12861
12862
12863-Wundefined-var-template
12864------------------------
12865This diagnostic is enabled by default.
12866
12867**Diagnostic text:**
12868
12869+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12870|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
12871+---------------------------------------------------------------------------------------------------------------------------------------------------------+
12872
12873
12874-Wunderaligned-exception-object
12875-------------------------------
12876This diagnostic is enabled by default.
12877
12878**Diagnostic text:**
12879
12880+---------------------------------------------------------------------------+
12881|:warning:`warning:` |nbsp| :diagtext:`underaligned exception object thrown`|
12882+---------------------------------------------------------------------------+
12883
12884
12885-Wunevaluated-expression
12886------------------------
12887This diagnostic is enabled by default.
12888
12889Also controls `-Wpotentially-evaluated-expression`_.
12890
12891**Diagnostic text:**
12892
12893+-----------------------------------------------------------------------------------------------------------+
12894|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
12895+-----------------------------------------------------------------------------------------------------------+
12896
12897
12898-Wunguarded-availability
12899------------------------
12900Some of the diagnostics controlled by this flag are enabled by default.
12901
12902Also controls `-Wunguarded-availability-new`_.
12903
12904**Diagnostic text:**
12905
12906+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
12907|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
12908+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
12909
12910
12911-Wunguarded-availability-new
12912----------------------------
12913This diagnostic is enabled by default.
12914
12915**Diagnostic text:**
12916
12917+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
12918|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
12919+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
12920
12921
12922-Wunicode
12923---------
12924This diagnostic is enabled by default.
12925
12926**Diagnostic text:**
12927
12928+-------------------------------------------------------------------------------------------------------------------+
12929|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
12930+-------------------------------------------------------------------------------------------------------------------+
12931
12932+-------------------------------------------------------------------------------------------------------------------------------------------------------+
12933|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
12934+-------------------------------------------------------------------------------------------------------------------------------------------------------+
12935
12936+-----------------------------------------------------------------------------------------------+
12937|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
12938+-----------------------------------------------------------------------------------------------+
12939
12940+--------------------------------------------------------------------------------------------------------------------------------------+
12941|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
12942+--------------------------------------------------------------------------------------------------------------------------------------+
12943
12944+---------------------------------------------------------------------------------------------+
12945|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
12946+---------------------------------------------------------------------------------------------+
12947
12948
12949-Wunicode-homoglyph
12950-------------------
12951This diagnostic is enabled by default.
12952
12953**Diagnostic text:**
12954
12955+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12956|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`|
12957+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
12958
12959
12960-Wunicode-whitespace
12961--------------------
12962This diagnostic is enabled by default.
12963
12964**Diagnostic text:**
12965
12966+-------------------------------------------------------------------------------+
12967|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
12968+-------------------------------------------------------------------------------+
12969
12970
12971-Wunicode-zero-width
12972--------------------
12973This diagnostic is enabled by default.
12974
12975**Diagnostic text:**
12976
12977+----------------------------------------------------------------------------------------------------------------------------------------------------+
12978|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`|
12979+----------------------------------------------------------------------------------------------------------------------------------------------------+
12980
12981
12982-Wuninitialized
12983---------------
12984Some of the diagnostics controlled by this flag are enabled by default.
12985
12986Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
12987
12988**Diagnostic text:**
12989
12990+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12991|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
12992+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
12993
12994+-----------------------------------------------------------------------------------------------------------------------+
12995|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
12996+-----------------------------------------------------------------------------------------------------------------------+
12997
12998+--------------------------------------------------------------------------------------------------------------------------------------+
12999|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
13000+--------------------------------------------------------------------------------------------------------------------------------------+
13001
13002+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+
13003|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-------------------------+| |nbsp| :diagtext:`when captured by block`|
13004|                                                                                                                   ||:diagtext:`uninitialized`||                                          |
13005|                                                                                                                   |+-------------------------+|                                          |
13006|                                                                                                                   ||:diagtext:`null`         ||                                          |
13007|                                                                                                                   |+-------------------------+|                                          |
13008+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+
13009
13010+---------------------------------------------------------------------------------------------------------------------------------------------------+
13011|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
13012+---------------------------------------------------------------------------------------------------------------------------------------------------+
13013
13014+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
13015|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
13016+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
13017
13018+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
13019|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
13020|                                                                                                                        ||:diagtext:`used here`        ||
13021|                                                                                                                        |+-----------------------------+|
13022|                                                                                                                        ||:diagtext:`captured by block`||
13023|                                                                                                                        |+-----------------------------+|
13024+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
13025
13026
13027-Wunknown-argument
13028------------------
13029This diagnostic is enabled by default.
13030
13031**Diagnostic text:**
13032
13033+-----------------------------------------------------------------------------------------------------------+
13034|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
13035+-----------------------------------------------------------------------------------------------------------+
13036
13037+--------------------------------------------------------------------------------------------------------------------------------------------------------+
13038|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
13039+--------------------------------------------------------------------------------------------------------------------------------------------------------+
13040
13041
13042-Wunknown-attributes
13043--------------------
13044This diagnostic is enabled by default.
13045
13046**Diagnostic text:**
13047
13048+-----------------------------------------------------------------------------------------------------------+
13049|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
13050+-----------------------------------------------------------------------------------------------------------+
13051
13052
13053-Wunknown-cuda-version
13054----------------------
13055This diagnostic is enabled by default.
13056
13057**Diagnostic text:**
13058
13059+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13060|:warning:`warning:` |nbsp| :diagtext:`Unknown CUDA version` |nbsp| :placeholder:`A`:diagtext:`. Assuming the latest supported version` |nbsp| :placeholder:`B`|
13061+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13062
13063
13064-Wunknown-escape-sequence
13065-------------------------
13066This diagnostic is enabled by default.
13067
13068**Diagnostic text:**
13069
13070+-----------------------------------------------------------------------------------------------+
13071|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
13072+-----------------------------------------------------------------------------------------------+
13073
13074
13075-Wunknown-pragmas
13076-----------------
13077Some of the diagnostics controlled by this flag are enabled by default.
13078
13079**Diagnostic text:**
13080
13081+------------------------------------------------------------------------------------+
13082|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
13083+------------------------------------------------------------------------------------+
13084
13085+--------------------------------------------------------------------------+
13086|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
13087+--------------------------------------------------------------------------+
13088
13089+-----------------------------------------------------------------------+
13090|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
13091+-----------------------------------------------------------------------+
13092
13093+--------------------------------------------------------------------------------------------+
13094|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
13095+--------------------------------------------------------------------------------------------+
13096
13097+--------------------------------------------------------------------------------------------------------------------------+
13098|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
13099+--------------------------------------------------------------------------------------------------------------------------+
13100
13101+----------------------------------------------------------------------------------------------+
13102|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
13103+----------------------------------------------------------------------------------------------+
13104
13105+----------------------------------------------------------------------------+
13106|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
13107+----------------------------------------------------------------------------+
13108
13109+----------------------------------------------------------------------------------------------------------------+
13110|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected '`:placeholder:`A`:diagtext:`'`|
13111+----------------------------------------------------------------------------------------------------------------+
13112
13113+------------------------------------------------------------------------------------------------------------------------------------------------+
13114|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set invalid value '`:placeholder:`A`:diagtext:`', only 'UTF-8' is supported`|
13115+------------------------------------------------------------------------------------------------------------------------------------------------+
13116
13117+-------------------------------------------------------------------------------------------------+
13118|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected 'push' or 'pop'`|
13119+-------------------------------------------------------------------------------------------------+
13120
13121+-------------------------------------------------------------+
13122|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
13123+-------------------------------------------------------------+
13124
13125+----------------------------------------------------------------------------------------------------+
13126|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
13127+----------------------------------------------------------------------------------------------------+
13128
13129+--------------------------------------------------------------------------------------+
13130|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
13131+--------------------------------------------------------------------------------------+
13132
13133+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13134|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
13135+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13136
13137+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13138|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
13139+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13140
13141+----------------------------------------------------------------------------------------------+
13142|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
13143+----------------------------------------------------------------------------------------------+
13144
13145+--------------------------------------------------------------------------------+
13146|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
13147+--------------------------------------------------------------------------------+
13148
13149+----------------------------------------------------------------------------------------------------+
13150|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
13151+----------------------------------------------------------------------------------------------------+
13152
13153+-----------------------------------------------------------------------------------------------------------------------------------------------+
13154|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
13155+-----------------------------------------------------------------------------------------------------------------------------------------------+
13156
13157+----------------------------------------------------------------------------------------------------+
13158|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
13159+----------------------------------------------------------------------------------------------------+
13160
13161
13162-Wunknown-sanitizers
13163--------------------
13164This diagnostic is enabled by default.
13165
13166**Diagnostic text:**
13167
13168+-----------------------------------------------------------------------------------------------+
13169|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
13170+-----------------------------------------------------------------------------------------------+
13171
13172
13173-Wunknown-warning-option
13174------------------------
13175This diagnostic is enabled by default.
13176
13177**Diagnostic text:**
13178
13179+----------------------------------------------------------------------------------------------------+
13180|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
13181+----------------------------------------------------------------------------------------------------+
13182
13183+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
13184|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
13185|                                                      ||:diagtext:`warning`||                                                         ||                                                            ||
13186|                                                      |+-------------------+|                                                         |+------------------------------------------------------------+|
13187|                                                      ||:diagtext:`remark` ||                                                         ||+----------------------------------------------------------+||
13188|                                                      |+-------------------+|                                                         |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
13189|                                                      |                     |                                                         ||+----------------------------------------------------------+||
13190|                                                      |                     |                                                         |+------------------------------------------------------------+|
13191+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
13192
13193+-------------------------------------------------------------------------------------------------------------------------------------------+
13194|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
13195+-------------------------------------------------------------------------------------------------------------------------------------------+
13196
13197
13198-Wunnamed-type-template-args
13199----------------------------
13200Some of the diagnostics controlled by this flag are enabled by default.
13201
13202Also controls `-Wc++98-compat-unnamed-type-template-args`_.
13203
13204**Diagnostic text:**
13205
13206+--------------------------------------------------------------------------+
13207|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
13208+--------------------------------------------------------------------------+
13209
13210
13211-Wunneeded-internal-declaration
13212-------------------------------
13213**Diagnostic text:**
13214
13215+---------------------------+----------------------+---------------------------------------------------------------------------------+
13216|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
13217|                           ||:diagtext:`function`||                                                                                 |
13218|                           |+--------------------+|                                                                                 |
13219|                           ||:diagtext:`variable`||                                                                                 |
13220|                           |+--------------------+|                                                                                 |
13221+---------------------------+----------------------+---------------------------------------------------------------------------------+
13222
13223+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13224|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
13225+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13226
13227
13228-Wunneeded-member-function
13229--------------------------
13230**Diagnostic text:**
13231
13232+---------------------------------------------------------------------------------------------------------------------------------------+
13233|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
13234+---------------------------------------------------------------------------------------------------------------------------------------+
13235
13236
13237-Wunreachable-code
13238------------------
13239Also controls `-Wunreachable-code-loop-increment`_.
13240
13241**Diagnostic text:**
13242
13243+------------------------------------------------------------------+
13244|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
13245+------------------------------------------------------------------+
13246
13247
13248-Wunreachable-code-aggressive
13249-----------------------------
13250Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
13251
13252
13253-Wunreachable-code-break
13254------------------------
13255**Diagnostic text:**
13256
13257+---------------------------------------------------------------------+
13258|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
13259+---------------------------------------------------------------------+
13260
13261
13262-Wunreachable-code-loop-increment
13263---------------------------------
13264**Diagnostic text:**
13265
13266+-------------------------------------------------------------------------------------------------+
13267|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
13268+-------------------------------------------------------------------------------------------------+
13269
13270
13271-Wunreachable-code-return
13272-------------------------
13273**Diagnostic text:**
13274
13275+----------------------------------------------------------------------+
13276|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
13277+----------------------------------------------------------------------+
13278
13279
13280-Wunsequenced
13281-------------
13282This diagnostic is enabled by default.
13283
13284**Diagnostic text:**
13285
13286+----------------------------------------------------------------------------------------------------+
13287|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
13288+----------------------------------------------------------------------------------------------------+
13289
13290+-----------------------------------------------------------------------------------------------------+
13291|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
13292+-----------------------------------------------------------------------------------------------------+
13293
13294
13295-Wunsupported-abs
13296-----------------
13297This diagnostic is enabled by default.
13298
13299**Diagnostic text:**
13300
13301+-----------------------------------------------------------------------------------------------------------------------------------------------+
13302|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
13303+-----------------------------------------------------------------------------------------------------------------------------------------------+
13304
13305+-------------------------------------------------------------------------------------------------------------------------------------------------+
13306|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
13307+-------------------------------------------------------------------------------------------------------------------------------------------------+
13308
13309
13310-Wunsupported-availability-guard
13311--------------------------------
13312This diagnostic is enabled by default.
13313
13314**Diagnostic text:**
13315
13316+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
13317|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
13318|                           ||:diagtext:`@available`            ||                                                              ||:diagtext:`@available`            ||                     |
13319|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
13320|                           ||:diagtext:`\_\_builtin\_available`||                                                              ||:diagtext:`\_\_builtin\_available`||                     |
13321|                           |+----------------------------------+|                                                              |+----------------------------------+|                     |
13322+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
13323
13324
13325-Wunsupported-cb
13326----------------
13327This diagnostic is enabled by default.
13328
13329**Diagnostic text:**
13330
13331+--------------------------------------------------------------------------------------------------------------------------------------------------------+
13332|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
13333+--------------------------------------------------------------------------------------------------------------------------------------------------------+
13334
13335
13336-Wunsupported-dll-base-class-template
13337-------------------------------------
13338**Diagnostic text:**
13339
13340+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
13341|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
13342|                                                                           ||:diagtext:`already instantiated`  ||                                                                              |
13343|                                                                           |+----------------------------------+|                                                                              |
13344|                                                                           ||:diagtext:`explicitly specialized`||                                                                              |
13345|                                                                           |+----------------------------------+|                                                                              |
13346+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
13347
13348
13349-Wunsupported-friend
13350--------------------
13351This diagnostic is enabled by default.
13352
13353**Diagnostic text:**
13354
13355+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13356|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
13357+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13358
13359+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13360|: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`|
13361+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13362
13363
13364-Wunsupported-gpopt
13365-------------------
13366This diagnostic is enabled by default.
13367
13368**Diagnostic text:**
13369
13370+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
13371|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
13372|                                                                                                  ||                                         ||                      |
13373|                                                                                                  |+-----------------------------------------+|                      |
13374|                                                                                                  ||:diagtext:`the implicit usage of` |nbsp| ||                      |
13375|                                                                                                  |+-----------------------------------------+|                      |
13376+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
13377
13378
13379-Wunsupported-nan
13380-----------------
13381This diagnostic is enabled by default.
13382
13383**Diagnostic text:**
13384
13385+-----------------------------------------------------------------------------------------------------------------------------------------------+
13386|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
13387+-----------------------------------------------------------------------------------------------------------------------------------------------+
13388
13389+-------------------------------------------------------------------------------------------------------------------------------------------------+
13390|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
13391+-------------------------------------------------------------------------------------------------------------------------------------------------+
13392
13393
13394-Wunsupported-target-opt
13395------------------------
13396This diagnostic is enabled by default.
13397
13398**Diagnostic text:**
13399
13400+---------------------------------------------------------------------------------------------------------------------------------------------------------+
13401|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
13402+---------------------------------------------------------------------------------------------------------------------------------------------------------+
13403
13404
13405-Wunsupported-visibility
13406------------------------
13407This diagnostic is enabled by default.
13408
13409**Diagnostic text:**
13410
13411+------------------------------------------------------------------------------------------------------+
13412|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
13413+------------------------------------------------------------------------------------------------------+
13414
13415
13416-Wunusable-partial-specialization
13417---------------------------------
13418This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
13419
13420**Diagnostic text:**
13421
13422+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
13423|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
13424|                       ||:diagtext:`class`   ||                                                                    ||:diagtext:`a template parameter`||                                                                                          |
13425|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
13426|                       ||:diagtext:`variable`||                                                                    ||:diagtext:`template parameters` ||                                                                                          |
13427|                       |+--------------------+|                                                                    |+--------------------------------+|                                                                                          |
13428+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
13429
13430
13431-Wunused
13432--------
13433Some of the diagnostics controlled by this flag are enabled by default.
13434
13435Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
13436
13437
13438-Wunused-argument
13439-----------------
13440This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
13441
13442-Wunused-command-line-argument
13443------------------------------
13444This diagnostic is enabled by default.
13445
13446**Diagnostic text:**
13447
13448+-------------------------------------------------------------------------------------------------------------------------------+
13449|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
13450+-------------------------------------------------------------------------------------------------------------------------------+
13451
13452+---------------------------------------------------------------------------------------------------------------+
13453|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
13454+---------------------------------------------------------------------------------------------------------------+
13455
13456+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
13457|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
13458|                                                                                                    ||+------------------------------------------------------------------+||
13459|                                                                                                    ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
13460|                                                                                                    ||+------------------------------------------------------------------+||
13461|                                                                                                    |+--------------------------------------------------------------------+|
13462|                                                                                                    ||                                                                    ||
13463|                                                                                                    |+--------------------------------------------------------------------+|
13464+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
13465
13466+----------------------------------------------------------------------------------------------------------------+
13467|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
13468+----------------------------------------------------------------------------------------------------------------+
13469
13470+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
13471|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
13472|                                                                                      ||+-------------------------------------------------------------------------+||
13473|                                                                                      ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
13474|                                                                                      ||+-------------------------------------------------------------------------+||
13475|                                                                                      |+---------------------------------------------------------------------------+|
13476|                                                                                      ||                                                                           ||
13477|                                                                                      |+---------------------------------------------------------------------------+|
13478+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
13479
13480+---------------------------------------------------------------------------------------------------------+
13481|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
13482+---------------------------------------------------------------------------------------------------------+
13483
13484+----------------------------------------------------------------------------------------------------------------------+
13485|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
13486+----------------------------------------------------------------------------------------------------------------------+
13487
13488+--------------------------------------------------------------------------------------+
13489|:warning:`warning:` |nbsp| :diagtext:`ignoring -fdiscard-value-names for LLVM Bitcode`|
13490+--------------------------------------------------------------------------------------+
13491
13492
13493-Wunused-comparison
13494-------------------
13495This diagnostic is enabled by default.
13496
13497**Diagnostic text:**
13498
13499+---------------------------+------------------------+--------------------------------------------+
13500|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`|
13501|                           ||:diagtext:`equality`  ||                                            |
13502|                           |+----------------------+|                                            |
13503|                           ||:diagtext:`inequality`||                                            |
13504|                           |+----------------------+|                                            |
13505|                           ||:diagtext:`relational`||                                            |
13506|                           |+----------------------+|                                            |
13507|                           ||:diagtext:`three-way` ||                                            |
13508|                           |+----------------------+|                                            |
13509+---------------------------+------------------------+--------------------------------------------+
13510
13511
13512-Wunused-const-variable
13513-----------------------
13514**Diagnostic text:**
13515
13516+------------------------------------------------------------------------------+
13517|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
13518+------------------------------------------------------------------------------+
13519
13520
13521-Wunused-exception-parameter
13522----------------------------
13523**Diagnostic text:**
13524
13525+-----------------------------------------------------------------------------------------+
13526|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
13527+-----------------------------------------------------------------------------------------+
13528
13529
13530-Wunused-function
13531-----------------
13532Also controls `-Wunneeded-internal-declaration`_.
13533
13534**Diagnostic text:**
13535
13536+------------------------------------------------------------------------------+
13537|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
13538+------------------------------------------------------------------------------+
13539
13540
13541-Wunused-getter-return-value
13542----------------------------
13543This diagnostic is enabled by default.
13544
13545**Diagnostic text:**
13546
13547+------------------------------------------------------------------------------------------------------------------+
13548|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
13549+------------------------------------------------------------------------------------------------------------------+
13550
13551
13552-Wunused-label
13553--------------
13554**Diagnostic text:**
13555
13556+---------------------------------------------------------------------------+
13557|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
13558+---------------------------------------------------------------------------+
13559
13560
13561-Wunused-lambda-capture
13562-----------------------
13563**Diagnostic text:**
13564
13565+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
13566|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
13567|                                                                                                               ||:diagtext:`used`                                ||
13568|                                                                                                               |+------------------------------------------------+|
13569|                                                                                                               ||:diagtext:`required to be captured for this use`||
13570|                                                                                                               |+------------------------------------------------+|
13571+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
13572
13573
13574-Wunused-local-typedef
13575----------------------
13576**Diagnostic text:**
13577
13578+-----------------------------------------------------+------------------------+------------------------+
13579|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
13580|                                                     ||:diagtext:`typedef`   ||                        |
13581|                                                     |+----------------------+|                        |
13582|                                                     ||:diagtext:`type alias`||                        |
13583|                                                     |+----------------------+|                        |
13584+-----------------------------------------------------+------------------------+------------------------+
13585
13586
13587-Wunused-local-typedefs
13588-----------------------
13589Synonym for `-Wunused-local-typedef`_.
13590
13591
13592-Wunused-macros
13593---------------
13594**Diagnostic text:**
13595
13596+--------------------------------------------------------+
13597|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
13598+--------------------------------------------------------+
13599
13600
13601-Wunused-member-function
13602------------------------
13603Also controls `-Wunneeded-member-function`_.
13604
13605**Diagnostic text:**
13606
13607+-------------------------------------------------------------------------------------+
13608|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
13609+-------------------------------------------------------------------------------------+
13610
13611
13612-Wunused-parameter
13613------------------
13614**Diagnostic text:**
13615
13616+-------------------------------------------------------------------------------+
13617|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
13618+-------------------------------------------------------------------------------+
13619
13620
13621-Wunused-private-field
13622----------------------
13623**Diagnostic text:**
13624
13625+-----------------------------------------------------------------------------------------------------------+
13626|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
13627+-----------------------------------------------------------------------------------------------------------+
13628
13629
13630-Wunused-property-ivar
13631----------------------
13632**Diagnostic text:**
13633
13634+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
13635|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
13636+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
13637
13638
13639-Wunused-result
13640---------------
13641This diagnostic is enabled by default.
13642
13643**Diagnostic text:**
13644
13645+-------------------------------------------------------------------------------------------------------------------------------------------+
13646|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
13647+-------------------------------------------------------------------------------------------------------------------------------------------+
13648
13649+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13650|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`|
13651+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13652
13653
13654-Wunused-template
13655-----------------
13656Also controls `-Wunneeded-internal-declaration`_.
13657
13658**Diagnostic text:**
13659
13660+-----------------------------------------------------+----------------------+----------------------------------------------------+
13661|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
13662|                                                     ||:diagtext:`function`||                                                    |
13663|                                                     |+--------------------+|                                                    |
13664|                                                     ||:diagtext:`variable`||                                                    |
13665|                                                     |+--------------------+|                                                    |
13666+-----------------------------------------------------+----------------------+----------------------------------------------------+
13667
13668
13669-Wunused-value
13670--------------
13671This diagnostic is enabled by default.
13672
13673Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
13674
13675**Diagnostic text:**
13676
13677+-------------------------------------------------------------------------------------------------------------------------------------------+
13678|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
13679+-------------------------------------------------------------------------------------------------------------------------------------------+
13680
13681+-----------------------------------------------------------------------------------------------------------------------------------------------------+
13682|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
13683+-----------------------------------------------------------------------------------------------------------------------------------------------------+
13684
13685+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13686|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`|
13687+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13688
13689+----------------------------------------------------------------------------------------------------------------------------+
13690|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
13691+----------------------------------------------------------------------------------------------------------------------------+
13692
13693+---------------------------------------------------------------+
13694|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
13695+---------------------------------------------------------------+
13696
13697+-----------------------------------------------------------------------------------------------+
13698|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
13699+-----------------------------------------------------------------------------------------------+
13700
13701
13702-Wunused-variable
13703-----------------
13704Also controls `-Wunused-const-variable`_.
13705
13706**Diagnostic text:**
13707
13708+------------------------------------------------------------------------------+
13709|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
13710+------------------------------------------------------------------------------+
13711
13712
13713-Wunused-volatile-lvalue
13714------------------------
13715This diagnostic is enabled by default.
13716
13717**Diagnostic text:**
13718
13719+----------------------------------------------------------------------------------------------------------------+
13720|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
13721+----------------------------------------------------------------------------------------------------------------+
13722
13723
13724-Wused-but-marked-unused
13725------------------------
13726**Diagnostic text:**
13727
13728+---------------------------------------------------------------------------------------------+
13729|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
13730+---------------------------------------------------------------------------------------------+
13731
13732
13733-Wuser-defined-literals
13734-----------------------
13735This diagnostic is enabled by default.
13736
13737**Diagnostic text:**
13738
13739+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
13740|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
13741|                                                                                                        ||:diagtext:`; no literal will invoke this operator`||
13742|                                                                                                        |+--------------------------------------------------+|
13743|                                                                                                        ||                                                  ||
13744|                                                                                                        |+--------------------------------------------------+|
13745+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
13746
13747
13748-Wuser-defined-warnings
13749-----------------------
13750This diagnostic is enabled by default.
13751
13752**Diagnostic text:**
13753
13754The text of this diagnostic is not controlled by Clang.
13755
13756
13757-Wvarargs
13758---------
13759This diagnostic is enabled by default.
13760
13761**Diagnostic text:**
13762
13763+-----------------------------------------------------------------------------------------------------+
13764|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
13765+-----------------------------------------------------------------------------------------------------+
13766
13767+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13768|: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`|
13769+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13770
13771+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
13772|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
13773|                                                      ||:diagtext:`an object that undergoes default argument promotion`||                                                         |
13774|                                                      |+---------------------------------------------------------------+|                                                         |
13775|                                                      ||:diagtext:`an object of reference type`                        ||                                                         |
13776|                                                      |+---------------------------------------------------------------+|                                                         |
13777|                                                      ||:diagtext:`a parameter declared with the 'register' keyword`   ||                                                         |
13778|                                                      |+---------------------------------------------------------------+|                                                         |
13779+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
13780
13781
13782-Wvariadic-macros
13783-----------------
13784Some of the diagnostics controlled by this flag are enabled by default.
13785
13786**Diagnostic text:**
13787
13788+--------------------------------------------------------------------------------+
13789|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
13790+--------------------------------------------------------------------------------+
13791
13792+-----------------------------------------------------------------------------------------------------------+
13793|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
13794+-----------------------------------------------------------------------------------------------------------+
13795
13796+------------------------------------------------------------------------+
13797|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
13798+------------------------------------------------------------------------+
13799
13800
13801-Wvec-elem-size
13802---------------
13803This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
13804
13805**Diagnostic text:**
13806
13807+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13808|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
13809+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13810
13811
13812-Wvector-conversion
13813-------------------
13814**Diagnostic text:**
13815
13816+------------------------------------------------------------------------+----------------------------------------------------------------+
13817|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
13818|                                                                        ||:diagtext:`assigning to different types`                      ||
13819|                                                                        |+--------------------------------------------------------------+|
13820|                                                                        ||:diagtext:`passing to parameter of different type`            ||
13821|                                                                        |+--------------------------------------------------------------+|
13822|                                                                        ||:diagtext:`returning from function with different return type`||
13823|                                                                        |+--------------------------------------------------------------+|
13824|                                                                        ||:diagtext:`converting between types`                          ||
13825|                                                                        |+--------------------------------------------------------------+|
13826|                                                                        ||:diagtext:`initializing with expression of different type`    ||
13827|                                                                        |+--------------------------------------------------------------+|
13828|                                                                        ||:diagtext:`sending to parameter of different type`            ||
13829|                                                                        |+--------------------------------------------------------------+|
13830|                                                                        ||:diagtext:`casting between types`                             ||
13831|                                                                        |+--------------------------------------------------------------+|
13832+------------------------------------------------------------------------+----------------------------------------------------------------+
13833
13834
13835-Wvector-conversions
13836--------------------
13837Synonym for `-Wvector-conversion`_.
13838
13839
13840-Wvexing-parse
13841--------------
13842This diagnostic is enabled by default.
13843
13844**Diagnostic text:**
13845
13846+----------------------------------------------------------------------------------------------+
13847|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
13848+----------------------------------------------------------------------------------------------+
13849
13850+-----------------------------------------------------------------------------------------------+
13851|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
13852+-----------------------------------------------------------------------------------------------+
13853
13854+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
13855|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
13856+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
13857
13858
13859-Wvisibility
13860------------
13861This diagnostic is enabled by default.
13862
13863**Diagnostic text:**
13864
13865+---------------------------------------------------------------------------------------------------------------------------------------------+
13866|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
13867+---------------------------------------------------------------------------------------------------------------------------------------------+
13868
13869+----------------------------------------------------------------------------------------------------------------------------------------------+
13870|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
13871+----------------------------------------------------------------------------------------------------------------------------------------------+
13872
13873
13874-Wvla
13875-----
13876**Diagnostic text:**
13877
13878+-----------------------------------------------------------------+
13879|:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
13880+-----------------------------------------------------------------+
13881
13882
13883-Wvla-extension
13884---------------
13885**Diagnostic text:**
13886
13887+-------------------------------------------------------------------------------+
13888|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
13889+-------------------------------------------------------------------------------+
13890
13891
13892-Wvoid-pointer-to-enum-cast
13893---------------------------
13894This diagnostic is enabled by default.
13895
13896**Diagnostic text:**
13897
13898+-------------------------------------------------------------------------------------------------------------------------------------------+
13899|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
13900+-------------------------------------------------------------------------------------------------------------------------------------------+
13901
13902
13903-Wvoid-pointer-to-int-cast
13904--------------------------
13905This diagnostic is enabled by default.
13906
13907Also controls `-Wvoid-pointer-to-enum-cast`_.
13908
13909**Diagnostic text:**
13910
13911+-------------------------------------------------------------------------------------------------------------------------------------------+
13912|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`|
13913+-------------------------------------------------------------------------------------------------------------------------------------------+
13914
13915
13916-Wvoid-ptr-dereference
13917----------------------
13918This diagnostic is enabled by default.
13919
13920**Diagnostic text:**
13921
13922+--------------------------------------------------------------------------------------------------------------------+
13923|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
13924+--------------------------------------------------------------------------------------------------------------------+
13925
13926
13927-Wvolatile-register-var
13928-----------------------
13929This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
13930
13931-Wweak-template-vtables
13932-----------------------
13933**Diagnostic text:**
13934
13935+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13936|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
13937+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
13938
13939
13940-Wweak-vtables
13941--------------
13942**Diagnostic text:**
13943
13944+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13945|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
13946+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13947
13948
13949-Wwritable-strings
13950------------------
13951This diagnostic is enabled by default.
13952
13953Also controls `-Wdeprecated-writable-strings`_.
13954
13955**Diagnostic text:**
13956
13957+-------------------------------------------------------------------------------------------------------------------------+
13958|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
13959+-------------------------------------------------------------------------------------------------------------------------+
13960
13961
13962-Wwrite-strings
13963---------------
13964Synonym for `-Wwritable-strings`_.
13965
13966
13967-Wxor-used-as-pow
13968-----------------
13969This diagnostic is enabled by default.
13970
13971**Diagnostic text:**
13972
13973+----------------------------------------------------------------------------------------------------------------------------------------------------+
13974|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean exponentiation?`|
13975+----------------------------------------------------------------------------------------------------------------------------------------------------+
13976
13977+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13978|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`'?`|
13979+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13980
13981+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13982|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`' (`:placeholder:`D`:diagtext:`)?`|
13983+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13984
13985
13986-Wzero-as-null-pointer-constant
13987-------------------------------
13988**Diagnostic text:**
13989
13990+--------------------------------------------------------------------+
13991|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
13992+--------------------------------------------------------------------+
13993
13994
13995-Wzero-length-array
13996-------------------
13997**Diagnostic text:**
13998
13999+------------------------------------------------------------------------+
14000|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
14001+------------------------------------------------------------------------+
14002
14003
14004-Wwasm-exception-spec
14005---------------------
14006**Diagnostic text:**
14007
14008+----------------------------------------------------------------------------------------------------------------+
14009|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications with types are currently ignored in wasm`|
14010+----------------------------------------------------------------------------------------------------------------+
14011