blob: 1604b8fcc084af7d03cabd1425413a89c417eea0 [file] [log] [blame]
Richard Smithb6a3b4b2016-09-12 05:58:29 +00001..
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;
18 vertical-align: middle;
19 white-space: nowrap;
20 width: 1px;
21 }
22 table.docutils tr + tr {
23 border-top: 0.2em solid #aaa;
24 }
25 .error {
26 font-family: monospace;
27 font-weight: bold;
Richard Smithac205312016-09-12 17:55:49 +000028 color: #c00;
Richard Smithb6a3b4b2016-09-12 05:58:29 +000029 }
30 .warning {
31 font-family: monospace;
32 font-weight: bold;
33 color: #c70;
34 }
35 .remark {
36 font-family: monospace;
37 font-weight: bold;
38 color: #00c;
39 }
40 .diagtext {
41 font-family: monospace;
42 font-weight: bold;
43 }
44 </style>
45
46.. FIXME: Format this as .diagtext. rST appears to not support this. :(
47.. |nbsp| unicode:: 0xA0
48 :trim:
49
50.. Roles generated by clang-tblgen.
51.. role:: error
52.. role:: warning
53.. role:: remark
54.. role:: diagtext
55.. role:: placeholder(emphasis)
56
57=========================
58Diagnostic flags in Clang
59=========================
60.. contents::
61 :local:
62
63Introduction
64============
65
66This page lists the diagnostic flags currently supported by Clang.
67
68Diagnostic flags
69================
70
71-W
72--
73Synonym for `-Wextra`_.
74
75
76-W#pragma-messages
77------------------
78This diagnostic is enabled by default.
79
80**Diagnostic text:**
81
82The text of this diagnostic is not controlled by Clang.
83
84
85-W#warnings
86-----------
87This diagnostic is enabled by default.
88
89**Diagnostic text:**
90
91The text of this diagnostic is not controlled by Clang.
92
93
94-WCFString-literal
95------------------
96This diagnostic is enabled by default.
97
98**Diagnostic text:**
99
100+------------------------------------------------------------------------------------------------------------------------------------+
101|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
102+------------------------------------------------------------------------------------------------------------------------------------+
103
104
105-WCL4
106-----
107Some of the diagnostics controlled by this flag are enabled by default.
108
109Controls `-Wall`_, `-Wextra`_.
110
111
112-WIndependentClass-attribute
113----------------------------
114This diagnostic is enabled by default.
115
116**Diagnostic text:**
117
118+------------------------------------------------------------------------------------------------------------------------------+
119|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
120+------------------------------------------------------------------------------------------------------------------------------+
121
122+----------------------------------------------------------------------------------------------------------------------------------------------------+
123|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
124+----------------------------------------------------------------------------------------------------------------------------------------------------+
125
126
127-WNSObject-attribute
128--------------------
129This diagnostic is enabled by default.
130
131**Diagnostic text:**
132
133+--------------------------------------------------------------------------------------------------------------+
134|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
135+--------------------------------------------------------------------------------------------------------------+
136
137
138-Wabi
139-----
140This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
141
142-Wabsolute-value
143----------------
144This diagnostic is enabled by default.
145
146**Diagnostic text:**
147
148+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
149|: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`|
150+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
151
152+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
153|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
154| ||:diagtext:`pointer` || |
155| |+--------------------+| |
156| ||:diagtext:`function`|| |
157| |+--------------------+| |
158| ||:diagtext:`array` || |
159| |+--------------------+| |
160+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
161
162+------------------------------------------------------------------------------------------------------------------------------------------+
163|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
164+------------------------------------------------------------------------------------------------------------------------------------------+
165
166+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
167|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
168| ||:diagtext:`integer` || ||:diagtext:`integer` || |
169| |+--------------------------+| |+--------------------------+| |
170| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
171| |+--------------------------+| |+--------------------------+| |
172| ||:diagtext:`complex` || ||:diagtext:`complex` || |
173| |+--------------------------+| |+--------------------------+| |
174+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
175
176
177-Wabstract-final-class
178----------------------
179This diagnostic is enabled by default.
180
181**Diagnostic text:**
182
183+-----------------------------------------------------------------+--------------------+-------------+
184|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
185| ||:diagtext:`final` || |
186| |+------------------+| |
187| ||:diagtext:`sealed`|| |
188| |+------------------+| |
189+-----------------------------------------------------------------+--------------------+-------------+
190
191
192-Wabstract-vbase-init
193---------------------
194**Diagnostic text:**
195
196+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
197|: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`|
198+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
199
200
201-Waddress
202---------
203This diagnostic is enabled by default.
204
205Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
206
207
208-Waddress-of-array-temporary
209----------------------------
210This diagnostic is enabled by default.
211
212**Diagnostic text:**
213
214+---------------------------------------------------------------------------------------------------------------------------------------------+
215|:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
216+---------------------------------------------------------------------------------------------------------------------------------------------+
217
218
219-Waddress-of-packed-member
220--------------------------
221This diagnostic is enabled by default.
222
223**Diagnostic text:**
224
225+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
226|: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`|
227+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
228
229
230-Waddress-of-temporary
231----------------------
232This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
233
234**Diagnostic text:**
235
236+-----------------------------------------------------------------------------------------------------------+
237|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
238+-----------------------------------------------------------------------------------------------------------+
239
240
241-Waggregate-return
242------------------
243This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
244
245-Wall
246-----
247Some of the diagnostics controlled by this flag are enabled by default.
248
249Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
250
251
252-Wambiguous-ellipsis
253--------------------
254This diagnostic is enabled by default.
255
256**Diagnostic text:**
257
258+------------------------------------------------------------------------------------------------+---------------------------------------------+
259|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
260| ||:diagtext:`, not a function parameter pack`||
261| |+-------------------------------------------+|
262| || ||
263| |+-------------------------------------------+|
264+------------------------------------------------------------------------------------------------+---------------------------------------------+
265
266
267-Wambiguous-macro
268-----------------
269This diagnostic is enabled by default.
270
271**Diagnostic text:**
272
273+-------------------------------------------------------------------------------------------+
274|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
275+-------------------------------------------------------------------------------------------+
276
277
278-Wambiguous-member-template
279---------------------------
280This diagnostic is enabled by default.
281
282**Diagnostic text:**
283
284+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
285|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
286+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
287
288
289-Wanalyzer-incompatible-plugin
290------------------------------
291This diagnostic is enabled by default.
292
293**Diagnostic text:**
294
295+----------------------------------------------------------------------------------------------------------------------------------------+
296|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
297+----------------------------------------------------------------------------------------------------------------------------------------+
298
299
300-Wanonymous-pack-parens
301-----------------------
302This diagnostic is enabled by default.
303
304**Diagnostic text:**
305
306+---------------------------------------------------------------------------------------------------------+
307|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
308+---------------------------------------------------------------------------------------------------------+
309
310
311-Warc
312-----
313This diagnostic is enabled by default.
314
315Controls `-Warc-unsafe-retained-assign`_, `-Warc-retain-cycles`_, `-Warc-non-pod-memaccess`_.
316
317
318-Warc-bridge-casts-disallowed-in-nonarc
319---------------------------------------
320This diagnostic is enabled by default.
321
322**Diagnostic text:**
323
324+-------------------------------------------------------------------------------------------------------------+
325|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
326+-------------------------------------------------------------------------------------------------------------+
327
328
329-Warc-maybe-repeated-use-of-weak
330--------------------------------
331**Diagnostic text:**
332
333+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
334|: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`|
335| ||:diagtext:`variable` || ||:diagtext:`function`|| |
336| |+-----------------------------+| |+--------------------+| |
337| ||:diagtext:`property` || ||:diagtext:`method` || |
338| |+-----------------------------+| |+--------------------+| |
339| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
340| |+-----------------------------+| |+--------------------+| |
341| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
342| |+-----------------------------+| |+--------------------+| |
343+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
344
345
346-Warc-non-pod-memaccess
347-----------------------
348This diagnostic is enabled by default.
349
350**Diagnostic text:**
351
352+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
353|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
354| ||:diagtext:`destination for`|| |
355| |+---------------------------+| |
356| ||:diagtext:`source of` || |
357| |+---------------------------+| |
358+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
359
360
361-Warc-performSelector-leaks
362---------------------------
363This diagnostic is enabled by default.
364
365**Diagnostic text:**
366
367+-------------------------------------------------------------------------------------------------------+
368|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
369+-------------------------------------------------------------------------------------------------------+
370
371
372-Warc-repeated-use-of-weak
373--------------------------
374Also controls `-Warc-maybe-repeated-use-of-weak`_.
375
376**Diagnostic text:**
377
378+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
379|: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`|
380| ||:diagtext:`variable` || ||:diagtext:`function`|| |
381| |+-----------------------------+| |+--------------------+| |
382| ||:diagtext:`property` || ||:diagtext:`method` || |
383| |+-----------------------------+| |+--------------------+| |
384| ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
385| |+-----------------------------+| |+--------------------+| |
386| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
387| |+-----------------------------+| |+--------------------+| |
388+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
389
390
391-Warc-retain-cycles
392-------------------
393This diagnostic is enabled by default.
394
395**Diagnostic text:**
396
397+------------------------------------------------------------------------------------------------------------------------------------------------------+
398|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
399+------------------------------------------------------------------------------------------------------------------------------------------------------+
400
401
402-Warc-unsafe-retained-assign
403----------------------------
404This diagnostic is enabled by default.
405
406**Diagnostic text:**
407
408+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
409|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
410| ||:diagtext:`array literal` || ||:diagtext:`property`|| |
411| |+-------------------------------+| |+--------------------+| |
412| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
413| |+-------------------------------+| |+--------------------+| |
414| ||:diagtext:`numeric literal` || | | |
415| |+-------------------------------+| | | |
416| ||:diagtext:`boxed expression` || | | |
417| |+-------------------------------+| | | |
418| ||:diagtext:`<should not happen>`|| | | |
419| |+-------------------------------+| | | |
420| ||:diagtext:`block literal` || | | |
421| |+-------------------------------+| | | |
422+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
423
424+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
425|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
426| ||:diagtext:`weak` || ||:diagtext:`property`|| |
427| |+------------------------------+| |+--------------------+| |
428| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
429| |+------------------------------+| |+--------------------+| |
430+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
431
432+-----------------------------------------------------------------------------------------------------------------------------+
433|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
434+-----------------------------------------------------------------------------------------------------------------------------+
435
436
437-Warray-bounds
438--------------
439This diagnostic is enabled by default.
440
441**Diagnostic text:**
442
443+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
444|: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:`)`|
445| || || |
446| |+-------------+| |
447| ||:diagtext:`s`|| |
448| |+-------------+| |
449+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
450
451+----------------------------------------------------------------------------------------------------------------------------------+
452|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
453+----------------------------------------------------------------------------------------------------------------------------------+
454
455+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
456|:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
457+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
458
459+-----------------------------------------------------------------------------------+
460|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
461+-----------------------------------------------------------------------------------+
462
463
464-Warray-bounds-pointer-arithmetic
465---------------------------------
466**Diagnostic text:**
467
468+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
469|: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:`)`|
470| || || |
471| |+-------------+| |
472| ||:diagtext:`s`|| |
473| |+-------------+| |
474+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
475
476+-----------------------------------------------------------------------------------------------------------------------------------------------------+
477|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
478+-----------------------------------------------------------------------------------------------------------------------------------------------------+
479
480
481-Wasm
482-----
483Synonym for `-Wasm-operand-widths`_.
484
485
486-Wasm-operand-widths
487--------------------
488This diagnostic is enabled by default.
489
490**Diagnostic text:**
491
492+-----------------------------------------------------------------------------------------------------------------------+
493|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
494+-----------------------------------------------------------------------------------------------------------------------+
495
496
497-Wassign-enum
498-------------
499**Diagnostic text:**
500
501+---------------------------------------------------------------------------------------------------------------+
502|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
503+---------------------------------------------------------------------------------------------------------------+
504
505
506-Wassume
507--------
508This diagnostic is enabled by default.
509
510**Diagnostic text:**
511
512+-----------------------------------------------------------------------------------------------------------------------------------------+
513|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
514+-----------------------------------------------------------------------------------------------------------------------------------------+
515
516
517-Wat-protocol
518-------------
519This diagnostic is enabled by default.
520
521**Diagnostic text:**
522
523+-------------------------------------------------------------------------------------------------------------------+
524|:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
525+-------------------------------------------------------------------------------------------------------------------+
526
527
528-Watomic-memory-ordering
529------------------------
530This diagnostic is enabled by default.
531
532**Diagnostic text:**
533
534+-------------------------------------------------------------------------------------------+
535|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
536+-------------------------------------------------------------------------------------------+
537
538
539-Watomic-properties
540-------------------
541Controls `-Wimplicit-atomic-properties`_, `-Wcustom-atomic-properties`_.
542
543
544-Watomic-property-with-user-defined-accessor
545--------------------------------------------
546This diagnostic is enabled by default.
547
548**Diagnostic text:**
549
550+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
551|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
552| ||:diagtext:`getter`|| ||:diagtext:`getter`||
553| |+------------------+| |+------------------+|
554| ||:diagtext:`setter`|| ||:diagtext:`setter`||
555| |+------------------+| |+------------------+|
556+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
557
558
559-Wattribute-packed-for-bitfield
560-------------------------------
561This diagnostic is enabled by default.
562
563**Diagnostic text:**
564
565+-------------------------------------------------------------------------------------------------------------------------------------------------+
566|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
567+-------------------------------------------------------------------------------------------------------------------------------------------------+
568
569
570-Wattributes
571------------
572This diagnostic is enabled by default.
573
574Controls `-Wunknown-attributes`_, `-Wignored-attributes`_.
575
576
577-Wauto-disable-vptr-sanitizer
578-----------------------------
579This diagnostic is enabled by default.
580
581**Diagnostic text:**
582
583+------------------------------------------------------------------------------------------------------+
584|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
585+------------------------------------------------------------------------------------------------------+
586
587
588-Wauto-import
589-------------
590**Diagnostic text:**
591
592+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
593|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
594| ||:diagtext:`include` || |
595| |+-------------------------------+| |
596| ||:diagtext:`import` || |
597| |+-------------------------------+| |
598| ||:diagtext:`include\_next` || |
599| |+-------------------------------+| |
600| ||:diagtext:`\_\_include\_macros`|| |
601| |+-------------------------------+| |
602+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
603
604
605-Wauto-storage-class
606--------------------
607This diagnostic is enabled by default.
608
609**Diagnostic text:**
610
611+---------------------------------------------------------------------------------------------------------------------------------------------+
612|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
613+---------------------------------------------------------------------------------------------------------------------------------------------+
614
615
616-Wauto-var-id
617-------------
618This diagnostic is enabled by default.
619
620**Diagnostic text:**
621
622+-------------------------------------------------------------------------------------------------------+
623|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
624+-------------------------------------------------------------------------------------------------------+
625
626
627-Wavailability
628--------------
629This diagnostic is enabled by default.
630
631**Diagnostic text:**
632
633+--------------------------------------------------------------------------------------------------------------+
634|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
635+--------------------------------------------------------------------------------------------------------------+
636
637+------------------------------------------------------------------------------------------------------------------------+
638|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
639+------------------------------------------------------------------------------------------------------------------------+
640
641+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
642|: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`|
643| ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| |
644| |+----------------------+| |+----------------------+| |
645| ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| |
646| |+----------------------+| |+----------------------+| |
647| ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || |
648| |+----------------------+| |+----------------------+| |
649+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
650
651+---------------------------------------------------------------------------------------------------------------------------+
652|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
653+---------------------------------------------------------------------------------------------------------------------------+
654
655+---------------------------------------------------------------------------------------+
656|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
657+---------------------------------------------------------------------------------------+
658
659+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
660|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
661| || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| |
662| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
663| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || |
664| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
665| | | ||:diagtext:`obsoleted before` || | | |
666| | | |+-----------------------------+| | | |
667+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
668
669+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
670|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
671| || || ||:diagtext:`the protocol method it implements`|| |
672| |+------------------------------+| |+---------------------------------------------+| |
673| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || |
674| |+------------------------------+| |+---------------------------------------------+| |
675+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
676
677
678-Wbackend-plugin
679----------------
680This diagnostic is enabled by default.
681
682**Diagnostic text:**
683
684The text of this diagnostic is not controlled by Clang.
685
686
687-Wbackslash-newline-escape
688--------------------------
689This diagnostic is enabled by default.
690
691**Diagnostic text:**
692
693+-------------------------------------------------------------------------------+
694|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
695+-------------------------------------------------------------------------------+
696
697
698-Wbad-array-new-length
699----------------------
700This diagnostic is enabled by default.
701
702**Diagnostic text:**
703
704+--------------------------------------------------------------------------------------------------------+
705|:warning:`warning:` |nbsp| :diagtext:`array is too large (`:placeholder:`A` |nbsp| :diagtext:`elements)`|
706+--------------------------------------------------------------------------------------------------------+
707
708+-------------------------------------------------------------+
709|:warning:`warning:` |nbsp| :diagtext:`array size is negative`|
710+-------------------------------------------------------------+
711
712
713-Wbad-function-cast
714-------------------
715**Diagnostic text:**
716
717+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
718|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
719+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
720
721
722-Wbind-to-temporary-copy
723------------------------
724Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
725
726**Diagnostic text:**
727
728+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
729|: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| |+---------------------+|
730| ||:diagtext:`private` ||
731| |+---------------------+|
732| ||:diagtext:`protected`||
733| |+---------------------+|
734+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
735
736+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
737|: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`|
738| ||:diagtext:`copying variable` || |
739| |+---------------------------------------+| |
740| ||:diagtext:`copying parameter` || |
741| |+---------------------------------------+| |
742| ||:diagtext:`returning object` || |
743| |+---------------------------------------+| |
744| ||:diagtext:`throwing object` || |
745| |+---------------------------------------+| |
746| ||:diagtext:`copying member subobject` || |
747| |+---------------------------------------+| |
748| ||:diagtext:`copying array element` || |
749| |+---------------------------------------+| |
750| ||:diagtext:`allocating object` || |
751| |+---------------------------------------+| |
752| ||:diagtext:`copying temporary` || |
753| |+---------------------------------------+| |
754| ||:diagtext:`initializing base subobject`|| |
755| |+---------------------------------------+| |
756| ||:diagtext:`initializing vector element`|| |
757| |+---------------------------------------+| |
758| ||:diagtext:`capturing value` || |
759| |+---------------------------------------+| |
760+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
761
762
763-Wbitfield-constant-conversion
764------------------------------
765This diagnostic is enabled by default.
766
767**Diagnostic text:**
768
769+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
770|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bitfield changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
771+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
772
773
774-Wbitfield-width
775----------------
776This diagnostic is enabled by default.
777
778**Diagnostic text:**
779
780+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
781|: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`|+-------------+|
782| || ||
783| |+-------------+|
784| ||:diagtext:`s`||
785| |+-------------+|
786+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
787
788+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
789|: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`|+-------------+|
790| || ||
791| |+-------------+|
792| ||:diagtext:`s`||
793| |+-------------+|
794+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
795
796
797-Wbitwise-op-parentheses
798------------------------
799This diagnostic is enabled by default.
800
801**Diagnostic text:**
802
803+-----------------------------------------------------------------------------------------------------------+
804|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
805+-----------------------------------------------------------------------------------------------------------+
806
807
808-Wbool-conversion
809-----------------
810This diagnostic is enabled by default.
811
812Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
813
814**Diagnostic text:**
815
816+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
817|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
818+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
819
820
821-Wbool-conversions
822------------------
823Synonym for `-Wbool-conversion`_.
824
825
826-Wbraced-scalar-init
827--------------------
828This diagnostic is enabled by default.
829
830**Diagnostic text:**
831
832+-----------------------------------------------------------------------+
833|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
834+-----------------------------------------------------------------------+
835
836
837-Wbridge-cast
838-------------
839This diagnostic is enabled by default.
840
841**Diagnostic text:**
842
843+------------------------------------------------------------------------------------------------------------------------------------------+
844|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
845+------------------------------------------------------------------------------------------------------------------------------------------+
846
847+-------------------------------------------------------------------------------------------------------+
848|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
849+-------------------------------------------------------------------------------------------------------+
850
851
852-Wbuiltin-macro-redefined
853-------------------------
854This diagnostic is enabled by default.
855
856**Diagnostic text:**
857
858+---------------------------------------------------------------+
859|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
860+---------------------------------------------------------------+
861
862+---------------------------------------------------------------+
863|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
864+---------------------------------------------------------------+
865
866
867-Wbuiltin-memcpy-chk-size
868-------------------------
869This diagnostic is enabled by default.
870
871**Diagnostic text:**
872
873+------------------------------------------------------------------------------------------------------+
874|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
875+------------------------------------------------------------------------------------------------------+
876
877
878-Wbuiltin-requires-header
879-------------------------
880This diagnostic is enabled by default.
881
882**Diagnostic text:**
883
884+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
885|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
886+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
887
888
889-Wc++-compat
890------------
891**Diagnostic text:**
892
893+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
894|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
895| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
896| |+-------------------------+|+------------------+| |+-------------------------+| |
897| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
898| |+-------------------------+|+------------------+| |+-------------------------+| |
899+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
900
901
902-Wc++0x-compat
903--------------
904Synonym for `-Wc++11-compat`_.
905
906
907-Wc++0x-extensions
908------------------
909Synonym for `-Wc++11-extensions`_.
910
911
912-Wc++0x-narrowing
913-----------------
914Synonym for `-Wc++11-narrowing`_.
915
916
917-Wc++11-compat
918--------------
919Some of the diagnostics controlled by this flag are enabled by default.
920
921Also controls `-Wc++11-narrowing`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++98-c++11-compat`_, `-Wc++98-c++11-c++14-compat`_.
922
923**Diagnostic text:**
924
925+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
926|: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`|
927| ||:diagtext:`have type 'long long'`|| |
928| |+---------------------------------+| |
929| ||:diagtext:`be ill-formed` || |
930| |+---------------------------------+| |
931+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
932
933+--------------------------------------------------------------------------------------------------------------+
934|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
935+--------------------------------------------------------------------------------------------------------------+
936
937+-------------------------------------------------------------------------------------------------------------------------+
938|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
939+-------------------------------------------------------------------------------------------------------------------------+
940
941+-------------------------------------------------------------------------------------------+
942|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
943+-------------------------------------------------------------------------------------------+
944
945+--------------------------------------------------------------------------------------------------------------------------------+
946|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
947+--------------------------------------------------------------------------------------------------------------------------------+
948
949+--------------------------------------------------------------------------------+
950|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
951+--------------------------------------------------------------------------------+
952
953+--------------------------------------------------------------------------------------------------------------------------------------+
954|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
955+--------------------------------------------------------------------------------------------------------------------------------------+
956
957+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
958|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
959+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
960
961+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
962|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
963+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
964
965+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
966|: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`|
967| ||:diagtext:`have type 'long long'`|| |
968| |+---------------------------------+| |
969| ||:diagtext:`be ill-formed` || |
970| |+---------------------------------+| |
971+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
972
973
974-Wc++11-compat-deprecated-writable-strings
975------------------------------------------
976This diagnostic is enabled by default.
977
978**Diagnostic text:**
979
980+---------------------------------------------------------------------------------------------------------------------------------+
981|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
982+---------------------------------------------------------------------------------------------------------------------------------+
983
984
985-Wc++11-compat-pedantic
986-----------------------
987Controls `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
988
989
990-Wc++11-compat-reserved-user-defined-literal
991--------------------------------------------
992**Diagnostic text:**
993
994+----------------------------------------------------------------------------------------------------------------------------------+
995|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
996+----------------------------------------------------------------------------------------------------------------------------------+
997
998
999-Wc++11-extensions
1000------------------
1001Some of the diagnostics controlled by this flag are enabled by default.
1002
1003Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1004
1005**Diagnostic text:**
1006
1007+-------------------------------------------------------------------------------+
1008|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1009+-------------------------------------------------------------------------------+
1010
1011+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1012|: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`|
1013| ||:diagtext:`integral` || |
1014| |+-----------------------+| |
1015| ||:diagtext:`enumeration`|| |
1016| |+-----------------------+| |
1017+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1018
1019+---------------------------------------------------------------------------------+
1020|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1021+---------------------------------------------------------------------------------+
1022
1023+-----------------------------------------------------------------------------------------------------------+
1024|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1025+-----------------------------------------------------------------------------------------------------------+
1026
1027+---------------------------+-----------------------+--------------------------------------------------------------+
1028|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1029| ||:diagtext:`defaulted`|| |
1030| |+---------------------+| |
1031| ||:diagtext:`deleted` || |
1032| |+---------------------+| |
1033+---------------------------+-----------------------+--------------------------------------------------------------+
1034
1035+-----------------------------------------------------------------------------------------------------------------------------------+
1036|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1037+-----------------------------------------------------------------------------------------------------------------------------------+
1038
1039+--------------------------------------------------------------------------------------------------+
1040|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1041+--------------------------------------------------------------------------------------------------+
1042
1043+------------------------------------------------------------------------------------------+
1044|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1045+------------------------------------------------------------------------------------------+
1046
1047+-----------------------------------------------------------------------------+
1048|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1049+-----------------------------------------------------------------------------+
1050
1051+--------------------------------------------------------------------------------+
1052|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1053+--------------------------------------------------------------------------------+
1054
1055+------------------------------------------------------------------------------------------+
1056|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1057+------------------------------------------------------------------------------------------+
1058
1059+---------------------------------------------------------------------------------------------------------+
1060|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1061+---------------------------------------------------------------------------------------------------------+
1062
1063+----------------------------------------------------------------------------------------------------------------------------+
1064|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1065+----------------------------------------------------------------------------------------------------------------------------+
1066
1067+-------------------------------------------------------------------------------------------------------------+
1068|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1069+-------------------------------------------------------------------------------------------------------------+
1070
1071+--------------------------------------------------------------------------------------------------+
1072|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1073+--------------------------------------------------------------------------------------------------+
1074
1075+----------------------------------------------------------------------------------------------+
1076|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1077+----------------------------------------------------------------------------------------------+
1078
1079+------------------------------------------------------------------------------+
1080|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1081+------------------------------------------------------------------------------+
1082
1083+--------------------------------------------------------------------------------+
1084|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1085+--------------------------------------------------------------------------------+
1086
1087+----------------------------------------------------------------------------------------------------------------------------------+
1088|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1089+----------------------------------------------------------------------------------------------------------------------------------+
1090
1091+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1092|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1093| ||:diagtext:`function`|| |
1094| |+--------------------+| |
1095| ||:diagtext:`object` || |
1096| |+--------------------+| |
1097+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1098
1099+-------------------------------------------------------------------------------+
1100|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1101+-------------------------------------------------------------------------------+
1102
1103+---------------------------------------------------------------------------------------------------------------+
1104|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1105+---------------------------------------------------------------------------------------------------------------+
1106
1107+-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1108|:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
1109| ||:diagtext:`class template` || |
1110| |+-------------------------------------+| |
1111| ||:diagtext:`class template partial` || |
1112| |+-------------------------------------+| |
1113| ||:diagtext:`variable template` || |
1114| |+-------------------------------------+| |
1115| ||:diagtext:`variable template partial`|| |
1116| |+-------------------------------------+| |
1117| ||:diagtext:`function template` || |
1118| |+-------------------------------------+| |
1119| ||:diagtext:`member function` || |
1120| |+-------------------------------------+| |
1121| ||:diagtext:`static data member` || |
1122| |+-------------------------------------+| |
1123| ||:diagtext:`member class` || |
1124| |+-------------------------------------+| |
1125| ||:diagtext:`member enumeration` || |
1126| |+-------------------------------------+| |
1127+-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1128
1129+------------------------------------------------------------------------------+
1130|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1131+------------------------------------------------------------------------------+
1132
1133+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1134|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1135| ||:diagtext:`struct` || |
1136| |+---------------------+| |
1137| ||:diagtext:`interface`|| |
1138| |+---------------------+| |
1139| ||:diagtext:`union` || |
1140| |+---------------------+| |
1141| ||:diagtext:`class` || |
1142| |+---------------------+| |
1143| ||:diagtext:`enum` || |
1144| |+---------------------+| |
1145+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1146
1147+-------------------------------------------------------------------------------+
1148|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1149+-------------------------------------------------------------------------------+
1150
1151
1152-Wc++11-extra-semi
1153------------------
1154**Diagnostic text:**
1155
1156+-------------------------------------------------------------------------------------------+
1157|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1158+-------------------------------------------------------------------------------------------+
1159
1160
1161-Wc++11-inline-namespace
1162------------------------
1163This diagnostic is enabled by default.
1164
1165**Diagnostic text:**
1166
1167+----------------------------------------------------------------------------+
1168|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1169+----------------------------------------------------------------------------+
1170
1171
1172-Wc++11-long-long
1173-----------------
1174**Diagnostic text:**
1175
1176+-----------------------------------------------------------------------+
1177|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1178+-----------------------------------------------------------------------+
1179
1180
1181-Wc++11-narrowing
1182-----------------
1183Some of the diagnostics controlled by this flag are enabled by default.
1184
1185**Diagnostic text:**
1186
1187+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1188|:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1189| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
1190| |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
1191| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
1192| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
1193| ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+||
1194| |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1195| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
1196| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
1197| ||:diagtext:`constexpr if condition` || | |
1198| |+--------------------------------------+| | |
1199+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1200
1201+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1202|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1203+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1204
1205+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1206|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1207+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1208
1209+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1210|: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`|
1211+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1212
1213+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1214|: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`|
1215+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1216
1217+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1218|: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`|
1219+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1220
1221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1222|: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`|
1223+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1224
1225
1226-Wc++14-binary-literal
1227----------------------
1228**Diagnostic text:**
1229
1230+------------------------------------------------------------------------------------+
1231|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1232+------------------------------------------------------------------------------------+
1233
1234
1235-Wc++14-compat
1236--------------
1237Synonym for `-Wc++98-c++11-c++14-compat`_.
1238
1239
1240-Wc++14-compat-pedantic
1241-----------------------
1242Synonym for `-Wc++98-c++11-c++14-compat-pedantic`_.
1243
1244
1245-Wc++14-extensions
1246------------------
1247Some of the diagnostics controlled by this flag are enabled by default.
1248
1249Also controls `-Wc++14-binary-literal`_.
1250
1251**Diagnostic text:**
1252
1253+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1254|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1255| ||:diagtext:`function` || |
1256| |+-----------------------+| |
1257| ||:diagtext:`constructor`|| |
1258| |+-----------------------+| |
1259+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1260
1261+------------------------------------------------------------------------------------------------------------+
1262|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1263+------------------------------------------------------------------------------------------------------------+
1264
1265+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1266|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1267| ||:diagtext:`function` || |
1268| |+-----------------------+| |
1269| ||:diagtext:`constructor`|| |
1270| |+-----------------------+| |
1271+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1272
1273+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1274|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1275| ||:diagtext:`function` || |
1276| |+-----------------------+| |
1277| ||:diagtext:`constructor`|| |
1278| |+-----------------------+| |
1279+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1280
1281+---------------------------------------------------------------------------------------------------------------------------+
1282|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1283+---------------------------------------------------------------------------------------------------------------------------+
1284
1285+-------------------------------------------------------------------------------------------+
1286|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1287+-------------------------------------------------------------------------------------------+
1288
1289+----------------------------------------------------------------------------------------+
1290|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1291+----------------------------------------------------------------------------------------+
1292
1293+-------------------------------------------------------------------------------+
1294|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1295+-------------------------------------------------------------------------------+
1296
1297
1298-Wc++1y-extensions
1299------------------
1300Synonym for `-Wc++14-extensions`_.
1301
1302
1303-Wc++1z-compat
1304--------------
1305This diagnostic is enabled by default.
1306
1307Controls `-Wdeprecated-register`_, `-Wdeprecated-increment-bool`_.
1308
1309
1310-Wc++1z-extensions
1311------------------
1312Some of the diagnostics controlled by this flag are enabled by default.
1313
1314**Diagnostic text:**
1315
1316+------------------------------------------------------------------------+
1317|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++1z extension`|
1318+------------------------------------------------------------------------+
1319
1320+---------------------------------------------------------------------------------------------+
1321|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++1z extension`|
1322+---------------------------------------------------------------------------------------------+
1323
1324+---------------------------------------------------------------------------------------------------------------------------+
1325|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++1z extension`|
1326+---------------------------------------------------------------------------------------------------------------------------+
1327
1328+---------------------------------------------------------------------------------------+
1329|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++1z extension`|
1330+---------------------------------------------------------------------------------------+
1331
1332+--------------------------------------------------------------------------------+
1333|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++1z extension`|
1334+--------------------------------------------------------------------------------+
1335
1336+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1337|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++1z extension`|
1338+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1339
1340+----------------------------------------------------------------------------------------+
1341|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++1z feature`|
1342+----------------------------------------------------------------------------------------+
1343
1344+-----------------------------------------------------------------------------+
1345|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++1z extension`|
1346+-----------------------------------------------------------------------------+
1347
1348+-------------------------------------------------------------------------------------------------------------------------+
1349|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++1z extension; define each namespace separately`|
1350+-------------------------------------------------------------------------------------------------------------------------+
1351
1352+---------------------------------------------------------------------------------------+
1353|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++1z extension`|
1354+---------------------------------------------------------------------------------------+
1355
1356+------------------------------------------------------------------------------------------+
1357|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++1z extension`|
1358+------------------------------------------------------------------------------------------+
1359
1360+--------------------------------------------------------------------------------------------------------+
1361|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++1z extension`|
1362+--------------------------------------------------------------------------------------------------------+
1363
1364+--------------------------------------------------------------------------------------------------+
1365|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++1z extension`|
1366+--------------------------------------------------------------------------------------------------+
1367
1368
1369-Wc++98-c++11-c++14-compat
1370--------------------------
1371**Diagnostic text:**
1372
1373+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1374|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++1z`|
1375| ||:diagtext:`a namespace` || |
1376| |+-------------------------+| |
1377| ||:diagtext:`an enumerator`|| |
1378| |+-------------------------+| |
1379+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1380
1381+---------------------------------------------------------------------------------------------------+
1382|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++1z`|
1383+---------------------------------------------------------------------------------------------------+
1384
1385+----------------------------------------------------------------------------------------------------------------------+
1386|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++1z`|
1387+----------------------------------------------------------------------------------------------------------------------+
1388
1389+------------------------------------------------------------------------------------------------------------------+
1390|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++1z`|
1391+------------------------------------------------------------------------------------------------------------------+
1392
1393+-----------------------------------------------------------------------------------------------------------+
1394|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++1z`|
1395+-----------------------------------------------------------------------------------------------------------+
1396
1397+--------------------------------------------------------------------------------------------------------+
1398|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++1z`|
1399+--------------------------------------------------------------------------------------------------------+
1400
1401+------------------------------------------------------------------------------------------------------------------+
1402|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++1z`|
1403+------------------------------------------------------------------------------------------------------------------+
1404
1405+-------------------------------------------------------------------------------------------------------------------+
1406|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++1z`|
1407+-------------------------------------------------------------------------------------------------------------------+
1408
1409+---------------------------------------------------------------------------------------------------------------------+
1410|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++1z`|
1411+---------------------------------------------------------------------------------------------------------------------+
1412
1413+-----------------------------------------------------------------------------------------------------------------------------------+
1414|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++1z`|
1415+-----------------------------------------------------------------------------------------------------------------------------------+
1416
1417+--------------------------------------------------------------------------------------------------------+
1418|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++1z`|
1419+--------------------------------------------------------------------------------------------------------+
1420
1421+-----------------------------------------------------------------------------------------------------------------------------+
1422|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++1z`|
1423+-----------------------------------------------------------------------------------------------------------------------------+
1424
1425+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1426|: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++1z`|
1427+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1428
1429
1430-Wc++98-c++11-c++14-compat-pedantic
1431-----------------------------------
1432Also controls `-Wc++98-c++11-c++14-compat`_.
1433
1434**Diagnostic text:**
1435
1436+---------------------------------------------------------------------------------------------------------------------+
1437|:warning:`warning:` |nbsp| :diagtext:`hexidecimal floating literals are incompatible with C++ standards before C++1z`|
1438+---------------------------------------------------------------------------------------------------------------------+
1439
1440
1441-Wc++98-c++11-compat
1442--------------------
1443**Diagnostic text:**
1444
1445+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1446|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1447| ||:diagtext:`function` || |
1448| |+-----------------------+| |
1449| ||:diagtext:`constructor`|| |
1450| |+-----------------------+| |
1451+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1452
1453+---------------------------------------------------------------------------------------------------------------------------------------+
1454|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
1455+---------------------------------------------------------------------------------------------------------------------------------------+
1456
1457+-----------------------------------------------------------------------------------------------------------------------------------+
1458|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
1459+-----------------------------------------------------------------------------------------------------------------------------------+
1460
1461+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1462|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1463| ||:diagtext:`function` || |
1464| |+-----------------------+| |
1465| ||:diagtext:`constructor`|| |
1466| |+-----------------------+| |
1467+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1468
1469+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1470|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1471| ||:diagtext:`function` || |
1472| |+-----------------------+| |
1473| ||:diagtext:`constructor`|| |
1474| |+-----------------------+| |
1475+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1476
1477+----------------------------------------------------------------------------------------------------------------------+
1478|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
1479+----------------------------------------------------------------------------------------------------------------------+
1480
1481+--------------------------------------------------------------------------------------------------------+
1482|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
1483+--------------------------------------------------------------------------------------------------------+
1484
1485+-------------------------------------------------------------------------------------------------------------------+
1486|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
1487+-------------------------------------------------------------------------------------------------------------------+
1488
1489+----------------------------------------------------------------------------------------------------------+
1490|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
1491+----------------------------------------------------------------------------------------------------------+
1492
1493
1494-Wc++98-c++11-compat-pedantic
1495-----------------------------
1496Also controls `-Wc++98-c++11-compat`_.
1497
1498**Diagnostic text:**
1499
1500+---------------------------------------------------------------------------------------------------------------+
1501|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
1502+---------------------------------------------------------------------------------------------------------------+
1503
1504
1505-Wc++98-compat
1506--------------
1507Also controls `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_, `-Wc++98-c++11-compat`_, `-Wc++98-c++11-c++14-compat`_.
1508
1509**Diagnostic text:**
1510
1511+-------------------------------------------------------------------------------------+
1512|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
1513+-------------------------------------------------------------------------------------+
1514
1515+---------------------------------------------------------------------------+
1516|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
1517+---------------------------------------------------------------------------+
1518
1519+--------------------------------------------------------------------------------------+
1520|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
1521+--------------------------------------------------------------------------------------+
1522
1523+----------------------------------------------------------------------------------------+
1524|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
1525+----------------------------------------------------------------------------------------+
1526
1527+---------------------------------------------------------------------------------------+
1528|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
1529+---------------------------------------------------------------------------------------+
1530
1531+---------------------------------------------------------------------------------------+
1532|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
1533+---------------------------------------------------------------------------------------+
1534
1535+--------------------------------------------------------------------------------------------------------+
1536|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
1537+--------------------------------------------------------------------------------------------------------+
1538
1539+-------------------------------------------------------------------------------------------+
1540|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
1541+-------------------------------------------------------------------------------------------+
1542
1543+---------------------------+-----------------------+--------------------------------------------------------------------+
1544|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
1545| ||:diagtext:`defaulted`|| |
1546| |+---------------------+| |
1547| ||:diagtext:`deleted` || |
1548| |+---------------------+| |
1549+---------------------------+-----------------------+--------------------------------------------------------------------+
1550
1551+------------------------------------------------------------------------------------------+
1552|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
1553+------------------------------------------------------------------------------------------+
1554
1555+----------------------------------------------------------------------------------------------------------------+
1556|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
1557+----------------------------------------------------------------------------------------------------------------+
1558
1559+-----------------------------------------------------------------------------------------------------------------+
1560|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
1561+-----------------------------------------------------------------------------------------------------------------+
1562
1563+-----------------------------------------------------------------------------------------------------------------------------------------+
1564|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1565+-----------------------------------------------------------------------------------------------------------------------------------------+
1566
1567+-----------------------------------------------------------------------------------------------------------+
1568|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
1569+-----------------------------------------------------------------------------------------------------------+
1570
1571+------------------------------------------------------------------------------------------------+
1572|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
1573+------------------------------------------------------------------------------------------------+
1574
1575+--------------------------------------------------------------------------------------+
1576|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
1577+--------------------------------------------------------------------------------------+
1578
1579+---------------------------------------------------------------------------------------------------------------------------+
1580|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
1581+---------------------------------------------------------------------------------------------------------------------------+
1582
1583+------------------------------------------------------------------------------------------------+
1584|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
1585+------------------------------------------------------------------------------------------------+
1586
1587+------------------------------------------------------------------------------------------------------------+
1588|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
1589+------------------------------------------------------------------------------------------------------------+
1590
1591+---------------------------------------------------------------------------------------------------------------------------------------+
1592|:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
1593+---------------------------------------------------------------------------------------------------------------------------------------+
1594
1595+------------------------------------------------------------------------------------------------------------+
1596|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
1597+------------------------------------------------------------------------------------------------------------+
1598
1599+------------------------------------------------------------------------------------+
1600|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
1601+------------------------------------------------------------------------------------+
1602
1603+-------------------------------------------------------------------------------------+
1604|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
1605+-------------------------------------------------------------------------------------+
1606
1607+-----------------------------------------------------------------------------------------------------------+
1608|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
1609+-----------------------------------------------------------------------------------------------------------+
1610
1611+------------------------------------------------------------------------------------+
1612|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
1613+------------------------------------------------------------------------------------+
1614
1615+---------------------------------------------------------------------------------------------------------------------------+
1616|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
1617+---------------------------------------------------------------------------------------------------------------------------+
1618
1619+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1620|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
1621+-----------------------------------------------------------------------------------------------------------------------------------------------------+
1622
1623+------------------------------------------------------------------------------------------+
1624|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
1625+------------------------------------------------------------------------------------------+
1626
1627+---------------------------------------------------------------------------------------+
1628|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
1629+---------------------------------------------------------------------------------------+
1630
1631+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1632|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
1633+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1634
1635+----------------------------------------------------------------------------------------------------------------------------------+
1636|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1637+----------------------------------------------------------------------------------------------------------------------------------+
1638
1639+--------------------------------------------------------------------------------------------------------------------+
1640|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
1641+--------------------------------------------------------------------------------------------------------------------+
1642
1643+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1644|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
1645| ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || |
1646| |+----------------------------+| |+------------------------------------+| |
1647| ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
1648| |+----------------------------+| |+------------------------------------+| |
1649| | | ||:diagtext:`move constructor` || |
1650| | | |+------------------------------------+| |
1651| | | ||:diagtext:`copy assignment operator`|| |
1652| | | |+------------------------------------+| |
1653| | | ||:diagtext:`move assignment operator`|| |
1654| | | |+------------------------------------+| |
1655| | | ||:diagtext:`destructor` || |
1656| | | |+------------------------------------+| |
1657+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1658
1659+---------------------------------------------------------------------------+
1660|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
1661+---------------------------------------------------------------------------+
1662
1663+--------------------------------------------------------------------------------------------------------+
1664|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
1665+--------------------------------------------------------------------------------------------------------+
1666
1667+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1668|: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`|
1669| ||:diagtext:`function` || |
1670| |+-----------------------+| |
1671| ||:diagtext:`block` || |
1672| |+-----------------------+| |
1673| ||:diagtext:`method` || |
1674| |+-----------------------+| |
1675| ||:diagtext:`constructor`|| |
1676| |+-----------------------+| |
1677+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1678
1679+--------------------------------------------------------------------------------------+
1680|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
1681+--------------------------------------------------------------------------------------+
1682
1683+----------------------------------------------------------------------------------------------------+
1684|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
1685+----------------------------------------------------------------------------------------------------+
1686
1687+-------------------------------------------------------------------------------------------------------------+
1688|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
1689+-------------------------------------------------------------------------------------------------------------+
1690
1691+------------------------------------------------------------------------------------+
1692|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
1693+------------------------------------------------------------------------------------+
1694
1695+--------------------------------------------------------------------------------------+
1696|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
1697+--------------------------------------------------------------------------------------+
1698
1699+------------------------------------------------------------------------------------------------------------+
1700|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
1701+------------------------------------------------------------------------------------------------------------+
1702
1703+----------------------------------------------------------------------------------------------+
1704|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
1705+----------------------------------------------------------------------------------------------+
1706
1707+----------------------------------------------------------------------------------------------------------------------------------------+
1708|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
1709+----------------------------------------------------------------------------------------------------------------------------------------+
1710
1711+---------------------------------------------------------------------------------------------------------------+
1712|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
1713+---------------------------------------------------------------------------------------------------------------+
1714
1715+---------------------------------------------------------------------------------------------------------------------------------------+
1716|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
1717+---------------------------------------------------------------------------------------------------------------------------------------+
1718
1719+-------------------------------------------------------------------------------------------------------------------+
1720|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
1721+-------------------------------------------------------------------------------------------------------------------+
1722
1723+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1724|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
1725| ||:diagtext:`function`|| |
1726| |+--------------------+| |
1727| ||:diagtext:`object` || |
1728| |+--------------------+| |
1729+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1730
1731+-----------------------------------------------------------------------------------------------------------------+
1732|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
1733+-----------------------------------------------------------------------------------------------------------------+
1734
1735+---------------------------------------------------------------------------------------------------------------------+
1736|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
1737+---------------------------------------------------------------------------------------------------------------------+
1738
1739+---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1740|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
1741| ||:diagtext:`class template` || |
1742| |+-------------------------------------+| |
1743| ||:diagtext:`class template partial` || |
1744| |+-------------------------------------+| |
1745| ||:diagtext:`variable template` || |
1746| |+-------------------------------------+| |
1747| ||:diagtext:`variable template partial`|| |
1748| |+-------------------------------------+| |
1749| ||:diagtext:`function template` || |
1750| |+-------------------------------------+| |
1751| ||:diagtext:`member function` || |
1752| |+-------------------------------------+| |
1753| ||:diagtext:`static data member` || |
1754| |+-------------------------------------+| |
1755| ||:diagtext:`member class` || |
1756| |+-------------------------------------+| |
1757| ||:diagtext:`member enumeration` || |
1758| |+-------------------------------------+| |
1759+---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1760
1761+----------------------------------------------------------------------------------------+
1762|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
1763+----------------------------------------------------------------------------------------+
1764
1765+---------------------------------------------------------------------------------------------------------------+
1766|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
1767+---------------------------------------------------------------------------------------------------------------+
1768
1769+---------------------------------------------------------------------------------------------------------+
1770|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
1771+---------------------------------------------------------------------------------------------------------+
1772
1773+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
1774|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
1775| ||:diagtext:`struct` || |
1776| |+---------------------+| |
1777| ||:diagtext:`interface`|| |
1778| |+---------------------+| |
1779| ||:diagtext:`union` || |
1780| |+---------------------+| |
1781| ||:diagtext:`class` || |
1782| |+---------------------+| |
1783| ||:diagtext:`enum` || |
1784| |+---------------------+| |
1785+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
1786
1787+-------------------------------------------------------------------------------------------------------+
1788|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
1789+-------------------------------------------------------------------------------------------------------+
1790
1791+-----------------------------------------------------------------------------------+
1792|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
1793+-----------------------------------------------------------------------------------+
1794
1795+---------------------------------------------------------------------------------------------------------------+
1796|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
1797+---------------------------------------------------------------------------------------------------------------+
1798
1799+------------------------------------------------------------------------------------------+
1800|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
1801+------------------------------------------------------------------------------------------+
1802
1803+-------------------------------------------------------------------------------------+
1804|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
1805+-------------------------------------------------------------------------------------+
1806
1807
1808-Wc++98-compat-bind-to-temporary-copy
1809-------------------------------------
1810**Diagnostic text:**
1811
1812+---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
1813|: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`|
1814| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
1815| |+---------------------------------------+| |+----------------------------------------------+| |
1816| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
1817| |+---------------------------------------+| |+----------------------------------------------+| |
1818| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
1819| |+---------------------------------------+| |+----------------------------------------------+| |
1820| ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || |
1821| |+---------------------------------------+| |+----------------------------------------------+| |
1822| ||:diagtext:`copying member subobject` || | | |
1823| |+---------------------------------------+| | | |
1824| ||:diagtext:`copying array element` || | | |
1825| |+---------------------------------------+| | | |
1826| ||:diagtext:`allocating object` || | | |
1827| |+---------------------------------------+| | | |
1828| ||:diagtext:`copying temporary` || | | |
1829| |+---------------------------------------+| | | |
1830| ||:diagtext:`initializing base subobject`|| | | |
1831| |+---------------------------------------+| | | |
1832| ||:diagtext:`initializing vector element`|| | | |
1833| |+---------------------------------------+| | | |
1834+---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
1835
1836
1837-Wc++98-compat-local-type-template-args
1838---------------------------------------
1839**Diagnostic text:**
1840
1841+--------------------------------------------------------------------------------------------------------------------------------------------+
1842|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
1843+--------------------------------------------------------------------------------------------------------------------------------------------+
1844
1845
1846-Wc++98-compat-pedantic
1847-----------------------
1848Also controls `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1849
1850**Diagnostic text:**
1851
1852+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
1853|: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`|
1854| ||:diagtext:`integral` || |
1855| |+-----------------------+| |
1856| ||:diagtext:`enumeration`|| |
1857| |+-----------------------+| |
1858+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
1859
1860+------------------------------------------------------------------------------------------------------------------------+
1861|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
1862+------------------------------------------------------------------------------------------------------------------------+
1863
1864+----------------------------------------------------------------------------------------+
1865|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
1866+----------------------------------------------------------------------------------------+
1867
1868+--------------------------------------------------------------------------------------------------------+
1869|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
1870+--------------------------------------------------------------------------------------------------------+
1871
1872+-----------------------------------------------------------------------------------+
1873|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
1874+-----------------------------------------------------------------------------------+
1875
1876+-----------------------------------------------------------------------------+
1877|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
1878+-----------------------------------------------------------------------------+
1879
1880+----------------------------------------------------------------------------+
1881|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
1882+----------------------------------------------------------------------------+
1883
1884+-------------------------------------------------------------------------------------------------+
1885|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
1886+-------------------------------------------------------------------------------------------------+
1887
1888+-------------------------------------------------------------------------------------------------+
1889|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
1890+-------------------------------------------------------------------------------------------------+
1891
1892+----------------------------------------------------------------------------------+
1893|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
1894+----------------------------------------------------------------------------------+
1895
1896
1897-Wc++98-compat-unnamed-type-template-args
1898-----------------------------------------
1899**Diagnostic text:**
1900
1901+---------------------------------------------------------------------------------------------------+
1902|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
1903+---------------------------------------------------------------------------------------------------+
1904
1905
1906-Wc11-extensions
1907----------------
1908**Diagnostic text:**
1909
1910+---------------------------------------------------------------------------+
1911|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
1912+---------------------------------------------------------------------------+
1913
1914+----------------------------------------------------------------------------------------+
1915|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
1916+----------------------------------------------------------------------------------------+
1917
1918+----------------------------------------------------------------------------+
1919|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
1920+----------------------------------------------------------------------------+
1921
1922+------------------------------------------------------------------------------------+
1923|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
1924+------------------------------------------------------------------------------------+
1925
1926+--------------------------------------------------------------------------------------+
1927|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
1928+--------------------------------------------------------------------------------------+
1929
1930+---------------------------------------------------------------------------------+
1931|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
1932+---------------------------------------------------------------------------------+
1933
1934
1935-Wc99-compat
1936------------
1937Some of the diagnostics controlled by this flag are enabled by default.
1938
1939**Diagnostic text:**
1940
1941+---------------------------+--------------------------------------------------------+--------------------------------------------+
1942|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
1943| ||:diagtext:`using this character in an identifier` || |
1944| |+------------------------------------------------------+| |
1945| ||:diagtext:`starting an identifier with this character`|| |
1946| |+------------------------------------------------------+| |
1947+---------------------------+--------------------------------------------------------+--------------------------------------------+
1948
1949+---------------------------------------------------------------------------------+
1950|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
1951+---------------------------------------------------------------------------------+
1952
1953+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
1954|: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`|
1955| ||:diagtext:`have type 'long long'`|| |
1956| |+---------------------------------+| |
1957| ||:diagtext:`be ill-formed` || |
1958| |+---------------------------------+| |
1959+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
1960
1961
1962-Wc99-extensions
1963----------------
1964Some of the diagnostics controlled by this flag are enabled by default.
1965
1966**Diagnostic text:**
1967
1968+-----------------------------------------------------------------------------------------------+
1969|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
1970+-----------------------------------------------------------------------------------------------+
1971
1972+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
1973|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
1974| ||:diagtext:`qualifier in` |nbsp| || || || |
1975| |+--------------------------------+| |+---------------------+| |
1976| ||:diagtext:`static` |nbsp| || || || |
1977| |+--------------------------------+| |+---------------------+| |
1978| || || ||:diagtext:`'\[\*\] '`|| |
1979| |+--------------------------------+| |+---------------------+| |
1980+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
1981
1982+-----------------------------------------------------------------------------------+
1983|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
1984+-----------------------------------------------------------------------------------+
1985
1986+-------------------------------------------------------------------------------+
1987|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
1988+-------------------------------------------------------------------------------+
1989
1990+-------------------------------------------------------------------------------------------------+
1991|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
1992+-------------------------------------------------------------------------------------------------+
1993
1994+---------------------------------------------------------------------------------------+
1995|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
1996+---------------------------------------------------------------------------------------+
1997
1998+--------------------------------------------------------------------------------+
1999|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2000+--------------------------------------------------------------------------------+
2001
2002+------------------------------------------------------------------------------+
2003|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2004+------------------------------------------------------------------------------+
2005
2006+-------------------------------------------------------------------------------------------------------+
2007|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2008+-------------------------------------------------------------------------------------------------------+
2009
2010+---------------------------------------------------------------------------------------+
2011|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2012+---------------------------------------------------------------------------------------+
2013
2014
2015-Wcast-align
2016------------
2017**Diagnostic text:**
2018
2019+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2020|: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`|
2021+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2022
2023
2024-Wcast-calling-convention
2025-------------------------
2026This diagnostic is enabled by default.
2027
2028**Diagnostic text:**
2029
2030+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2031|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2032+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2033
2034
2035-Wcast-of-sel-type
2036------------------
2037This diagnostic is enabled by default.
2038
2039**Diagnostic text:**
2040
2041+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2042|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2043+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2044
2045
2046-Wcast-qual
2047-----------
2048**Diagnostic text:**
2049
2050+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2051|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2052| ||:diagtext:`const and volatile qualifiers`||
2053| |+-----------------------------------------+|
2054| ||:diagtext:`const qualifier` ||
2055| |+-----------------------------------------+|
2056| ||:diagtext:`volatile qualifier` ||
2057| |+-----------------------------------------+|
2058+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2059
2060+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2061|: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`|
2062+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2063
2064
2065-Wchar-align
2066------------
2067This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2068
2069-Wchar-subscripts
2070-----------------
2071**Diagnostic text:**
2072
2073+------------------------------------------------------------+-------------------------+-------------------------------------+
2074|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2075| ||:diagtext:`lower bound`|| |
2076| |+-----------------------+| |
2077| ||:diagtext:`length` || |
2078| |+-----------------------+| |
2079+------------------------------------------------------------+-------------------------+-------------------------------------+
2080
2081+------------------------------------------------------------------------+
2082|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2083+------------------------------------------------------------------------+
2084
2085
2086-Wclang-cl-pch
2087--------------
2088This diagnostic is enabled by default.
2089
2090**Diagnostic text:**
2091
2092+-------------------------------------------------------------------------------------------------------------------------+
2093|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2094+-------------------------------------------------------------------------------------------------------------------------+
2095
2096+------------------------------------------------------------------------------------------------------------------------------+
2097|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2098+------------------------------------------------------------------------------------------------------------------------------+
2099
2100+--------------------------------------------------------------------------------------------------------------------------------------+
2101|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
2102+--------------------------------------------------------------------------------------------------------------------------------------+
2103
2104+----------------------------------------------------------------------------------------------------------------------------------------------------+
2105|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
2106+----------------------------------------------------------------------------------------------------------------------------------------------------+
2107
2108
2109-Wclass-varargs
2110---------------
2111Some of the diagnostics controlled by this flag are enabled by default.
2112
2113Also controls `-Wnon-pod-varargs`_.
2114
2115**Diagnostic text:**
2116
2117+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2118|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2119| ||:diagtext:`function` ||| ||
2120| |+-----------------------+|+--------------------------------------------------------------------+|
2121| ||:diagtext:`block` |||+------------------------------------------------------------------+||
2122| |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2123| ||:diagtext:`method` |||+------------------------------------------------------------------+||
2124| |+-----------------------+|+--------------------------------------------------------------------+|
2125| ||:diagtext:`constructor`|| |
2126| |+-----------------------+| |
2127+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2128
2129
2130-Wcomma
2131-------
2132**Diagnostic text:**
2133
2134+-----------------------------------------------------------------------------+
2135|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2136+-----------------------------------------------------------------------------+
2137
2138
2139-Wcomment
2140---------
2141Some of the diagnostics controlled by this flag are enabled by default.
2142
2143**Diagnostic text:**
2144
2145+--------------------------------------------------------------------------------------------------+
2146|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2147+--------------------------------------------------------------------------------------------------+
2148
2149+-----------------------------------------------------------------------------------+
2150|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2151+-----------------------------------------------------------------------------------+
2152
2153+------------------------------------------------------------+
2154|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2155+------------------------------------------------------------+
2156
2157+-----------------------------------------------------------------+
2158|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2159+-----------------------------------------------------------------+
2160
2161
2162-Wcomments
2163----------
2164Synonym for `-Wcomment`_.
2165
2166
2167-Wcompare-distinct-pointer-types
2168--------------------------------
2169This diagnostic is enabled by default.
2170
2171**Diagnostic text:**
2172
2173+---------------------------------------------------------------------------+
2174|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2175+---------------------------------------------------------------------------+
2176
2177+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2178|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) uses non-standard composite pointer type` |nbsp| :placeholder:`C`|
2179+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2180
2181
2182-Wcomplex-component-init
2183------------------------
2184**Diagnostic text:**
2185
2186+----------------------------------------------------------------------------------------------------------------------+
2187|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2188+----------------------------------------------------------------------------------------------------------------------+
2189
2190
2191-Wconditional-type-mismatch
2192---------------------------
2193This diagnostic is enabled by default.
2194
2195**Diagnostic text:**
2196
2197+----------------------------------------------------------------------------------------------+
2198|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2199+----------------------------------------------------------------------------------------------+
2200
2201
2202-Wconditional-uninitialized
2203---------------------------
2204**Diagnostic text:**
2205
2206+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2207|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2208| ||:diagtext:`used here` ||
2209| |+-----------------------------+|
2210| ||:diagtext:`captured by block`||
2211| |+-----------------------------+|
2212+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2213
2214
2215-Wconfig-macros
2216---------------
2217This diagnostic is enabled by default.
2218
2219**Diagnostic text:**
2220
2221+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2222|: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`|
2223| ||:diagtext:`definition`|| ||+----------------------------------------------+|| |
2224| |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| |
2225| ||:diagtext:`#undef` || ||+----------------------------------------------+|| |
2226| |+----------------------+| |+------------------------------------------------+| |
2227| | | ||+------------------------------+ || |
2228| | | |||:diagtext:`-U`:placeholder:`B`| || |
2229| | | ||+------------------------------+ || |
2230| | | |+------------------------------------------------+| |
2231+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2232
2233
2234-Wconstant-conversion
2235---------------------
2236This diagnostic is enabled by default.
2237
2238Also controls `-Wbitfield-constant-conversion`_.
2239
2240**Diagnostic text:**
2241
2242+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2243|: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`|
2244+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2245
2246
2247-Wconstant-logical-operand
2248--------------------------
2249This diagnostic is enabled by default.
2250
2251**Diagnostic text:**
2252
2253+----------------------------------------------------------------------------------------------------------+
2254|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2255+----------------------------------------------------------------------------------------------------------+
2256
2257
2258-Wconstexpr-not-const
2259---------------------
2260This diagnostic is enabled by default.
2261
2262**Diagnostic text:**
2263
2264+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2265|: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`|
2266+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2267
2268
2269-Wconsumed
2270----------
2271**Diagnostic text:**
2272
2273+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2274|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
2275+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2276
2277+--------------------------------------------------------------------------------------------------------------------------------+
2278|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2279+--------------------------------------------------------------------------------------------------------------------------------+
2280
2281+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2282|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2283+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2284
2285+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2286|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2287+-------------------------------------------------------------------------------------------------------------------------------------------------------+
2288
2289+---------------------------------------------------------------------------------------------------------------+
2290|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2291+---------------------------------------------------------------------------------------------------------------+
2292
2293+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2294|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2295+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2296
2297+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2298|: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`|
2299+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2300
2301+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2302|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2303+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2304
2305
2306-Wconversion
2307------------
2308Some of the diagnostics controlled by this flag are enabled by default.
2309
2310Also controls `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wshorten-64-to-32`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
2311
2312**Diagnostic text:**
2313
2314+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2315|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2316+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2317
2318+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2319|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2320+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2321
2322+---------------------------------------------------------------------------------------------------------------------------------------------------------+
2323|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2324+---------------------------------------------------------------------------------------------------------------------------------------------------------+
2325
2326+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2327|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2328+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2329
2330+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2331|: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`|
2332+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2333
2334+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2335|: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`|
2336+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2337
2338
2339-Wconversion-null
2340-----------------
2341Synonym for `-Wnull-conversion`_.
2342
2343
2344-Wcoreturn-without-coawait
2345--------------------------
2346This diagnostic is enabled by default.
2347
2348**Diagnostic text:**
2349
2350+--------------------------------------------------------------------------------------------------------------------+
2351|:warning:`warning:` |nbsp| :diagtext:`'co\_return' used in a function that uses neither 'co\_await' nor 'co\_yield'`|
2352+--------------------------------------------------------------------------------------------------------------------+
2353
2354
2355-Wcovered-switch-default
2356------------------------
2357**Diagnostic text:**
2358
2359+--------------------------------------------------------------------------------------------------+
2360|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
2361+--------------------------------------------------------------------------------------------------+
2362
2363
2364-Wcstring-format-directive
2365--------------------------
2366**Diagnostic text:**
2367
2368+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2369|: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| |+----------------------+|
2370| ||:diagtext:`NSString`|| ||:diagtext:`method` ||
2371| |+--------------------+| |+----------------------+|
2372| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
2373| |+--------------------+| |+----------------------+|
2374+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2375
2376
2377-Wctor-dtor-privacy
2378-------------------
2379This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2380
2381-Wcuda-compat
2382-------------
2383Some of the diagnostics controlled by this flag are enabled by default.
2384
2385**Diagnostic text:**
2386
2387+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2388|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
2389+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2390
2391+------------------------------------------------------------------------------------------------------------+
2392|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
2393+------------------------------------------------------------------------------------------------------------+
2394
2395+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2396|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
2397+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2398
2399+--------------------------------------------------------------------------------------------------------------+
2400|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
2401+--------------------------------------------------------------------------------------------------------------+
2402
2403
2404-Wcustom-atomic-properties
2405--------------------------
2406**Diagnostic text:**
2407
2408+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2409|: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)`|
2410| ||:diagtext:`getter`|| |
2411| |+------------------+| |
2412| ||:diagtext:`setter`|| |
2413| |+------------------+| |
2414+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2415
2416
2417-Wdangling-else
2418---------------
2419This diagnostic is enabled by default.
2420
2421**Diagnostic text:**
2422
2423+---------------------------------------------------------------------------------+
2424|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
2425+---------------------------------------------------------------------------------+
2426
2427
2428-Wdangling-field
2429----------------
2430This diagnostic is enabled by default.
2431
2432**Diagnostic text:**
2433
2434+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2435|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
2436+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2437
2438+----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2439|:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
2440| || || |
2441| |+--------------------------------+| |
2442| ||:diagtext:`subobject of` |nbsp| || |
2443| |+--------------------------------+| |
2444+----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2445
2446+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2447|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
2448+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2449
2450
2451-Wdangling-initializer-list
2452---------------------------
2453This diagnostic is enabled by default.
2454
2455**Diagnostic text:**
2456
2457+-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2458|:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
2459| ||:diagtext:`the full-expression`||
2460| |+-------------------------------+|
2461| ||:diagtext:`the constructor` ||
2462| |+-------------------------------+|
2463+-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2464
2465
2466-Wdate-time
2467-----------
2468**Diagnostic text:**
2469
2470+------------------------------------------------------------------------------------------+
2471|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
2472+------------------------------------------------------------------------------------------+
2473
2474
2475-Wdealloc-in-category
2476---------------------
2477This diagnostic is enabled by default.
2478
2479**Diagnostic text:**
2480
2481+---------------------------------------------------------------------------------+
2482|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
2483+---------------------------------------------------------------------------------+
2484
2485
2486-Wdebug-compression-unavailable
2487-------------------------------
2488This diagnostic is enabled by default.
2489
2490**Diagnostic text:**
2491
2492+------------------------------------------------------------------------------------------+
2493|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
2494+------------------------------------------------------------------------------------------+
2495
2496
2497-Wdeclaration-after-statement
2498-----------------------------
2499**Diagnostic text:**
2500
2501+-----------------------------------------------------------------------------------+
2502|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
2503+-----------------------------------------------------------------------------------+
2504
2505
2506-Wdelegating-ctor-cycles
2507------------------------
2508This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
2509
2510**Diagnostic text:**
2511
2512+------------------------------------------------------------------------------------------------------------------------+
2513|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
2514+------------------------------------------------------------------------------------------------------------------------+
2515
2516
2517-Wdelete-incomplete
2518-------------------
2519This diagnostic is enabled by default.
2520
2521**Diagnostic text:**
2522
2523+-------------------------------------------------------------------------------------------------------------------+
2524|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
2525+-------------------------------------------------------------------------------------------------------------------+
2526
2527+--------------------------------------------------------------------------------------------------------------------------------------------------+
2528|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
2529+--------------------------------------------------------------------------------------------------------------------------------------------------+
2530
2531
2532-Wdelete-non-virtual-dtor
2533-------------------------
2534Some of the diagnostics controlled by this flag are enabled by default.
2535
2536**Diagnostic text:**
2537
2538+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2539|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
2540| ||:diagtext:`delete` || |
2541| |+----------------------+| |
2542| ||:diagtext:`destructor`|| |
2543| |+----------------------+| |
2544+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2545
2546+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2547|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
2548| ||:diagtext:`delete` || |
2549| |+----------------------+| |
2550| ||:diagtext:`destructor`|| |
2551| |+----------------------+| |
2552+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2553
2554
2555-Wdeprecated
2556------------
2557Some of the diagnostics controlled by this flag are enabled by default.
2558
2559Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
2560
2561**Diagnostic text:**
2562
2563+---------------------------------------------------------------+
2564|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
2565+---------------------------------------------------------------+
2566
2567+---------------------------------------------------------------------------------------------------------+
2568|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
2569+---------------------------------------------------------------------------------------------------------+
2570
2571+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2572|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+|
2573| ||:diagtext:`constructor` || ||+------------------------+---------------------------------+||
2574| |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
2575| ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`||||
2576| |+-------------------------------+| ||| |+-------------------------------+|||
2577| | | ||| ||:diagtext:`constructor` ||||
2578| | | ||| |+-------------------------------+|||
2579| | | ||+------------------------+---------------------------------+||
2580| | | |+------------------------------------------------------------+|
2581| | | ||:diagtext:`destructor` ||
2582| | | |+------------------------------------------------------------+|
2583+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2584
2585+-------------------------------------------------------------------------------------------------------------------------------------+
2586|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
2587+-------------------------------------------------------------------------------------------------------------------------------------+
2588
2589+----------------------------------------------------------------------------------------------------------------------------------------+
2590|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
2591+----------------------------------------------------------------------------------------------------------------------------------------+
2592
2593+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2594|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
2595+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2596
2597+--------------------------------------------------------------------------------------+
2598|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
2599+--------------------------------------------------------------------------------------+
2600
2601+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2602|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
2603+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2604
2605+------------------------------------------------------------------------------------+
2606|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
2607+------------------------------------------------------------------------------------+
2608
2609
2610-Wdeprecated-attributes
2611-----------------------
2612This diagnostic is enabled by default.
2613
2614**Diagnostic text:**
2615
2616+------------------------------------------------------------------------------------------------------------------------------------------------+
2617|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
2618+------------------------------------------------------------------------------------------------------------------------------------------------+
2619
2620
2621-Wdeprecated-declarations
2622-------------------------
2623This diagnostic is enabled by default.
2624
2625**Diagnostic text:**
2626
2627+-----------------------------------------------------------------------------------------------------------------+
2628|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
2629+-----------------------------------------------------------------------------------------------------------------+
2630
2631+----------------------------------------------------------------------------+
2632|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
2633+----------------------------------------------------------------------------+
2634
2635+---------------------------------------------------------------------------------------------------------------------+
2636|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
2637+---------------------------------------------------------------------------------------------------------------------+
2638
2639+-----------------------------------------------------------------------------------------------------+
2640|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
2641+-----------------------------------------------------------------------------------------------------+
2642
2643+-------------------------------------------------------------------------------------------------------------------------------------+
2644|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
2645+-------------------------------------------------------------------------------------------------------------------------------------+
2646
2647
2648-Wdeprecated-implementations
2649----------------------------
2650**Diagnostic text:**
2651
2652+----------------------------------------------------------------------+----------------------+
2653|:warning:`warning:` |nbsp| :diagtext:`Implementing deprecated` |nbsp| |+--------------------+|
2654| ||:diagtext:`method` ||
2655| |+--------------------+|
2656| ||:diagtext:`class` ||
2657| |+--------------------+|
2658| ||:diagtext:`category`||
2659| |+--------------------+|
2660+----------------------------------------------------------------------+----------------------+
2661
2662
2663-Wdeprecated-increment-bool
2664---------------------------
2665This diagnostic is enabled by default.
2666
2667**Diagnostic text:**
2668
2669+---------------------------------------------------------------------------------------------------------------------+
2670|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++1z`|
2671+---------------------------------------------------------------------------------------------------------------------+
2672
2673
2674-Wdeprecated-objc-isa-usage
2675---------------------------
2676This diagnostic is enabled by default.
2677
2678**Diagnostic text:**
2679
2680+-------------------------------------------------------------------------------------------------------------------+
2681|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
2682+-------------------------------------------------------------------------------------------------------------------+
2683
2684+----------------------------------------------------------------------------------------------------------------------+
2685|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
2686+----------------------------------------------------------------------------------------------------------------------+
2687
2688
2689-Wdeprecated-objc-pointer-introspection
2690---------------------------------------
2691This diagnostic is enabled by default.
2692
2693Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
2694
2695**Diagnostic text:**
2696
2697+--------------------------------------------------------------------------------------------------------------------------+
2698|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2699+--------------------------------------------------------------------------------------------------------------------------+
2700
2701
2702-Wdeprecated-objc-pointer-introspection-performSelector
2703-------------------------------------------------------
2704This diagnostic is enabled by default.
2705
2706**Diagnostic text:**
2707
2708+--------------------------------------------------------------------------------------------------------------------------+
2709|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2710+--------------------------------------------------------------------------------------------------------------------------+
2711
2712
2713-Wdeprecated-register
2714---------------------
2715This diagnostic is enabled by default.
2716
2717**Diagnostic text:**
2718
2719+-------------------------------------------------------------------------------------------------------------------+
2720|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++1z`|
2721+-------------------------------------------------------------------------------------------------------------------+
2722
2723
2724-Wdeprecated-writable-strings
2725-----------------------------
2726Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
2727
2728
2729-Wdirect-ivar-access
2730--------------------
2731**Diagnostic text:**
2732
2733+------------------------------------------------------------------------------------------------------------------------------+
2734|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
2735+------------------------------------------------------------------------------------------------------------------------------+
2736
2737
2738-Wdisabled-macro-expansion
2739--------------------------
2740**Diagnostic text:**
2741
2742+----------------------------------------------------------------------------+
2743|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
2744+----------------------------------------------------------------------------+
2745
2746
2747-Wdisabled-optimization
2748-----------------------
2749This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2750
2751-Wdiscard-qual
2752--------------
2753This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2754
2755-Wdistributed-object-modifiers
2756------------------------------
2757This diagnostic is enabled by default.
2758
2759**Diagnostic text:**
2760
2761+----------------------------------------------------------------------------------------------------------------------------------------------+
2762|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
2763+----------------------------------------------------------------------------------------------------------------------------------------------+
2764
2765+-------------------------------------------------------------------------------------------------------------------------------------------+
2766|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
2767+-------------------------------------------------------------------------------------------------------------------------------------------+
2768
2769
2770-Wdiv-by-zero
2771-------------
2772This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2773
2774-Wdivision-by-zero
2775------------------
2776This diagnostic is enabled by default.
2777
2778**Diagnostic text:**
2779
2780+---------------------------+-----------------------+----------------------------------------+
2781|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
2782| ||:diagtext:`remainder`|| |
2783| |+---------------------+| |
2784| ||:diagtext:`division` || |
2785| |+---------------------+| |
2786+---------------------------+-----------------------+----------------------------------------+
2787
2788
2789-Wdll-attribute-on-redeclaration
2790--------------------------------
2791This diagnostic is enabled by default.
2792
2793**Diagnostic text:**
2794
2795+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2796|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
2797+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2798
2799
2800-Wdllexport-explicit-instantiation-decl
2801---------------------------------------
2802This diagnostic is enabled by default.
2803
2804**Diagnostic text:**
2805
2806+---------------------------------------------------------------------------------------------------+
2807|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
2808+---------------------------------------------------------------------------------------------------+
2809
2810
2811-Wdllimport-static-field-def
2812----------------------------
2813This diagnostic is enabled by default.
2814
2815**Diagnostic text:**
2816
2817+---------------------------------------------------------------------------+
2818|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
2819+---------------------------------------------------------------------------+
2820
2821
2822-Wdocumentation
2823---------------
2824Also controls `-Wdocumentation-html`_, `-Wdocumentation-deprecated-sync`_.
2825
2826**Diagnostic text:**
2827
2828+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
2829|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
2830| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
2831| |+--------------+|+---------------------+| |+---------------------+| |
2832| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
2833| |+--------------+|+---------------------+| |+---------------------+| |
2834| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
2835| | |+---------------------+| |+---------------------+| |
2836| | ||:diagtext:`struct` || ||:diagtext:`struct` || |
2837| | |+---------------------+| |+---------------------+| |
2838| | ||:diagtext:`union` || ||:diagtext:`union` || |
2839| | |+---------------------+| |+---------------------+| |
2840+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
2841
2842+-----------------------------------------------------------+----------------+-----------------------------+
2843|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
2844| ||:diagtext:`\\`|| |
2845| |+--------------+| |
2846| ||:diagtext:`@` || |
2847| |+--------------+| |
2848+-----------------------------------------------------------+----------------+-----------------------------+
2849
2850+------------------------------------------------------------------+----------------+-------------------------------------+
2851|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
2852| ||:diagtext:`\\`|| |
2853| |+--------------+| |
2854| ||:diagtext:`@` || |
2855| |+--------------+| |
2856+------------------------------------------------------------------+----------------+-------------------------------------+
2857
2858+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
2859|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
2860| ||:diagtext:`\\`|||:diagtext:`classdesign` || |
2861| |+--------------+|+------------------------+| |
2862| ||:diagtext:`@` |||:diagtext:`coclass` || |
2863| |+--------------+|+------------------------+| |
2864| | ||:diagtext:`dependency` || |
2865| | |+------------------------+| |
2866| | ||:diagtext:`helper` || |
2867| | |+------------------------+| |
2868| | ||:diagtext:`helperclass` || |
2869| | |+------------------------+| |
2870| | ||:diagtext:`helps` || |
2871| | |+------------------------+| |
2872| | ||:diagtext:`instancesize`|| |
2873| | |+------------------------+| |
2874| | ||:diagtext:`ownership` || |
2875| | |+------------------------+| |
2876| | ||:diagtext:`performance` || |
2877| | |+------------------------+| |
2878| | ||:diagtext:`security` || |
2879| | |+------------------------+| |
2880| | ||:diagtext:`superclass` || |
2881| | |+------------------------+| |
2882+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
2883
2884+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
2885|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
2886| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
2887| |+--------------+|+-------------------------+| |+---------------------------------+| |
2888| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
2889| |+--------------+|+-------------------------+| |+---------------------------------+| |
2890| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
2891| | |+-------------------------+| |+---------------------------------+| |
2892| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
2893| | |+-------------------------+| |+---------------------------------+| |
2894| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
2895| | |+-------------------------+| |+---------------------------------+| |
2896+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
2897
2898+-------------------------------------------------------------------------------------------------------+
2899|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
2900+-------------------------------------------------------------------------------------------------------+
2901
2902+-------------------------------------------------------------------------------+
2903|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
2904+-------------------------------------------------------------------------------+
2905
2906+-----------------------------------------------------------------------------------------------------+
2907|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
2908+-----------------------------------------------------------------------------------------------------+
2909
2910+------------------------------------------------------------------------------------------------------------------------------------------+
2911|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
2912+------------------------------------------------------------------------------------------------------------------------------------------+
2913
2914+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
2915|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
2916| ||:diagtext:`\\`|| |
2917| |+--------------+| |
2918| ||:diagtext:`@` || |
2919| |+--------------+| |
2920+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
2921
2922+---------------------------------------------------------------------------------------------------------------------+
2923|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
2924+---------------------------------------------------------------------------------------------------------------------+
2925
2926+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
2927|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
2928| ||:diagtext:`\\`|| ||:diagtext:`function returning void`||
2929| |+--------------+| |+-----------------------------------+|
2930| ||:diagtext:`@` || ||:diagtext:`constructor` ||
2931| |+--------------+| |+-----------------------------------+|
2932| | | ||:diagtext:`destructor` ||
2933| | | |+-----------------------------------+|
2934| | | ||:diagtext:`method returning void` ||
2935| | | |+-----------------------------------+|
2936+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
2937
2938+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
2939|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
2940| ||:diagtext:`\\`|| |
2941| |+--------------+| |
2942| ||:diagtext:`@` || |
2943| |+--------------+| |
2944+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
2945
2946+--------------------------------------------------------------------------------------------------------------+
2947|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
2948+--------------------------------------------------------------------------------------------------------------+
2949
2950+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
2951|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
2952| ||:diagtext:`\\`|| |
2953| |+--------------+| |
2954| ||:diagtext:`@` || |
2955| |+--------------+| |
2956+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
2957
2958+------------------------------------------------------------------------------------------------------------------------------+
2959|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
2960+------------------------------------------------------------------------------------------------------------------------------+
2961
2962+---------------------------------------------------------------------+
2963|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
2964+---------------------------------------------------------------------+
2965
2966+----------------------------------------+----------------+------------------------------------------------------------------------------+
2967|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
2968| ||:diagtext:`\\`|| |
2969| |+--------------+| |
2970| ||:diagtext:`@` || |
2971| |+--------------+| |
2972+----------------------------------------+----------------+------------------------------------------------------------------------------+
2973
2974
2975-Wdocumentation-deprecated-sync
2976-------------------------------
2977**Diagnostic text:**
2978
2979+----------------------------------------------------------------------------------------------------------------------------------+
2980|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
2981+----------------------------------------------------------------------------------------------------------------------------------+
2982
2983
2984-Wdocumentation-html
2985--------------------
2986**Diagnostic text:**
2987
2988+-----------------------------------------------------------------------------------------------+
2989|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
2990+-----------------------------------------------------------------------------------------------+
2991
2992+--------------------------------------------------------------------------------+
2993|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
2994+--------------------------------------------------------------------------------+
2995
2996+--------------------------------------------------------------------------------------------------+
2997|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
2998+--------------------------------------------------------------------------------------------------+
2999
3000+-----------------------------------------------------------------------------------------------------------------------------+
3001|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
3002+-----------------------------------------------------------------------------------------------------------------------------+
3003
3004
3005-Wdocumentation-pedantic
3006------------------------
3007Also controls `-Wdocumentation-unknown-command`_.
3008
3009**Diagnostic text:**
3010
3011+-----------------------------------------------------------------------------------------------+
3012|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
3013+-----------------------------------------------------------------------------------------------+
3014
3015
3016-Wdocumentation-unknown-command
3017-------------------------------
3018**Diagnostic text:**
3019
3020+--------------------------------------------------------------------------------------------------------------------------------------------+
3021|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
3022+--------------------------------------------------------------------------------------------------------------------------------------------+
3023
3024+---------------------------------------------------------------+
3025|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
3026+---------------------------------------------------------------+
3027
3028
3029-Wdollar-in-identifier-extension
3030--------------------------------
3031**Diagnostic text:**
3032
3033+--------------------------------------------------------+
3034|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
3035+--------------------------------------------------------+
3036
3037
3038-Wdouble-promotion
3039------------------
3040**Diagnostic text:**
3041
3042+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3043|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3044+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3045
3046
3047-Wduplicate-decl-specifier
3048--------------------------
3049This diagnostic is enabled by default.
3050
3051**Diagnostic text:**
3052
3053+-----------------------------------------------------------------------------------------------------+
3054|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3055+-----------------------------------------------------------------------------------------------------+
3056
3057+-----------------------------------------------------------------------------------------------------+
3058|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3059+-----------------------------------------------------------------------------------------------------+
3060
3061
3062-Wduplicate-enum
3063----------------
3064**Diagnostic text:**
3065
3066+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3067|: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`|
3068+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3069
3070
3071-Wduplicate-method-arg
3072----------------------
3073**Diagnostic text:**
3074
3075+------------------------------------------------------------------------------------------------+
3076|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
3077+------------------------------------------------------------------------------------------------+
3078
3079
3080-Wduplicate-method-match
3081------------------------
3082**Diagnostic text:**
3083
3084+-----------------------------------------------------------------------------------------------------------------------------------+
3085|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
3086+-----------------------------------------------------------------------------------------------------------------------------------+
3087
3088
3089-Wdynamic-class-memaccess
3090-------------------------
3091This diagnostic is enabled by default.
3092
3093**Diagnostic text:**
3094
3095+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3096|: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| |+-----------------------+|
3097| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
3098| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
3099| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
3100| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
3101| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
3102| |+-----------------------------+| | | |+-----------------------+|
3103| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
3104| |+-----------------------------+| | | |+-----------------------+|
3105+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3106
3107
3108-Weffc++
3109--------
3110This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3111
3112-Wembedded-directive
3113--------------------
3114**Diagnostic text:**
3115
3116+----------------------------------------------------------------------------------------------------------+
3117|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
3118+----------------------------------------------------------------------------------------------------------+
3119
3120
3121-Wempty-body
3122------------
3123This diagnostic is enabled by default.
3124
3125**Diagnostic text:**
3126
3127+--------------------------------------------------------------+
3128|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
3129+--------------------------------------------------------------+
3130
3131+------------------------------------------------------------------+
3132|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
3133+------------------------------------------------------------------+
3134
3135+--------------------------------------------------------------------------+
3136|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
3137+--------------------------------------------------------------------------+
3138
3139+----------------------------------------------------------------------+
3140|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
3141+----------------------------------------------------------------------+
3142
3143+----------------------------------------------------------------+
3144|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
3145+----------------------------------------------------------------+
3146
3147
3148-Wempty-decomposition
3149---------------------
3150This diagnostic is enabled by default.
3151
3152**Diagnostic text:**
3153
3154+-------------------------------------------------------------------------------------------------+
3155|:warning:`warning:` |nbsp| :diagtext:`ISO C++1z does not allow a decomposition group to be empty`|
3156+-------------------------------------------------------------------------------------------------+
3157
3158
3159-Wempty-translation-unit
3160------------------------
3161**Diagnostic text:**
3162
3163+------------------------------------------------------------------------------------------------------------+
3164|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
3165+------------------------------------------------------------------------------------------------------------+
3166
3167
3168-Wencode-type
3169-------------
3170This diagnostic is enabled by default.
3171
3172**Diagnostic text:**
3173
3174+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3175|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
3176+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3177
3178
3179-Wendif-labels
3180--------------
3181Synonym for `-Wextra-tokens`_.
3182
3183
3184-Wenum-compare
3185--------------
3186This diagnostic is enabled by default.
3187
3188**Diagnostic text:**
3189
3190+------------------------------------------------------------------------------------------------+
3191|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
3192+------------------------------------------------------------------------------------------------+
3193
3194
3195-Wenum-conversion
3196-----------------
3197This diagnostic is enabled by default.
3198
3199**Diagnostic text:**
3200
3201+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3202|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
3203+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3204
3205
3206-Wenum-too-large
3207----------------
3208This diagnostic is enabled by default.
3209
3210**Diagnostic text:**
3211
3212+-----------------------------------------------------------------------------------------+
3213|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
3214+-----------------------------------------------------------------------------------------+
3215
3216+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3217|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
3218+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3219
3220
3221-Wexceptions
3222------------
3223This diagnostic is enabled by default.
3224
3225**Diagnostic text:**
3226
3227+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3228|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
3229| ||:diagtext:`constructor`|| |
3230| |+-----------------------+| |
3231| ||:diagtext:`destructor` || |
3232| |+-----------------------+| |
3233+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3234
3235+-------------------------------------------------------------------------------------------------------------------------------------+
3236|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
3237+-------------------------------------------------------------------------------------------------------------------------------------+
3238
3239
3240-Wexit-time-destructors
3241-----------------------
3242**Diagnostic text:**
3243
3244+-----------------------------------------------------------------------------------+
3245|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
3246+-----------------------------------------------------------------------------------+
3247
3248
3249-Wexpansion-to-defined
3250----------------------
3251Some of the diagnostics controlled by this flag are enabled by default.
3252
3253**Diagnostic text:**
3254
3255+-------------------------------------------------------------------------------------------------+
3256|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3257+-------------------------------------------------------------------------------------------------+
3258
3259+-------------------------------------------------------------------------------------------------+
3260|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3261+-------------------------------------------------------------------------------------------------+
3262
3263
3264-Wexplicit-initialize-call
3265--------------------------
3266This diagnostic is enabled by default.
3267
3268**Diagnostic text:**
3269
3270+------------------------------------------------------------------------------------------------------------+
3271|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
3272+------------------------------------------------------------------------------------------------------------+
3273
3274+----------------------------------------------------------------------------------------------------------------------------+
3275|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
3276+----------------------------------------------------------------------------------------------------------------------------+
3277
3278
3279-Wexplicit-ownership-type
3280-------------------------
3281**Diagnostic text:**
3282
3283+-------------------------------------------------------------------------------------------------------------------------------------+
3284|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
3285+-------------------------------------------------------------------------------------------------------------------------------------+
3286
3287
3288-Wextended-offsetof
3289-------------------
3290**Diagnostic text:**
3291
3292+--------------------------------------------------------------------------------------+
3293|:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
3294+--------------------------------------------------------------------------------------+
3295
3296
3297-Wextern-c-compat
3298-----------------
3299This diagnostic is enabled by default.
3300
3301**Diagnostic text:**
3302
3303+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3304|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
3305| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
3306| |+-------------------------+|+------------------+| |+-------------------------+| |
3307| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
3308| |+-------------------------+|+------------------+| |+-------------------------+| |
3309+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3310
3311
3312-Wextern-initializer
3313--------------------
3314This diagnostic is enabled by default.
3315
3316**Diagnostic text:**
3317
3318+---------------------------------------------------------------------------+
3319|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
3320+---------------------------------------------------------------------------+
3321
3322
3323-Wextra
3324-------
3325Some of the diagnostics controlled by this flag are enabled by default.
3326
3327Controls `-Wmissing-field-initializers`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wsemicolon-before-method-body`_, `-Wmissing-method-return-type`_, `-Wsign-compare`_, `-Wunused-parameter`_.
3328
3329
3330-Wextra-qualification
3331---------------------
3332This diagnostic is enabled by default.
3333
3334**Diagnostic text:**
3335
3336+--------------------------------------------------------------------------------------------+
3337|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
3338+--------------------------------------------------------------------------------------------+
3339
3340
3341-Wextra-semi
3342------------
3343Also controls `-Wc++11-extra-semi`_.
3344
3345**Diagnostic text:**
3346
3347+--------------------------------------------------------+------------------------------------------------+
3348|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
3349| ||:diagtext:`outside of a function` ||
3350| |+----------------------------------------------+|
3351| ||+--------------------------------------------+||
3352| |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
3353| ||+--------------------------------------------+||
3354| |+----------------------------------------------+|
3355| ||:diagtext:`inside instance variable list` ||
3356| |+----------------------------------------------+|
3357| ||:diagtext:`after member function definition` ||
3358| |+----------------------------------------------+|
3359+--------------------------------------------------------+------------------------------------------------+
3360
3361+---------------------------------------------------------------------------------+
3362|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
3363+---------------------------------------------------------------------------------+
3364
3365
3366-Wextra-tokens
3367--------------
3368This diagnostic is enabled by default.
3369
3370**Diagnostic text:**
3371
3372+------------------------------------------------------------------------------------------------------------+
3373|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
3374+------------------------------------------------------------------------------------------------------------+
3375
3376+-------------------------------------------------------------------------------------------------------------------------------+
3377|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
3378+-------------------------------------------------------------------------------------------------------------------------------+
3379
3380
3381-Wfallback
3382----------
3383This diagnostic is enabled by default.
3384
3385**Diagnostic text:**
3386
3387+------------------------------------------------------------------------------+
3388|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
3389+------------------------------------------------------------------------------+
3390
3391
3392-Wflag-enum
3393-----------
3394This diagnostic is enabled by default.
3395
3396**Diagnostic text:**
3397
3398+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3399|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
3400+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3401
3402
3403-Wflexible-array-extensions
3404---------------------------
3405**Diagnostic text:**
3406
3407+-------------------------------------------------------------------------------------------------------------------------------+
3408|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
3409+-------------------------------------------------------------------------------------------------------------------------------+
3410
3411+-------------------------------------------------------------------------------------------------------------------------+
3412|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
3413+-------------------------------------------------------------------------------------------------------------------------+
3414
3415
3416-Wfloat-conversion
3417------------------
3418Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
3419
3420**Diagnostic text:**
3421
3422+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3423|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3424+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3425
3426
3427-Wfloat-equal
3428-------------
3429**Diagnostic text:**
3430
3431+---------------------------------------------------------------------------------------+
3432|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
3433+---------------------------------------------------------------------------------------+
3434
3435
3436-Wfloat-overflow-conversion
3437---------------------------
3438**Diagnostic text:**
3439
3440+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3441|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
3442+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3443
3444
3445-Wfloat-zero-conversion
3446-----------------------
3447**Diagnostic text:**
3448
3449+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3450|: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`|
3451+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3452
3453
3454-Wfor-loop-analysis
3455-------------------
3456**Diagnostic text:**
3457
3458+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3459|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
3460| ||:diagtext:`decremented`|| |
3461| |+-----------------------+| |
3462| ||:diagtext:`incremented`|| |
3463| |+-----------------------+| |
3464+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3465
3466+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3467|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
3468| ||:diagtext:`s` || |
3469| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3470| ||+------------------------+ || |
3471| ||| |nbsp| :placeholder:`B`| || |
3472| ||+------------------------+ || |
3473| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3474| ||+------------------------------------------------------------------------------------+ || |
3475| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
3476| ||+------------------------------------------------------------------------------------+ || |
3477| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3478| ||+-------------------------------------------------------------------------------------------------------------------+ || |
3479| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
3480| ||+-------------------------------------------------------------------------------------------------------------------+ || |
3481| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3482| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
3483| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
3484| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
3485| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3486+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3487
3488
3489-Wformat
3490--------
3491This diagnostic is enabled by default.
3492
3493Also controls `-Wformat-extra-args`_, `-Wformat-zero-length`_, `-Wnonnull`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-invalid-specifier`_.
3494
3495**Diagnostic text:**
3496
3497+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3498|: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`|
3499| ||:diagtext:`values of type` || |
3500| |+--------------------------------------------+| |
3501| ||:diagtext:`enum values with underlying type`|| |
3502| |+--------------------------------------------+| |
3503+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3504
3505+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3506|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3507| ||:diagtext:`type` || |
3508| |+---------------------------+| |
3509| ||:diagtext:`underlying type`|| |
3510| |+---------------------------+| |
3511+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3512
3513+-----------------------------------------------------------------------------+-----------------------------+
3514|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
3515| ||:diagtext:`field width` ||
3516| |+---------------------------+|
3517| ||:diagtext:`field precision`||
3518| |+---------------------------+|
3519+-----------------------------------------------------------------------------+-----------------------------+
3520
3521+----------------------------------------------------------------------------------------------------------+
3522|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
3523+----------------------------------------------------------------------------------------------------------+
3524
3525+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3526|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3527+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3528
3529+--------------------------------------------------------------------------------+
3530|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
3531+--------------------------------------------------------------------------------+
3532
3533+-------------------------------------------------------------------------------------------------------+
3534|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
3535+-------------------------------------------------------------------------------------------------------+
3536
3537+------------------------------------------------------------+
3538|:warning:`warning:` |nbsp| :diagtext:`format string missing`|
3539+------------------------------------------------------------+
3540
3541+----------------------------------------------------------------------------------------------------------------------------------+
3542|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
3543+----------------------------------------------------------------------------------------------------------------------------------+
3544
3545+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3546|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
3547| ||:diagtext:`\*` || ||:diagtext:`width` || |
3548| |+---------------+| |+---------------------+| |
3549| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
3550| |+---------------+| |+---------------------+| |
3551+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3552
3553+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3554|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
3555| ||:diagtext:`width` || |
3556| |+---------------------+| |
3557| ||:diagtext:`precision`|| |
3558| |+---------------------+| |
3559+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3560
3561+-----------------------------------------------------------------+
3562|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
3563+-----------------------------------------------------------------+
3564
3565+------------------------------------------------------------------------------------------+
3566|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
3567+------------------------------------------------------------------------------------------+
3568
3569+---------------------------------------------------------------------------+
3570|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
3571+---------------------------------------------------------------------------+
3572
3573+-----------------------------------------------------------------------------------------------------------------------------------------+
3574|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
3575+-----------------------------------------------------------------------------------------------------------------------------------------+
3576
3577+------------------------------------------------------------------+
3578|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
3579+------------------------------------------------------------------+
3580
3581+--------------------------------------------------------------------------------+
3582|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
3583+--------------------------------------------------------------------------------+
3584
3585+-------------------------------------------------------------------------------------------------------+
3586|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
3587+-------------------------------------------------------------------------------------------------------+
3588
3589+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3590|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3591+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3592
3593+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3594|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
3595| ||:diagtext:`field width`|| |
3596| |+-----------------------+| |
3597| ||:diagtext:`precision` || |
3598| |+-----------------------+| |
3599+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3600
3601+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3602|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
3603+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3604
3605+----------------------------------------------------------------------------------------+
3606|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
3607+----------------------------------------------------------------------------------------+
3608
3609+----------------------------------------------------------------------------------------+
3610|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
3611+----------------------------------------------------------------------------------------+
3612
3613
3614-Wformat-extra-args
3615-------------------
3616This diagnostic is enabled by default.
3617
3618**Diagnostic text:**
3619
3620+------------------------------------------------------------------------------+
3621|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
3622+------------------------------------------------------------------------------+
3623
3624
3625-Wformat-invalid-specifier
3626--------------------------
3627This diagnostic is enabled by default.
3628
3629**Diagnostic text:**
3630
3631+--------------------------------------------------------------------------------------------------+
3632|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
3633+--------------------------------------------------------------------------------------------------+
3634
3635
3636-Wformat-non-iso
3637----------------
3638**Diagnostic text:**
3639
3640+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3641|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
3642| ||:diagtext:`length modifier` || |
3643| |+--------------------------------+| |
3644| ||:diagtext:`conversion specifier`|| |
3645| |+--------------------------------+| |
3646+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3647
3648+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3649|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
3650+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3651
3652+--------------------------------------------------------------------------------------+
3653|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
3654+--------------------------------------------------------------------------------------+
3655
3656
3657-Wformat-nonliteral
3658-------------------
3659**Diagnostic text:**
3660
3661+----------------------------------------------------------------------------+
3662|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
3663+----------------------------------------------------------------------------+
3664
3665
3666-Wformat-pedantic
3667-----------------
3668**Diagnostic text:**
3669
3670+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3671|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3672| ||:diagtext:`type` || |
3673| |+---------------------------+| |
3674| ||:diagtext:`underlying type`|| |
3675| |+---------------------------+| |
3676+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3677
3678
3679-Wformat-security
3680-----------------
3681This diagnostic is enabled by default.
3682
3683**Diagnostic text:**
3684
3685+---------------------------------------------------------------------------------------------------+
3686|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
3687+---------------------------------------------------------------------------------------------------+
3688
3689
3690-Wformat-y2k
3691------------
3692This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3693
3694-Wformat-zero-length
3695--------------------
3696This diagnostic is enabled by default.
3697
3698**Diagnostic text:**
3699
3700+-------------------------------------------------------------+
3701|:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
3702+-------------------------------------------------------------+
3703
3704
3705-Wformat=2
3706----------
3707Some of the diagnostics controlled by this flag are enabled by default.
3708
3709Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
3710
3711
3712-Wfour-char-constants
3713---------------------
3714**Diagnostic text:**
3715
3716+-------------------------------------------------------------------------+
3717|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
3718+-------------------------------------------------------------------------+
3719
3720
3721-Wframe-larger-than=
3722--------------------
3723This diagnostic is enabled by default.
3724
3725**Diagnostic text:**
3726
3727The text of this diagnostic is not controlled by Clang.
3728
3729+--------------------------------------------------------------------------------------------------------------------------------------+
3730|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
3731+--------------------------------------------------------------------------------------------------------------------------------------+
3732
3733
3734-Wfunction-def-in-objc-container
3735--------------------------------
3736This diagnostic is enabled by default.
3737
3738**Diagnostic text:**
3739
3740+--------------------------------------------------------------------------------------------------------+
3741|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
3742+--------------------------------------------------------------------------------------------------------+
3743
3744
3745-Wfuture-compat
3746---------------
3747This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3748
3749-Wgcc-compat
3750------------
3751Some of the diagnostics controlled by this flag are enabled by default.
3752
3753**Diagnostic text:**
3754
3755+------------------------------------------------------------------------+
3756|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
3757+------------------------------------------------------------------------+
3758
3759+-----------------------------------------------------------------------------------------------+
3760|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
3761+-----------------------------------------------------------------------------------------------+
3762
3763+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3764|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
3765+--------------------------------------------------------------------------------------------------------------------------------------------------------+
3766
3767+---------------------------------------------------------------------------------------+
3768|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
3769+---------------------------------------------------------------------------------------+
3770
3771+----------------------------------------------------------------------------------------------------------------------------------------+
3772|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
3773+----------------------------------------------------------------------------------------------------------------------------------------+
3774
3775+-----------------------------------------------------------------------------------------------------------------+
3776|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
3777+-----------------------------------------------------------------------------------------------------------------+
3778
3779+----------------------------------------------------------------------------------------------------------------------------------+
3780|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
3781+----------------------------------------------------------------------------------------------------------------------------------+
3782
3783
3784-Wglobal-constructors
3785---------------------
3786**Diagnostic text:**
3787
3788+--------------------------------------------------------------------------------+
3789|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
3790+--------------------------------------------------------------------------------+
3791
3792+-------------------------------------------------------------------------------+
3793|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
3794+-------------------------------------------------------------------------------+
3795
3796
3797-Wgnu
3798-----
3799Some of the diagnostics controlled by this flag are enabled by default.
3800
3801Controls `-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`_, `-Wvla-extension`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wredeclared-class-member`_, `-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`_, `-Wzero-length-array`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_.
3802
3803
3804-Wgnu-alignof-expression
3805------------------------
3806This diagnostic is enabled by default.
3807
3808**Diagnostic text:**
3809
3810+----------------------------------------------------------------------------------------------------------+
3811|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
3812+----------------------------------------------------------------------------------------------------------+
3813
3814
3815-Wgnu-anonymous-struct
3816----------------------
3817**Diagnostic text:**
3818
3819+----------------------------------------------------------------------------+
3820|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
3821+----------------------------------------------------------------------------+
3822
3823
3824-Wgnu-array-member-paren-init
3825-----------------------------
3826This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
3827
3828**Diagnostic text:**
3829
3830+----------------------------------------------------------------------------------------------------+
3831|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
3832+----------------------------------------------------------------------------------------------------+
3833
3834
3835-Wgnu-auto-type
3836---------------
3837**Diagnostic text:**
3838
3839+--------------------------------------------------------------------------+
3840|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
3841+--------------------------------------------------------------------------+
3842
3843
3844-Wgnu-binary-literal
3845--------------------
3846**Diagnostic text:**
3847
3848+----------------------------------------------------------------------------------+
3849|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
3850+----------------------------------------------------------------------------------+
3851
3852
3853-Wgnu-case-range
3854----------------
3855**Diagnostic text:**
3856
3857+----------------------------------------------------------------------+
3858|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
3859+----------------------------------------------------------------------+
3860
3861
3862-Wgnu-complex-integer
3863---------------------
3864**Diagnostic text:**
3865
3866+--------------------------------------------------------------------------------+
3867|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
3868+--------------------------------------------------------------------------------+
3869
3870
3871-Wgnu-compound-literal-initializer
3872----------------------------------
3873**Diagnostic text:**
3874
3875+--------------------------------------------------------------------------------------------------------------------------------------------------+
3876|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
3877+--------------------------------------------------------------------------------------------------------------------------------------------------+
3878
3879
3880-Wgnu-conditional-omitted-operand
3881---------------------------------
3882**Diagnostic text:**
3883
3884+--------------------------------------------------------------------------------------------------------------+
3885|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
3886+--------------------------------------------------------------------------------------------------------------+
3887
3888
3889-Wgnu-designator
3890----------------
3891Some of the diagnostics controlled by this flag are enabled by default.
3892
3893**Diagnostic text:**
3894
3895+-----------------------------------------------------------------------+
3896|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
3897+-----------------------------------------------------------------------+
3898
3899+-------------------------------------------------------------------------------------+
3900|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
3901+-------------------------------------------------------------------------------------+
3902
3903+--------------------------------------------------------------------------------------+
3904|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
3905+--------------------------------------------------------------------------------------+
3906
3907
3908-Wgnu-empty-initializer
3909-----------------------
3910**Diagnostic text:**
3911
3912+-----------------------------------------------------------------------------+
3913|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
3914+-----------------------------------------------------------------------------+
3915
3916
3917-Wgnu-empty-struct
3918------------------
3919**Diagnostic text:**
3920
3921+----------------------------------------------------+--------------------+--------------------------------------+
3922|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
3923| ||:diagtext:`struct`|| |
3924| |+------------------+| |
3925| ||:diagtext:`union` || |
3926| |+------------------+| |
3927+----------------------------------------------------+--------------------+--------------------------------------+
3928
3929+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
3930|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
3931| ||:diagtext:`struct` || |
3932| |+---------------------+| |
3933| ||:diagtext:`interface`|| |
3934| |+---------------------+| |
3935| ||:diagtext:`union` || |
3936| |+---------------------+| |
3937| ||:diagtext:`class` || |
3938| |+---------------------+| |
3939| ||:diagtext:`enum` || |
3940| |+---------------------+| |
3941+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
3942
3943+---------------------------+--------------------+------------------------------------------------------------+
3944|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
3945| ||:diagtext:`struct`|| |
3946| |+------------------+| |
3947| ||:diagtext:`union` || |
3948| |+------------------+| |
3949+---------------------------+--------------------+------------------------------------------------------------+
3950
3951
3952-Wgnu-flexible-array-initializer
3953--------------------------------
3954**Diagnostic text:**
3955
3956+---------------------------------------------------------------------------------------+
3957|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
3958+---------------------------------------------------------------------------------------+
3959
3960
3961-Wgnu-flexible-array-union-member
3962---------------------------------
3963**Diagnostic text:**
3964
3965+-------------------------------------------------------------------------------------------------------------------------------------+
3966|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
3967+-------------------------------------------------------------------------------------------------------------------------------------+
3968
3969
3970-Wgnu-folding-constant
3971----------------------
3972**Diagnostic text:**
3973
3974+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
3975|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
3976| ||:diagtext:`integer` || |
3977| |+--------------------+| |
3978| ||:diagtext:`integral`|| |
3979| |+--------------------+| |
3980+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
3981
3982+------------------------------------------------------------------------------------------------------------------------------------------------------------+
3983|: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`|
3984+------------------------------------------------------------------------------------------------------------------------------------------------------------+
3985
3986+-----------------------------------------------------------------------------------------------------+
3987|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
3988+-----------------------------------------------------------------------------------------------------+
3989
3990
3991-Wgnu-imaginary-constant
3992------------------------
3993**Diagnostic text:**
3994
3995+------------------------------------------------------------------------------+
3996|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
3997+------------------------------------------------------------------------------+
3998
3999
4000-Wgnu-include-next
4001------------------
4002**Diagnostic text:**
4003
4004+-----------------------------------------------------------------------------+
4005|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
4006+-----------------------------------------------------------------------------+
4007
4008
4009-Wgnu-label-as-value
4010--------------------
4011**Diagnostic text:**
4012
4013+----------------------------------------------------------------------------+
4014|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
4015+----------------------------------------------------------------------------+
4016
4017+-------------------------------------------------------------------------+
4018|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
4019+-------------------------------------------------------------------------+
4020
4021
4022-Wgnu-redeclared-enum
4023---------------------
4024**Diagnostic text:**
4025
4026+------------------------------------------------------------------------------------------------------------------------------------------+
4027|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4028+------------------------------------------------------------------------------------------------------------------------------------------+
4029
4030
4031-Wgnu-statement-expression
4032--------------------------
4033**Diagnostic text:**
4034
4035+--------------------------------------------------------------------------------+
4036|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
4037+--------------------------------------------------------------------------------+
4038
4039
4040-Wgnu-static-float-init
4041-----------------------
4042This diagnostic is enabled by default.
4043
4044**Diagnostic text:**
4045
4046+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4047|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4048+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4049
4050
4051-Wgnu-string-literal-operator-template
4052--------------------------------------
4053This diagnostic is enabled by default.
4054
4055**Diagnostic text:**
4056
4057+--------------------------------------------------------------------------------------------+
4058|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
4059+--------------------------------------------------------------------------------------------+
4060
4061
4062-Wgnu-union-cast
4063----------------
4064**Diagnostic text:**
4065
4066+----------------------------------------------------------------------------+
4067|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
4068+----------------------------------------------------------------------------+
4069
4070
4071-Wgnu-variable-sized-type-not-at-end
4072------------------------------------
4073This diagnostic is enabled by default.
4074
4075**Diagnostic text:**
4076
4077+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4078|: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`|
4079+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4080
4081
4082-Wgnu-zero-line-directive
4083-------------------------
4084**Diagnostic text:**
4085
4086+--------------------------------------------------------------------------------------------+
4087|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
4088+--------------------------------------------------------------------------------------------+
4089
4090
4091-Wgnu-zero-variadic-macro-arguments
4092-----------------------------------
4093**Diagnostic text:**
4094
4095+---------------------------------------------------------------------------------------------------------------+
4096|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
4097+---------------------------------------------------------------------------------------------------------------+
4098
4099+---------------------------------------------------------------------------------------------------+
4100|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
4101+---------------------------------------------------------------------------------------------------+
4102
4103
4104-Wheader-guard
4105--------------
4106This diagnostic is enabled by default.
4107
4108**Diagnostic text:**
4109
4110+---------------------------------------------------------------------------------------------------------------------------------------+
4111|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
4112+---------------------------------------------------------------------------------------------------------------------------------------+
4113
4114
4115-Wheader-hygiene
4116----------------
4117**Diagnostic text:**
4118
4119+--------------------------------------------------------------------------------------------+
4120|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
4121+--------------------------------------------------------------------------------------------+
4122
4123
4124-Widiomatic-parentheses
4125-----------------------
4126**Diagnostic text:**
4127
4128+-----------------------------------------------------------------------------------------------------------+
4129|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
4130+-----------------------------------------------------------------------------------------------------------+
4131
4132
4133-Wignored-attributes
4134--------------------
4135This diagnostic is enabled by default.
4136
4137**Diagnostic text:**
4138
4139+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4140|: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`|
4141| ||:diagtext:`alias`|| |
4142| |+-----------------+| |
4143| ||:diagtext:`ifunc`|| |
4144| |+-----------------+| |
4145+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4146
4147+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4148|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
4149| ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
4150| |+-----------------+| |+--------------------+|
4151| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
4152| |+-----------------+| |+--------------------+|
4153+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4154
4155+----------------------------------------------------------------------+------------------------+-------------------------------------+
4156|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
4157| ||:diagtext:`non-inline`|| |
4158| |+----------------------+| |
4159| ||:diagtext:`anonymous` || |
4160| |+----------------------+| |
4161+----------------------------------------------------------------------+------------------------+-------------------------------------+
4162
4163+-----------------------------------------------------------------------------------------------------------------------+
4164|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
4165+-----------------------------------------------------------------------------------------------------------------------+
4166
4167+--------------------------------------------------------------------------------------------------------------------------------+
4168|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
4169+--------------------------------------------------------------------------------------------------------------------------------+
4170
4171+--------------------------------------------------------------------------------+
4172|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
4173+--------------------------------------------------------------------------------+
4174
4175+---------------------------------------------------------------------------------------------------+
4176|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
4177+---------------------------------------------------------------------------------------------------+
4178
4179+-------------------------------------------------------------------------------------------------------------------+
4180|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
4181+-------------------------------------------------------------------------------------------------------------------+
4182
4183+------------------------------------------------------------------------------------------------------------------------------------------------+
4184|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
4185+------------------------------------------------------------------------------------------------------------------------------------------------+
4186
4187+--------------------------------------------------------------------------------------------------------+
4188|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
4189+--------------------------------------------------------------------------------------------------------+
4190
4191+-----------------------------------------------------------------------------------------------------+
4192|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
4193+-----------------------------------------------------------------------------------------------------+
4194
4195+--------------------------------------------------------------------------------------------------+
4196|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
4197+--------------------------------------------------------------------------------------------------+
4198
4199+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4200|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
4201+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4202
4203+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4204|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
4205| || || |
4206| |+----------------------------+| |
4207| || |nbsp| :diagtext:`constant`|| |
4208| |+----------------------------+| |
4209+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4210
4211+------------------------------------------------------------------------------------+
4212|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
4213+------------------------------------------------------------------------------------+
4214
4215+------------------------------------------------------------------------------------------------------------------------+
4216|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
4217+------------------------------------------------------------------------------------------------------------------------+
4218
4219+--------------------------------------------------------------------------------------------------------------------------------------+
4220|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
4221+--------------------------------------------------------------------------------------------------------------------------------------+
4222
4223+------------------------------------------------------------------------------------+
4224|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
4225+------------------------------------------------------------------------------------+
4226
4227+-----------------------------------------------------------------------------------------------+-----------------------+
4228|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
4229| ||:diagtext:`functions`||
4230| |+---------------------+|
4231| ||:diagtext:`blocks` ||
4232| |+---------------------+|
4233+-----------------------------------------------------------------------------------------------+-----------------------+
4234
4235+------------------------------------------------------------------------------------------------------------------------+
4236|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
4237+------------------------------------------------------------------------------------------------------------------------+
4238
4239+---------------------------------------------------------------------------------+
4240|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
4241+---------------------------------------------------------------------------------+
4242
4243+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4244|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
4245| ||:diagtext:`functions` || |
4246| |+------------------------------+| |
4247| ||:diagtext:`Objective-C method`|| |
4248| |+------------------------------+| |
4249+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4250
4251+----------------------------------------------------------------------------------------------------+
4252|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
4253+----------------------------------------------------------------------------------------------------+
4254
4255+------------------------------------------------------------------------------------------------------------------------------+
4256|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
4257+------------------------------------------------------------------------------------------------------------------------------+
4258
4259+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4260|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
4261| ||:diagtext:`functions` ||
4262| |+----------------------------------------------------------------------------------------------------------------+|
4263| ||:diagtext:`unions` ||
4264| |+----------------------------------------------------------------------------------------------------------------+|
4265| ||:diagtext:`variables and functions` ||
4266| |+----------------------------------------------------------------------------------------------------------------+|
4267| ||:diagtext:`functions, variables, and Objective-C interfaces` ||
4268| |+----------------------------------------------------------------------------------------------------------------+|
4269| ||:diagtext:`functions and methods` ||
4270| |+----------------------------------------------------------------------------------------------------------------+|
4271| ||:diagtext:`parameters` ||
4272| |+----------------------------------------------------------------------------------------------------------------+|
4273| ||:diagtext:`functions, methods and blocks` ||
4274| |+----------------------------------------------------------------------------------------------------------------+|
4275| ||:diagtext:`functions, methods, and classes` ||
4276| |+----------------------------------------------------------------------------------------------------------------+|
4277| ||:diagtext:`functions, methods, and parameters` ||
4278| |+----------------------------------------------------------------------------------------------------------------+|
4279| ||:diagtext:`classes` ||
4280| |+----------------------------------------------------------------------------------------------------------------+|
4281| ||:diagtext:`enums` ||
4282| |+----------------------------------------------------------------------------------------------------------------+|
4283| ||:diagtext:`variables` ||
4284| |+----------------------------------------------------------------------------------------------------------------+|
4285| ||:diagtext:`methods` ||
4286| |+----------------------------------------------------------------------------------------------------------------+|
4287| ||:diagtext:`fields and global variables` ||
4288| |+----------------------------------------------------------------------------------------------------------------+|
4289| ||:diagtext:`structs` ||
4290| |+----------------------------------------------------------------------------------------------------------------+|
4291| ||:diagtext:`parameters and typedefs` ||
4292| |+----------------------------------------------------------------------------------------------------------------+|
4293| ||:diagtext:`variables and typedefs` ||
4294| |+----------------------------------------------------------------------------------------------------------------+|
4295| ||:diagtext:`thread-local variables` ||
4296| |+----------------------------------------------------------------------------------------------------------------+|
4297| ||:diagtext:`variables and fields` ||
4298| |+----------------------------------------------------------------------------------------------------------------+|
4299| ||:diagtext:`variables, data members and tag types` ||
4300| |+----------------------------------------------------------------------------------------------------------------+|
4301| ||:diagtext:`types and namespaces` ||
4302| |+----------------------------------------------------------------------------------------------------------------+|
4303| ||:diagtext:`Objective-C interfaces` ||
4304| |+----------------------------------------------------------------------------------------------------------------+|
4305| ||:diagtext:`methods and properties` ||
4306| |+----------------------------------------------------------------------------------------------------------------+|
4307| ||:diagtext:`struct or union` ||
4308| |+----------------------------------------------------------------------------------------------------------------+|
4309| ||:diagtext:`struct, union or class` ||
4310| |+----------------------------------------------------------------------------------------------------------------+|
4311| ||:diagtext:`types` ||
4312| |+----------------------------------------------------------------------------------------------------------------+|
4313| ||:diagtext:`Objective-C instance methods` ||
4314| |+----------------------------------------------------------------------------------------------------------------+|
4315| ||:diagtext:`init methods of interface or class extension declarations` ||
4316| |+----------------------------------------------------------------------------------------------------------------+|
4317| ||:diagtext:`variables, functions and classes` ||
4318| |+----------------------------------------------------------------------------------------------------------------+|
4319| ||:diagtext:`functions, variables, classes, and Objective-C interfaces` ||
4320| |+----------------------------------------------------------------------------------------------------------------+|
4321| ||:diagtext:`Objective-C protocols` ||
4322| |+----------------------------------------------------------------------------------------------------------------+|
4323| ||:diagtext:`functions and global variables` ||
4324| |+----------------------------------------------------------------------------------------------------------------+|
4325| ||:diagtext:`structs, unions, and typedefs` ||
4326| |+----------------------------------------------------------------------------------------------------------------+|
4327| ||:diagtext:`structs and typedefs` ||
4328| |+----------------------------------------------------------------------------------------------------------------+|
4329| ||:diagtext:`interface or protocol declarations` ||
4330| |+----------------------------------------------------------------------------------------------------------------+|
4331| ||:diagtext:`kernel functions` ||
4332| |+----------------------------------------------------------------------------------------------------------------+|
4333| ||:diagtext:`non-K&R-style functions` ||
4334| |+----------------------------------------------------------------------------------------------------------------+|
4335| ||:diagtext:`variables, enums, fields and typedefs` ||
4336| |+----------------------------------------------------------------------------------------------------------------+|
4337| ||:diagtext:`functions, methods, enums, and classes` ||
4338| |+----------------------------------------------------------------------------------------------------------------+|
4339| ||:diagtext:`structs, classes, variables, functions, and inline namespaces` ||
4340| |+----------------------------------------------------------------------------------------------------------------+|
4341| ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
4342| |+----------------------------------------------------------------------------------------------------------------+|
4343+------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4344
4345+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4346|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
4347+--------------------------------------------------------------------------------------------------------------------------------------------------------+
4348
4349+----------------------------------------------------------------------------------------------------------------------------+
4350|:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
4351+----------------------------------------------------------------------------------------------------------------------------+
4352
4353+-------------------------------------------------------------------------------------------------------------------+
4354|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
4355+-------------------------------------------------------------------------------------------------------------------+
4356
4357+--------------------------------------------------------------------------------------------------------------+
4358|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
4359+--------------------------------------------------------------------------------------------------------------+
4360
4361+-------------------------------------------------------------------------------------------------------------------------------------------+
4362|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
4363+-------------------------------------------------------------------------------------------------------------------------------------------+
4364
4365+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4366|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
4367| ||:diagtext:`class` || |
4368| |+---------------------+| |
4369| ||:diagtext:`struct` || |
4370| |+---------------------+| |
4371| ||:diagtext:`interface`|| |
4372| |+---------------------+| |
4373| ||:diagtext:`union` || |
4374| |+---------------------+| |
4375| ||:diagtext:`enum` || |
4376| |+---------------------+| |
4377+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4378
4379+--------------------------------------------------------------------------------------------+
4380|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
4381+--------------------------------------------------------------------------------------------+
4382
4383+----------------------------------------------------------------------------------------------------------------------------------------------+
4384|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
4385+----------------------------------------------------------------------------------------------------------------------------------------------+
4386
4387+----------------------------------------------------------------------------------------------------------------------------------------+
4388|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
4389+----------------------------------------------------------------------------------------------------------------------------------------+
4390
4391+--------------------------------------------------------------------------------------------------------------+
4392|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
4393+--------------------------------------------------------------------------------------------------------------+
4394
4395+------------------------------------------------------------------------------------------------+
4396|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
4397+------------------------------------------------------------------------------------------------+
4398
4399+-------------------------------------------------------------------------------------------------------------------------+
4400|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
4401+-------------------------------------------------------------------------------------------------------------------------+
4402
4403+---------------------------------------------------------------------------+------------------------------------+
4404|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
4405| ||:diagtext:`primary template` ||
4406| |+----------------------------------+|
4407| ||:diagtext:`partial specialization`||
4408| |+----------------------------------+|
4409+---------------------------------------------------------------------------+------------------------------------+
4410
4411+--------------------------------------------------------------------------------------------------------------+
4412|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
4413+--------------------------------------------------------------------------------------------------------------+
4414
4415+--------------------------------------------------------------------------------------------+
4416|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
4417+--------------------------------------------------------------------------------------------+
4418
4419+-------------------------------------------------------------------------------------------------------------+----------------------------------+
4420|:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
4421| ||:diagtext:`no parameters` ||
4422| |+--------------------------------+|
4423| ||:diagtext:`a 'void' return type`||
4424| |+--------------------------------+|
4425+-------------------------------------------------------------------------------------------------------------+----------------------------------+
4426
4427+---------------------------------------------------------------------------------------+
4428|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
4429+---------------------------------------------------------------------------------------+
4430
4431+------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4432|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
4433| ||:diagtext:`Objective-C object` || |
4434| |+---------------------------------+| |
4435| ||:diagtext:`pointer` || |
4436| |+---------------------------------+| |
4437| ||:diagtext:`pointer-to-CF-pointer`|| |
4438| |+---------------------------------+| |
4439+------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4440
4441+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4442|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
4443| ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` ||
4444| |+----------------------+| |+------------------------------------+|
4445| ||:diagtext:`methods` || ||:diagtext:`a pointer` ||
4446| |+----------------------+| |+------------------------------------+|
4447| ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`||
4448| |+----------------------+| |+------------------------------------+|
4449+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4450
4451+--------------------------------------------------------------------------------------------------------------------------------------------+
4452|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
4453+--------------------------------------------------------------------------------------------------------------------------------------------+
4454
4455+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4456|: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`|
4457| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
4458| |+---------------------+| |+---------------------+| |
4459| ||:diagtext:`size` || ||:diagtext:`size` || |
4460| |+---------------------+| |+---------------------+| |
4461+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4462
4463+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4464|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
4465| ||:diagtext:`floating point`|| |
4466| |+--------------------------+| |
4467| ||:diagtext:`vector` || |
4468| |+--------------------------+| |
4469+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4470
4471+--------------------------------------------------------------------------------------------------------------------------------+
4472|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
4473+--------------------------------------------------------------------------------------------------------------------------------+
4474
4475+-----------------------------------------------------------------------------------------------------------------------------------------+
4476|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
4477+-----------------------------------------------------------------------------------------------------------------------------------------+
4478
4479+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4480|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
4481| ||:diagtext:`function` || |
4482| |+-----------------------------------------------+| |
4483| ||:diagtext:`pointer` || |
4484| |+-----------------------------------------------+| |
4485| ||:diagtext:`Objective-C object or block pointer`|| |
4486| |+-----------------------------------------------+| |
4487+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4488
4489+-------------------------------------------------------------------------------------------------------------------------+
4490|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
4491+-------------------------------------------------------------------------------------------------------------------------+
4492
4493+-------------------------------------------------------------------------------------------------------------------------+
4494|:warning:`warning:` |nbsp| :diagtext:`Ignoring unsupported '`:placeholder:`A`:diagtext:`' in the target attribute string`|
4495+-------------------------------------------------------------------------------------------------------------------------+
4496
4497
4498-Wignored-optimization-argument
4499-------------------------------
4500This diagnostic is enabled by default.
4501
4502**Diagnostic text:**
4503
4504+--------------------------------------------------------------------------------------------------------------------------------------------------+
4505|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
4506+--------------------------------------------------------------------------------------------------------------------------------------------------+
4507
4508+--------------------------------------------------------------------------------------------------------+
4509|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
4510+--------------------------------------------------------------------------------------------------------+
4511
4512
4513-Wignored-pragmas
4514-----------------
4515This diagnostic is enabled by default.
4516
4517**Diagnostic text:**
4518
4519+------------------------------------------------------------------------------+---------------------------+-----------------------+
4520|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4521| ||:diagtext:`align` || |
4522| |+-------------------------+| |
4523| ||:diagtext:`options align`|| |
4524| |+-------------------------+| |
4525+------------------------------------------------------------------------------+---------------------------+-----------------------+
4526
4527+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4528|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4529| ||:diagtext:`align` || |
4530| |+-------------------------+| |
4531| ||:diagtext:`options align`|| |
4532| |+-------------------------+| |
4533+-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4534
4535+----------------------------------------------------------------------------------------------------+
4536|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
4537+----------------------------------------------------------------------------------------------------+
4538
4539+-------------------------------------------------------------------------------------------------------+
4540|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
4541+-------------------------------------------------------------------------------------------------------+
4542
4543+----------------------------------------------------------------------------------------------+
4544|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
4545+----------------------------------------------------------------------------------------------+
4546
4547+------------------------------------------------------------------------------------------------------------------------+
4548|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4549+------------------------------------------------------------------------------------------------------------------------+
4550
4551+--------------------------------------------------------------------------------------------------------------+
4552|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4553+--------------------------------------------------------------------------------------------------------------+
4554
4555+---------------------------------------------------------------------------------------------------------------------+
4556|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4557+---------------------------------------------------------------------------------------------------------------------+
4558
4559+--------------------------------------------------------------------------------+
4560|:warning:`warning:` |nbsp| :diagtext:`expected 'enable' or 'disable' - ignoring`|
4561+--------------------------------------------------------------------------------+
4562
4563+---------------------------------------------------------------------------------------------------------------------+
4564|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4565+---------------------------------------------------------------------------------------------------------------------+
4566
4567+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4568|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4569+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4570
4571+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4572|: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`|
4573+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4574
4575+-----------------------------------------------------------------------------------------------------------------+
4576|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4577+-----------------------------------------------------------------------------------------------------------------+
4578
4579+------------------------------------------------------------------------------------------------------------------------+
4580|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4581+------------------------------------------------------------------------------------------------------------------------+
4582
4583+-----------------------------------------------------------------------------------------------------------+
4584|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4585+-----------------------------------------------------------------------------------------------------------+
4586
4587+-----------------------------------------------------------------------------------------------------------------+
4588|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4589+-----------------------------------------------------------------------------------------------------------------+
4590
4591+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4592|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4593+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4594
4595+------------------------------------------------------------------------------------------------------------------------------------------------+
4596|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4597+------------------------------------------------------------------------------------------------------------------------------------------------+
4598
4599+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4600|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4601+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4602
4603+---------------------------------------------------------------------------------------------------------------------+
4604|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4605+---------------------------------------------------------------------------------------------------------------------+
4606
4607+-------------------------------------------------------------------------------------------------------------------+
4608|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
4609+-------------------------------------------------------------------------------------------------------------------+
4610
4611+-----------------------------------------------------------------------------------------------------------------+
4612|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4613+-----------------------------------------------------------------------------------------------------------------+
4614
4615+------------------------------------------------------------------------------------------------------------------------------------------------+
4616|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4617+------------------------------------------------------------------------------------------------------------------------------------------------+
4618
4619+----------------------------------------------------------------------------------------------+
4620|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
4621+----------------------------------------------------------------------------------------------+
4622
4623+--------------------------------------------------------------------------------------------------+
4624|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
4625+--------------------------------------------------------------------------------------------------+
4626
4627+---------------------------------------------------------------------------------------------+
4628|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
4629+---------------------------------------------------------------------------------------------+
4630
4631+--------------------------------------------------------------------------------------------------------+
4632|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
4633+--------------------------------------------------------------------------------------------------------+
4634
4635+-------------------------------------------------------------------------------------------------+
4636|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
4637+-------------------------------------------------------------------------------------------------+
4638
4639+----------------------------------------------------------------------------------------------------------------------------+
4640|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
4641+----------------------------------------------------------------------------------------------------------------------------+
4642
4643+------------------------------------------------------------------------------------------------------------------------------+
4644|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
4645+------------------------------------------------------------------------------------------------------------------------------+
4646
4647+---------------------------------------------------------------------------------------------------------------------+
4648|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4649+---------------------------------------------------------------------------------------------------------------------+
4650
4651+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
4652|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4653+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
4654
4655+-------------------------------------------------------------------------------------------------------------------------+
4656|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4657+-------------------------------------------------------------------------------------------------------------------------+
4658
4659+-----------------------------------------------------------------------------------------------+
4660|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
4661+-----------------------------------------------------------------------------------------------+
4662
4663+------------------------------------------------------------------------------------------+
4664|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
4665+------------------------------------------------------------------------------------------+
4666
4667+----------------------------------------------------------------------------------------------------------------------------------------------+
4668|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
4669+----------------------------------------------------------------------------------------------------------------------------------------------+
4670
4671
4672-Wignored-qualifiers
4673--------------------
4674Some of the diagnostics controlled by this flag are enabled by default.
4675
4676**Diagnostic text:**
4677
4678+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
4679|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
4680| ||:diagtext:`unused` || |
4681| |+----------------------------------+| |
4682| ||:diagtext:`\_\_unsafe\_unretained`|| |
4683| |+----------------------------------+| |
4684| ||:diagtext:`\_\_strong` || |
4685| |+----------------------------------+| |
4686| ||:diagtext:`\_\_weak` || |
4687| |+----------------------------------+| |
4688| ||:diagtext:`\_\_autoreleasing` || |
4689| |+----------------------------------+| |
4690+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
4691
4692+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
4693|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
4694+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
4695
4696+------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
4697|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
4698| || || ||:diagtext:`:has` || |
4699| |+-------------+| |+-----------------+| |
4700| ||:diagtext:`s`|| ||:diagtext:`:have`|| |
4701| |+-------------+| |+-----------------+| |
4702+------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
4703
4704+---------------------------------------------------------------------------------------------------------------------------------------------------------+
4705|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
4706+---------------------------------------------------------------------------------------------------------------------------------------------------------+
4707
4708+----------------------------------------------------------------------------------------------------------------------------------------------------------+
4709|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
4710+----------------------------------------------------------------------------------------------------------------------------------------------------------+
4711
4712
4713-Wimplicit
4714----------
4715Some of the diagnostics controlled by this flag are enabled by default.
4716
4717Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
4718
4719
4720-Wimplicit-atomic-properties
4721----------------------------
4722**Diagnostic text:**
4723
4724+-----------------------------------------------------------------------------------------------------+
4725|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
4726+-----------------------------------------------------------------------------------------------------+
4727
4728+----------------------------------------------------------------------------+
4729|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
4730+----------------------------------------------------------------------------+
4731
4732
4733-Wimplicit-conversion-floating-point-to-bool
4734--------------------------------------------
4735This diagnostic is enabled by default.
4736
4737**Diagnostic text:**
4738
4739+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4740|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
4741+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4742
4743
4744-Wimplicit-exception-spec-mismatch
4745----------------------------------
4746This diagnostic is enabled by default.
4747
4748**Diagnostic text:**
4749
4750+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
4751|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
4752| ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| |
4753| |+--------------------+| |+--------------------+| |
4754| ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| |
4755| |+--------------------+| |+--------------------+| |
4756+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
4757
4758
4759-Wimplicit-fallthrough
4760----------------------
4761Also controls `-Wimplicit-fallthrough-per-function`_.
4762
4763**Diagnostic text:**
4764
4765+---------------------------------------------------------------------------------+
4766|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
4767+---------------------------------------------------------------------------------+
4768
4769+-------------------------------------------------------------------------------------+
4770|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
4771+-------------------------------------------------------------------------------------+
4772
4773
4774-Wimplicit-fallthrough-per-function
4775-----------------------------------
4776**Diagnostic text:**
4777
4778+------------------------------------------------------------------------------------------------------------------+
4779|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
4780+------------------------------------------------------------------------------------------------------------------+
4781
4782
4783-Wimplicit-function-declaration
4784-------------------------------
4785Some of the diagnostics controlled by this flag are enabled by default.
4786
4787**Diagnostic text:**
4788
4789+------------------------------------------------------------------------------------------------------------------------------------+
4790|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`|
4791+------------------------------------------------------------------------------------------------------------------------------------+
4792
4793+---------------------------------------------------------------------------------------------------------------------------------------------+
4794|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
4795+---------------------------------------------------------------------------------------------------------------------------------------------+
4796
4797+---------------------------------------------------------------------------------+
4798|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
4799+---------------------------------------------------------------------------------+
4800
4801+-----------------------------------------------------------------------------------------------+
4802|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
4803+-----------------------------------------------------------------------------------------------+
4804
4805
4806-Wimplicit-int
4807--------------
4808This diagnostic is enabled by default.
4809
4810**Diagnostic text:**
4811
4812+--------------------------------------------------------------------------------+
4813|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
4814+--------------------------------------------------------------------------------+
4815
4816
4817-Wimplicit-retain-self
4818----------------------
4819**Diagnostic text:**
4820
4821+---------------------------------------------------------------------------------------------------------------------------------------+
4822|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
4823+---------------------------------------------------------------------------------------------------------------------------------------+
4824
4825
4826-Wimplicitly-unsigned-literal
4827-----------------------------
4828This diagnostic is enabled by default.
4829
4830**Diagnostic text:**
4831
4832+----------------------------------------------------------------------------------------------------------------------------------------+
4833|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
4834+----------------------------------------------------------------------------------------------------------------------------------------+
4835
4836
4837-Wimport
4838--------
4839This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4840
4841-Wimport-preprocessor-directive-pedantic
4842----------------------------------------
4843**Diagnostic text:**
4844
4845+----------------------------------------------------------------------+
4846|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
4847+----------------------------------------------------------------------+
4848
4849
4850-Winaccessible-base
4851-------------------
4852This diagnostic is enabled by default.
4853
4854**Diagnostic text:**
4855
4856+-----------------------------------------------------------------------------------------------------------------------------------------------+
4857|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
4858+-----------------------------------------------------------------------------------------------------------------------------------------------+
4859
4860
4861-Winclude-next-absolute-path
4862----------------------------
4863This diagnostic is enabled by default.
4864
4865**Diagnostic text:**
4866
4867+------------------------------------------------------------------------+
4868|:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
4869+------------------------------------------------------------------------+
4870
4871
4872-Winclude-next-outside-header
4873-----------------------------
4874This diagnostic is enabled by default.
4875
4876**Diagnostic text:**
4877
4878+----------------------------------------------------------------------------+
4879|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
4880+----------------------------------------------------------------------------+
4881
4882
4883-Wincompatible-function-pointer-types
4884-------------------------------------
4885This diagnostic is enabled by default.
4886
4887**Diagnostic text:**
4888
4889+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
4890|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
4891| ||:diagtext:`assigning to different types` ||| ||
4892| |+--------------------------------------------------------------+|+-------------------------------------+|
4893| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
4894| |+--------------------------------------------------------------+|+-------------------------------------+|
4895| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
4896| |+--------------------------------------------------------------+|+-------------------------------------+|
4897| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
4898| |+--------------------------------------------------------------+|+-------------------------------------+|
4899| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
4900| |+--------------------------------------------------------------+|+-------------------------------------+|
4901| ||:diagtext:`sending to parameter of different type` || |
4902| |+--------------------------------------------------------------+| |
4903| ||:diagtext:`casting between types` || |
4904| |+--------------------------------------------------------------+| |
4905+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
4906
4907
4908-Wincompatible-library-redeclaration
4909------------------------------------
4910This diagnostic is enabled by default.
4911
4912**Diagnostic text:**
4913
4914+-------------------------------------------------------------------------------------------------------------+
4915|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
4916+-------------------------------------------------------------------------------------------------------------+
4917
4918
4919-Wincompatible-ms-struct
4920------------------------
4921This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
4922
4923**Diagnostic text:**
4924
4925+---------------------------------------------------------------------------------------------------------------------------------------------+
4926|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
4927+---------------------------------------------------------------------------------------------------------------------------------------------+
4928
4929
4930-Wincompatible-pointer-types
4931----------------------------
4932This diagnostic is enabled by default.
4933
4934Also controls `-Wincompatible-pointer-types-discards-qualifiers`_, `-Wincompatible-function-pointer-types`_.
4935
4936**Diagnostic text:**
4937
4938+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
4939|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
4940| ||:diagtext:`assigning to different types` ||| ||
4941| |+--------------------------------------------------------------+|+-------------------------------------+|
4942| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
4943| |+--------------------------------------------------------------+|+-------------------------------------+|
4944| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
4945| |+--------------------------------------------------------------+|+-------------------------------------+|
4946| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
4947| |+--------------------------------------------------------------+|+-------------------------------------+|
4948| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
4949| |+--------------------------------------------------------------+|+-------------------------------------+|
4950| ||:diagtext:`sending to parameter of different type` || |
4951| |+--------------------------------------------------------------+| |
4952| ||:diagtext:`casting between types` || |
4953| |+--------------------------------------------------------------+| |
4954+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
4955
4956
4957-Wincompatible-pointer-types-discards-qualifiers
4958------------------------------------------------
4959This diagnostic is enabled by default.
4960
4961**Diagnostic text:**
4962
4963+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
4964|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
4965| ||:diagtext:`assigning to different types` || |
4966| |+--------------------------------------------------------------+| |
4967| ||:diagtext:`passing to parameter of different type` || |
4968| |+--------------------------------------------------------------+| |
4969| ||:diagtext:`returning from function with different return type`|| |
4970| |+--------------------------------------------------------------+| |
4971| ||:diagtext:`converting between types` || |
4972| |+--------------------------------------------------------------+| |
4973| ||:diagtext:`initializing with expression of different type` || |
4974| |+--------------------------------------------------------------+| |
4975| ||:diagtext:`sending to parameter of different type` || |
4976| |+--------------------------------------------------------------+| |
4977| ||:diagtext:`casting between types` || |
4978| |+--------------------------------------------------------------+| |
4979+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
4980
4981+---------------------------+----------------------------------------------------------------+---------------------------------------+
4982|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
4983| ||:diagtext:`assigning to different types` || |
4984| |+--------------------------------------------------------------+| |
4985| ||:diagtext:`passing to parameter of different type` || |
4986| |+--------------------------------------------------------------+| |
4987| ||:diagtext:`returning from function with different return type`|| |
4988| |+--------------------------------------------------------------+| |
4989| ||:diagtext:`converting between types` || |
4990| |+--------------------------------------------------------------+| |
4991| ||:diagtext:`initializing with expression of different type` || |
4992| |+--------------------------------------------------------------+| |
4993| ||:diagtext:`sending to parameter of different type` || |
4994| |+--------------------------------------------------------------+| |
4995| ||:diagtext:`casting between types` || |
4996| |+--------------------------------------------------------------+| |
4997+---------------------------+----------------------------------------------------------------+---------------------------------------+
4998
4999
5000-Wincompatible-property-type
5001----------------------------
5002This diagnostic is enabled by default.
5003
5004**Diagnostic text:**
5005
5006+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5007|: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`|
5008+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5009
5010
5011-Wincompatible-sysroot
5012----------------------
5013This diagnostic is enabled by default.
5014
5015**Diagnostic text:**
5016
5017+------------------------------------------------------------------------------------------------------------------------------------+
5018|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
5019+------------------------------------------------------------------------------------------------------------------------------------+
5020
5021
5022-Wincomplete-implementation
5023---------------------------
5024This diagnostic is enabled by default.
5025
5026**Diagnostic text:**
5027
5028+-----------------------------------------------------------------------------------------------------------------+
5029|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
5030+-----------------------------------------------------------------------------------------------------------------+
5031
5032
5033-Wincomplete-module
5034-------------------
5035Some of the diagnostics controlled by this flag are enabled by default.
5036
5037Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
5038
5039
5040-Wincomplete-umbrella
5041---------------------
5042This diagnostic is enabled by default.
5043
5044**Diagnostic text:**
5045
5046+---------------------------------------------------------------------------------------+
5047|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
5048+---------------------------------------------------------------------------------------+
5049
5050+-------------------------------------------------------------------------------------------------------------------------------------------------------+
5051|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
5052+-------------------------------------------------------------------------------------------------------------------------------------------------------+
5053
5054
5055-Winconsistent-dllimport
5056------------------------
5057This diagnostic is enabled by default.
5058
5059**Diagnostic text:**
5060
5061+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5062|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
5063+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5064
5065+------------------------------------------------------------------------------------------------------------------------------------+
5066|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
5067+------------------------------------------------------------------------------------------------------------------------------------+
5068
5069
5070-Winconsistent-missing-override
5071-------------------------------
5072This diagnostic is enabled by default.
5073
5074**Diagnostic text:**
5075
5076+-----------------------------------------------------------------------------------------------------------------------+
5077|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
5078+-----------------------------------------------------------------------------------------------------------------------+
5079
5080
5081-Wincrement-bool
5082----------------
5083This diagnostic is enabled by default.
5084
5085Also controls `-Wdeprecated-increment-bool`_.
5086
5087**Diagnostic text:**
5088
5089+------------------------------------------------------------------------------------------------+
5090|:error:`error:` |nbsp| :diagtext:`ISO C++1z does not allow incrementing expression of type bool`|
5091+------------------------------------------------------------------------------------------------+
5092
5093
5094-Winfinite-recursion
5095--------------------
5096**Diagnostic text:**
5097
5098+---------------------------------------------------------------------------------------+
5099|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
5100+---------------------------------------------------------------------------------------+
5101
5102
5103-Winit-self
5104-----------
5105This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5106
5107-Winitializer-overrides
5108-----------------------
5109This diagnostic is enabled by default.
5110
5111**Diagnostic text:**
5112
5113+---------------------------------------------------------------------------------------------------+
5114|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
5115+---------------------------------------------------------------------------------------------------+
5116
5117+---------------------------------------------------------------------------------------------------------------------------------------+
5118|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
5119+---------------------------------------------------------------------------------------------------------------------------------------+
5120
5121
5122-Winline
5123--------
5124This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5125
5126-Winline-asm
5127------------
5128This diagnostic is enabled by default.
5129
5130**Diagnostic text:**
5131
5132The text of this diagnostic is not controlled by Clang.
5133
5134
5135-Winline-new-delete
5136-------------------
5137This diagnostic is enabled by default.
5138
5139**Diagnostic text:**
5140
5141+----------------------------------------------------------------------------------------------------------------------------------+
5142|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
5143+----------------------------------------------------------------------------------------------------------------------------------+
5144
5145
5146-Winstantiation-after-specialization
5147------------------------------------
5148This diagnostic is enabled by default.
5149
5150**Diagnostic text:**
5151
5152+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5153|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
5154+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5155
5156
5157-Wint-conversion
5158----------------
5159This diagnostic is enabled by default.
5160
5161**Diagnostic text:**
5162
5163+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5164|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5165| ||:diagtext:`assigning to different types` ||| ||
5166| |+--------------------------------------------------------------+|+-------------------------------------+|
5167| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5168| |+--------------------------------------------------------------+|+-------------------------------------+|
5169| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5170| |+--------------------------------------------------------------+|+-------------------------------------+|
5171| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5172| |+--------------------------------------------------------------+|+-------------------------------------+|
5173| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5174| |+--------------------------------------------------------------+|+-------------------------------------+|
5175| ||:diagtext:`sending to parameter of different type` || |
5176| |+--------------------------------------------------------------+| |
5177| ||:diagtext:`casting between types` || |
5178| |+--------------------------------------------------------------+| |
5179+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5180
5181+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5182|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5183| ||:diagtext:`assigning to different types` ||| ||
5184| |+--------------------------------------------------------------+|+-------------------------------------+|
5185| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5186| |+--------------------------------------------------------------+|+-------------------------------------+|
5187| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5188| |+--------------------------------------------------------------+|+-------------------------------------+|
5189| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5190| |+--------------------------------------------------------------+|+-------------------------------------+|
5191| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5192| |+--------------------------------------------------------------+|+-------------------------------------+|
5193| ||:diagtext:`sending to parameter of different type` || |
5194| |+--------------------------------------------------------------+| |
5195| ||:diagtext:`casting between types` || |
5196| |+--------------------------------------------------------------+| |
5197+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5198
5199
5200-Wint-conversions
5201-----------------
5202Synonym for `-Wint-conversion`_.
5203
5204
5205-Wint-to-pointer-cast
5206---------------------
5207This diagnostic is enabled by default.
5208
5209Also controls `-Wint-to-void-pointer-cast`_.
5210
5211**Diagnostic text:**
5212
5213+-------------------------------------------------------------------------------------------------------------------------------------------+
5214|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5215+-------------------------------------------------------------------------------------------------------------------------------------------+
5216
5217
5218-Wint-to-void-pointer-cast
5219--------------------------
5220This diagnostic is enabled by default.
5221
5222**Diagnostic text:**
5223
5224+-------------------------------------------------------------------------------------------------------------------------------------------+
5225|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5226+-------------------------------------------------------------------------------------------------------------------------------------------+
5227
5228
5229-Winteger-overflow
5230------------------
5231This diagnostic is enabled by default.
5232
5233**Diagnostic text:**
5234
5235+-----------------------------------------------------------------------------------------------------------------------------------------------------+
5236|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
5237+-----------------------------------------------------------------------------------------------------------------------------------------------------+
5238
5239
5240-Winvalid-command-line-argument
5241-------------------------------
5242This diagnostic is enabled by default.
5243
5244Also controls `-Wignored-optimization-argument`_.
5245
5246**Diagnostic text:**
5247
5248+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5249|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
5250+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5251
5252
5253-Winvalid-constexpr
5254-------------------
5255This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
5256
5257**Diagnostic text:**
5258
5259+----------------------------------------------------+-------------------------+--------------------------------------------------------+
5260|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
5261| ||:diagtext:`function` || |
5262| |+-----------------------+| |
5263| ||:diagtext:`constructor`|| |
5264| |+-----------------------+| |
5265+----------------------------------------------------+-------------------------+--------------------------------------------------------+
5266
5267
5268-Winvalid-iboutlet
5269------------------
5270This diagnostic is enabled by default.
5271
5272**Diagnostic text:**
5273
5274+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5275|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
5276| ||:diagtext:`instance variable`|| |
5277| |+-----------------------------+| |
5278| ||:diagtext:`property` || |
5279| |+-----------------------------+| |
5280+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5281
5282+---------------------------------------------------------------------------------------------------------+
5283|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
5284+---------------------------------------------------------------------------------------------------------+
5285
5286
5287-Winvalid-initializer-from-system-header
5288----------------------------------------
5289This diagnostic is enabled by default.
5290
5291**Diagnostic text:**
5292
5293+--------------------------------------------------------------------------------------------------------------+
5294|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
5295+--------------------------------------------------------------------------------------------------------------+
5296
5297
5298-Winvalid-noreturn
5299------------------
5300This diagnostic is enabled by default.
5301
5302**Diagnostic text:**
5303
5304+-------------------------------------------------------------------------------------+
5305|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
5306+-------------------------------------------------------------------------------------+
5307
5308+--------------------------------------------------------------------------------------------------------------------------------+
5309|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
5310+--------------------------------------------------------------------------------------------------------------------------------+
5311
5312
5313-Winvalid-offsetof
5314------------------
5315This diagnostic is enabled by default.
5316
5317**Diagnostic text:**
5318
5319+----------------------------------------------------------------------------------------+
5320|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
5321+----------------------------------------------------------------------------------------+
5322
5323+----------------------------------------------------------------------------------------------------+
5324|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
5325+----------------------------------------------------------------------------------------------------+
5326
5327
5328-Winvalid-or-nonexistent-directory
5329----------------------------------
5330Some of the diagnostics controlled by this flag are enabled by default.
5331
5332**Diagnostic text:**
5333
5334+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5335|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
5336+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5337
5338+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5339|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
5340+------------------------------------------------------------------------------------------------------------------------------------------------------------+
5341
5342
5343-Winvalid-pch
5344-------------
5345This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5346
5347-Winvalid-pp-token
5348------------------
5349This diagnostic is enabled by default.
5350
5351**Diagnostic text:**
5352
5353+---------------------------------------------------------------+
5354|:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
5355+---------------------------------------------------------------+
5356
5357+------------------------------------------------------------------+-----------------+-----------------------------+
5358|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
5359| ||:diagtext:`'` || |
5360| |+---------------+| |
5361| ||:diagtext:`'"'`|| |
5362| |+---------------+| |
5363+------------------------------------------------------------------+-----------------+-----------------------------+
5364
5365
5366-Winvalid-source-encoding
5367-------------------------
5368This diagnostic is enabled by default.
5369
5370**Diagnostic text:**
5371
5372+--------------------------------------------------------------------------------------+
5373|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
5374+--------------------------------------------------------------------------------------+
5375
5376+-----------------------------------------------------------------------------------+
5377|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
5378+-----------------------------------------------------------------------------------+
5379
5380
5381-Winvalid-token-paste
5382---------------------
5383This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
5384
5385**Diagnostic text:**
5386
5387+----------------------------------------------------------------------------------------------------------------+
5388|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
5389+----------------------------------------------------------------------------------------------------------------+
5390
5391
5392-Wjump-seh-finally
5393------------------
5394This diagnostic is enabled by default.
5395
5396**Diagnostic text:**
5397
5398+-------------------------------------------------------------------------------------------+
5399|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
5400+-------------------------------------------------------------------------------------------+
5401
5402
5403-Wkeyword-compat
5404----------------
5405This diagnostic is enabled by default.
5406
5407**Diagnostic text:**
5408
5409+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5410|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
5411| ||:diagtext:`here` ||
5412| |+-----------------------------------------------------+|
5413| ||:diagtext:`for the remainder of the translation unit`||
5414| |+-----------------------------------------------------+|
5415+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5416
5417
5418-Wkeyword-macro
5419---------------
5420**Diagnostic text:**
5421
5422+----------------------------------------------------------------------------+
5423|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
5424+----------------------------------------------------------------------------+
5425
5426
5427-Wknr-promoted-parameter
5428------------------------
5429This diagnostic is enabled by default.
5430
5431**Diagnostic text:**
5432
5433+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5434|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
5435+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5436
5437
5438-Wlanguage-extension-token
5439--------------------------
5440**Diagnostic text:**
5441
5442+-----------------------------------------------------+
5443|:warning:`warning:` |nbsp| :diagtext:`extension used`|
5444+-----------------------------------------------------+
5445
5446
5447-Wlarge-by-value-copy
5448---------------------
5449This diagnostic is enabled by default.
5450
5451**Diagnostic text:**
5452
5453+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5454|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
5455+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5456
5457+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5458|: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 ?`|
5459+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5460
5461
5462-Wliblto
5463--------
5464This diagnostic is enabled by default.
5465
5466**Diagnostic text:**
5467
5468+-------------------------------------------------------------------------------------------------------------------------------------+
5469|:warning:`warning:` |nbsp| :diagtext:`libLTO.dylib relative to clang installed dir not found; using 'ld' default search path instead`|
5470+-------------------------------------------------------------------------------------------------------------------------------------+
5471
5472
5473-Wliteral-conversion
5474--------------------
5475This diagnostic is enabled by default.
5476
5477**Diagnostic text:**
5478
5479+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5480|: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`|
5481+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5482
5483
5484-Wliteral-range
5485---------------
5486This diagnostic is enabled by default.
5487
5488**Diagnostic text:**
5489
5490+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5491|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
5492+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5493
5494+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5495|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
5496+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5497
5498
5499-Wlocal-type-template-args
5500--------------------------
5501Some of the diagnostics controlled by this flag are enabled by default.
5502
5503Also controls `-Wc++98-compat-local-type-template-args`_.
5504
5505**Diagnostic text:**
5506
5507+------------------------------------------------------------------------------------------------+
5508|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
5509+------------------------------------------------------------------------------------------------+
5510
5511
5512-Wlogical-not-parentheses
5513-------------------------
5514This diagnostic is enabled by default.
5515
5516**Diagnostic text:**
5517
5518+-----------------------------------------------------------------------------------------------------------+
5519|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this comparison`|
5520+-----------------------------------------------------------------------------------------------------------+
5521
5522
5523-Wlogical-op-parentheses
5524------------------------
5525This diagnostic is enabled by default.
5526
5527**Diagnostic text:**
5528
5529+---------------------------------------------------------+
5530|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
5531+---------------------------------------------------------+
5532
5533
5534-Wlong-long
5535-----------
5536Also controls `-Wc++11-long-long`_.
5537
5538**Diagnostic text:**
5539
5540+-----------------------------------------------------------------------------------------------+
5541|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
5542+-----------------------------------------------------------------------------------------------+
5543
5544
5545-Wloop-analysis
5546---------------
5547Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
5548
5549
5550-Wmacro-redefined
5551-----------------
5552This diagnostic is enabled by default.
5553
5554**Diagnostic text:**
5555
5556+------------------------------------------------------------------------------+
5557|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
5558+------------------------------------------------------------------------------+
5559
5560
5561-Wmain
5562------
5563Some of the diagnostics controlled by this flag are enabled by default.
5564
5565**Diagnostic text:**
5566
5567+--------------------------------------------------------------------------------------------+
5568|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
5569+--------------------------------------------------------------------------------------------+
5570
5571+--------------------------------------------------------------------------------------+
5572|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
5573+--------------------------------------------------------------------------------------+
5574
5575+------------------------------------------------------------------------------------+
5576|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
5577+------------------------------------------------------------------------------------+
5578
5579+-------------------------------------------------------------------------------+
5580|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
5581+-------------------------------------------------------------------------------+
5582
5583+---------------------------------------------------------------------------------------------------------+
5584|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
5585+---------------------------------------------------------------------------------------------------------+
5586
5587+---------------------------------------------------------------------------+
5588|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
5589+---------------------------------------------------------------------------+
5590
5591
5592-Wmain-return-type
5593------------------
5594This diagnostic is enabled by default.
5595
5596**Diagnostic text:**
5597
5598+-------------------------------------------------------------------------+
5599|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
5600+-------------------------------------------------------------------------+
5601
5602
5603-Wmalformed-warning-check
5604-------------------------
5605This diagnostic is enabled by default.
5606
5607**Diagnostic text:**
5608
5609+---------------------------------------------------------------------------------------------+
5610|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
5611+---------------------------------------------------------------------------------------------+
5612
5613
5614-Wmany-braces-around-scalar-init
5615--------------------------------
5616This diagnostic is enabled by default.
5617
5618**Diagnostic text:**
5619
5620+--------------------------------------------------------------------------------+
5621|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
5622+--------------------------------------------------------------------------------+
5623
5624
5625-Wmemsize-comparison
5626--------------------
5627This diagnostic is enabled by default.
5628
5629**Diagnostic text:**
5630
5631+-----------------------------------------------------------------------------------------------------------------------+
5632|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
5633+-----------------------------------------------------------------------------------------------------------------------+
5634
5635
5636-Wmethod-signatures
5637-------------------
5638**Diagnostic text:**
5639
5640+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5641|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
5642+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5643
5644+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5645|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
5646+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5647
5648
5649-Wmicrosoft
5650-----------
5651Some of the diagnostics controlled by this flag are enabled by default.
5652
5653Controls `-Wmicrosoft-charize`_, `-Wmicrosoft-include`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-template`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-void-pseudo-dtor`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-end-of-file`_, `-Winconsistent-dllimport`_.
5654
5655
5656-Wmicrosoft-anon-tag
5657--------------------
5658Some of the diagnostics controlled by this flag are enabled by default.
5659
5660**Diagnostic text:**
5661
5662+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
5663|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
5664| ||:diagtext:`struct`|| |
5665| |+------------------+| |
5666| ||:diagtext:`union` || |
5667| |+------------------+| |
5668+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
5669
5670+--------------------------------------------------------+---------------------+---------------------------------------------+
5671|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
5672| ||:diagtext:`structs`|| |
5673| |+-------------------+| |
5674| ||:diagtext:`unions` || |
5675| |+-------------------+| |
5676+--------------------------------------------------------+---------------------+---------------------------------------------+
5677
5678
5679-Wmicrosoft-cast
5680----------------
5681This diagnostic is enabled by default.
5682
5683**Diagnostic text:**
5684
5685+------------------------------------------------------------------------------------------------------------------------------+
5686|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
5687+------------------------------------------------------------------------------------------------------------------------------+
5688
5689+-------------------------------------------------------------------------------------------------------------------------------------+
5690|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
5691+-------------------------------------------------------------------------------------------------------------------------------------+
5692
5693
5694-Wmicrosoft-charize
5695-------------------
5696**Diagnostic text:**
5697
5698+-------------------------------------------------------------------------------------+
5699|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
5700+-------------------------------------------------------------------------------------+
5701
5702
5703-Wmicrosoft-comment-paste
5704-------------------------
5705**Diagnostic text:**
5706
5707+----------------------------------------------------------------------------------------------------------+
5708|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
5709+----------------------------------------------------------------------------------------------------------+
5710
5711
5712-Wmicrosoft-const-init
5713----------------------
5714This diagnostic is enabled by default.
5715
5716**Diagnostic text:**
5717
5718+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
5719|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
5720| || || |
5721| |+---------------------------------------------------------------+| |
5722| || |nbsp| :diagtext:`without a user-provided default constructor`|| |
5723| |+---------------------------------------------------------------+| |
5724+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
5725
5726
5727-Wmicrosoft-cpp-macro
5728---------------------
5729**Diagnostic text:**
5730
5731+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5732|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
5733+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
5734
5735
5736-Wmicrosoft-default-arg-redefinition
5737------------------------------------
5738This diagnostic is enabled by default.
5739
5740**Diagnostic text:**
5741
5742+-----------------------------------------------------------------------+
5743|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
5744+-----------------------------------------------------------------------+
5745
5746
5747-Wmicrosoft-end-of-file
5748-----------------------
5749**Diagnostic text:**
5750
5751+----------------------------------------------------------------------------------------------+
5752|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
5753+----------------------------------------------------------------------------------------------+
5754
5755
5756-Wmicrosoft-enum-forward-reference
5757----------------------------------
5758**Diagnostic text:**
5759
5760+---------------------------------------------------------------------------------------------------+
5761|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
5762+---------------------------------------------------------------------------------------------------+
5763
5764
5765-Wmicrosoft-enum-value
5766----------------------
5767This diagnostic is enabled by default.
5768
5769**Diagnostic text:**
5770
5771+---------------------------------------------------------------------------------------------------------------------------+
5772|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
5773+---------------------------------------------------------------------------------------------------------------------------+
5774
5775
5776-Wmicrosoft-exception-spec
5777--------------------------
5778Some of the diagnostics controlled by this flag are enabled by default.
5779
5780**Diagnostic text:**
5781
5782+------------------------------------------------------------------------------------------------+
5783|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
5784+------------------------------------------------------------------------------------------------+
5785
5786+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
5787|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
5788| || || |
5789| |+--------------------------------+| |
5790| ||:diagtext:`pointer to` |nbsp| || |
5791| |+--------------------------------+| |
5792| ||:diagtext:`reference to` |nbsp| || |
5793| |+--------------------------------+| |
5794+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
5795
5796+-----------------------------------------------------------------------------------------------------------------+
5797|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
5798+-----------------------------------------------------------------------------------------------------------------+
5799
5800+------------------------------------------------------------------------------------------------------------------------+
5801|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
5802+------------------------------------------------------------------------------------------------------------------------+
5803
5804+--------------------------------------------------------------------------------------------------------------------------------+
5805|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
5806+--------------------------------------------------------------------------------------------------------------------------------+
5807
5808+-------------------------------------------------------------------------------------------------------------------+
5809|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
5810+-------------------------------------------------------------------------------------------------------------------+
5811
5812
5813-Wmicrosoft-exists
5814------------------
5815This diagnostic is enabled by default.
5816
5817**Diagnostic text:**
5818
5819+--------------------------------------------------------+---------------------------------+--------------------------------------------+
5820|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
5821| ||:diagtext:`\_\_if\_not\_exists`|| |
5822| |+-------------------------------+| |
5823| ||:diagtext:`\_\_if\_exists` || |
5824| |+-------------------------------+| |
5825+--------------------------------------------------------+---------------------------------+--------------------------------------------+
5826
5827
5828-Wmicrosoft-explicit-constructor-call
5829-------------------------------------
5830This diagnostic is enabled by default.
5831
5832**Diagnostic text:**
5833
5834+-------------------------------------------------------------------------------------------+
5835|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
5836+-------------------------------------------------------------------------------------------+
5837
5838
5839-Wmicrosoft-extra-qualification
5840-------------------------------
5841This diagnostic is enabled by default.
5842
5843**Diagnostic text:**
5844
5845+--------------------------------------------------------------------------------------------+
5846|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
5847+--------------------------------------------------------------------------------------------+
5848
5849
5850-Wmicrosoft-fixed-enum
5851----------------------
5852**Diagnostic text:**
5853
5854+---------------------------------------------------------------------------------------------------------------+
5855|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
5856+---------------------------------------------------------------------------------------------------------------+
5857
5858
5859-Wmicrosoft-flexible-array
5860--------------------------
5861**Diagnostic text:**
5862
5863+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
5864|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
5865| ||:diagtext:`struct` || |
5866| |+---------------------+| |
5867| ||:diagtext:`interface`|| |
5868| |+---------------------+| |
5869| ||:diagtext:`union` || |
5870| |+---------------------+| |
5871| ||:diagtext:`class` || |
5872| |+---------------------+| |
5873| ||:diagtext:`enum` || |
5874| |+---------------------+| |
5875+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
5876
5877+-------------------------------------------------------------------------------------------------------------------------------------------+
5878|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
5879+-------------------------------------------------------------------------------------------------------------------------------------------+
5880
5881
5882-Wmicrosoft-goto
5883----------------
5884This diagnostic is enabled by default.
5885
5886**Diagnostic text:**
5887
5888+----------------------------------------------------------------------------------------------------------+
5889|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
5890+----------------------------------------------------------------------------------------------------------+
5891
5892
5893-Wmicrosoft-include
5894-------------------
5895This diagnostic is enabled by default.
5896
5897**Diagnostic text:**
5898
5899+------------------------------------------------------------------------------------------------------------------------------+
5900|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
5901+------------------------------------------------------------------------------------------------------------------------------+
5902
5903
5904-Wmicrosoft-mutable-reference
5905-----------------------------
5906This diagnostic is enabled by default.
5907
5908**Diagnostic text:**
5909
5910+---------------------------------------------------------------------------------------------+
5911|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
5912+---------------------------------------------------------------------------------------------+
5913
5914
5915-Wmicrosoft-pure-definition
5916---------------------------
5917This diagnostic is enabled by default.
5918
5919**Diagnostic text:**
5920
5921+-------------------------------------------------------------------------------------------------------+
5922|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
5923+-------------------------------------------------------------------------------------------------------+
5924
5925
5926-Wmicrosoft-redeclare-static
5927----------------------------
5928**Diagnostic text:**
5929
5930+-------------------------------------------------------------------------------------------------------------------------------------------+
5931|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
5932+-------------------------------------------------------------------------------------------------------------------------------------------+
5933
5934
5935-Wmicrosoft-sealed
5936------------------
5937This diagnostic is enabled by default.
5938
5939**Diagnostic text:**
5940
5941+--------------------------------------------------------------------------------+
5942|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
5943+--------------------------------------------------------------------------------+
5944
5945
5946-Wmicrosoft-template
5947--------------------
5948This diagnostic is enabled by default.
5949
5950**Diagnostic text:**
5951
5952+------------------------------------------------------------------------------------------------------------------------------------------------------+
5953|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
5954+------------------------------------------------------------------------------------------------------------------------------------------------------+
5955
5956+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5957|: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`|
5958+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5959
5960+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5961|:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
5962+--------------------------------------------------------------------------------------------------------------------------------------------------------+
5963
5964+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5965|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
5966+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5967
5968+-----------------------------------------------------------------------------------------------------------------------------+
5969|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
5970+-----------------------------------------------------------------------------------------------------------------------------+
5971
5972+---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5973|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
5974| ||:diagtext:`class template` || |
5975| |+-------------------------------------+| |
5976| ||:diagtext:`class template partial` || |
5977| |+-------------------------------------+| |
5978| ||:diagtext:`variable template` || |
5979| |+-------------------------------------+| |
5980| ||:diagtext:`variable template partial`|| |
5981| |+-------------------------------------+| |
5982| ||:diagtext:`function template` || |
5983| |+-------------------------------------+| |
5984| ||:diagtext:`member function` || |
5985| |+-------------------------------------+| |
5986| ||:diagtext:`static data member` || |
5987| |+-------------------------------------+| |
5988| ||:diagtext:`member class` || |
5989| |+-------------------------------------+| |
5990| ||:diagtext:`member enumeration` || |
5991| |+-------------------------------------+| |
5992+---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5993
5994+------------------------------------------------------------------------------------------------------------------------------------------------+
5995|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
5996+------------------------------------------------------------------------------------------------------------------------------------------------+
5997
5998+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5999|: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`|
6000+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6001
6002
6003-Wmicrosoft-union-member-reference
6004----------------------------------
6005This diagnostic is enabled by default.
6006
6007**Diagnostic text:**
6008
6009+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6010|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
6011+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6012
6013
6014-Wmicrosoft-unqualified-friend
6015------------------------------
6016This diagnostic is enabled by default.
6017
6018**Diagnostic text:**
6019
6020+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6021|: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`|
6022+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6023
6024
6025-Wmicrosoft-using-decl
6026----------------------
6027This diagnostic is enabled by default.
6028
6029**Diagnostic text:**
6030
6031+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6032|: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`|
6033+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6034
6035
6036-Wmicrosoft-void-pseudo-dtor
6037----------------------------
6038This diagnostic is enabled by default.
6039
6040**Diagnostic text:**
6041
6042+------------------------------------------------------------------------------------------------+
6043|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
6044+------------------------------------------------------------------------------------------------+
6045
6046
6047-Wmismatched-new-delete
6048-----------------------
6049This diagnostic is enabled by default.
6050
6051**Diagnostic text:**
6052
6053+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6054|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
6055| || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| |
6056| |+----------------+| |+----------------+| |+----------------+| |
6057| ||:diagtext:`\[\]`|| || || || || |
6058| |+----------------+| |+----------------+| |+----------------+| |
6059+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6060
6061
6062-Wmismatched-parameter-types
6063----------------------------
6064This diagnostic is enabled by default.
6065
6066**Diagnostic text:**
6067
6068+---------------------------------------------------------------------------------------------------------------+
6069|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
6070+---------------------------------------------------------------------------------------------------------------+
6071
6072
6073-Wmismatched-return-types
6074-------------------------
6075This diagnostic is enabled by default.
6076
6077**Diagnostic text:**
6078
6079+-----------------------------------------------------------------------------------------------------------+
6080|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
6081+-----------------------------------------------------------------------------------------------------------+
6082
6083
6084-Wmismatched-tags
6085-----------------
6086**Diagnostic text:**
6087
6088+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6089|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
6090| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| ||
6091| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
6092| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
6093| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
6094| ||:diagtext:`a class` || | ||:diagtext:`a class` || |
6095| |+------------------------+| | |+------------------------+| |
6096+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6097
6098+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6099|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
6100| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| ||
6101| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
6102| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
6103| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
6104| ||:diagtext:`class` || | ||:diagtext:`class` || |
6105| |+---------------------+| | |+---------------------+| |
6106+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6107
6108
6109-Wmissing-braces
6110----------------
6111**Diagnostic text:**
6112
6113+----------------------------------------------------------------------------------------+
6114|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
6115+----------------------------------------------------------------------------------------+
6116
6117
6118-Wmissing-declarations
6119----------------------
6120This diagnostic is enabled by default.
6121
6122**Diagnostic text:**
6123
6124+----------------------------------------------------------------------------+
6125|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
6126+----------------------------------------------------------------------------+
6127
6128+-----------------------------------------------------------------------------------------------------------------+
6129|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
6130+-----------------------------------------------------------------------------------------------------------------+
6131
6132+--------------------------------------------------------------+
6133|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
6134+--------------------------------------------------------------+
6135
6136+-------------------------------------------------------------------------------------------------+
6137|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
6138+-------------------------------------------------------------------------------------------------+
6139
6140
6141-Wmissing-exception-spec
6142------------------------
6143This diagnostic is enabled by default.
6144
6145**Diagnostic text:**
6146
6147+--------------------------------------------------------------------------------------------------------------------------------+
6148|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6149+--------------------------------------------------------------------------------------------------------------------------------+
6150
6151
6152-Wmissing-field-initializers
6153----------------------------
6154**Diagnostic text:**
6155
6156+-----------------------------------------------------------------------------------------------------------+
6157|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
6158+-----------------------------------------------------------------------------------------------------------+
6159
6160
6161-Wmissing-format-attribute
6162--------------------------
6163This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6164
6165-Wmissing-include-dirs
6166----------------------
6167This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6168
6169-Wmissing-method-return-type
6170----------------------------
6171**Diagnostic text:**
6172
6173+--------------------------------------------------------------------------------------------+
6174|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
6175+--------------------------------------------------------------------------------------------+
6176
6177
6178-Wmissing-noreturn
6179------------------
6180**Diagnostic text:**
6181
6182+----------------------------------------------------------------------------------------+
6183|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
6184+----------------------------------------------------------------------------------------+
6185
6186+---------------------------+----------------------+---------------------------------------------------------------------------------------+
6187|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
6188| ||:diagtext:`function`|| |
6189| |+--------------------+| |
6190| ||:diagtext:`method` || |
6191| |+--------------------+| |
6192+---------------------------+----------------------+---------------------------------------------------------------------------------------+
6193
6194
6195-Wmissing-prototype-for-cc
6196--------------------------
6197This diagnostic is enabled by default.
6198
6199**Diagnostic text:**
6200
6201+----------------------------------------------------------------------------------------------------------------------------------------------+
6202|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
6203+----------------------------------------------------------------------------------------------------------------------------------------------+
6204
6205
6206-Wmissing-prototypes
6207--------------------
6208**Diagnostic text:**
6209
6210+-------------------------------------------------------------------------------------------------+
6211|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
6212+-------------------------------------------------------------------------------------------------+
6213
6214
6215-Wmissing-selector-name
6216-----------------------
6217This diagnostic is enabled by default.
6218
6219**Diagnostic text:**
6220
6221+---------------------------------------------------------------------------------------------------------------------------------------------+
6222|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
6223+---------------------------------------------------------------------------------------------------------------------------------------------+
6224
6225
6226-Wmissing-sysroot
6227-----------------
6228This diagnostic is enabled by default.
6229
6230**Diagnostic text:**
6231
6232+------------------------------------------------------------------------------------------------+
6233|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
6234+------------------------------------------------------------------------------------------------+
6235
6236
6237-Wmissing-variable-declarations
6238-------------------------------
6239**Diagnostic text:**
6240
6241+---------------------------------------------------------------------------------------------------------------------+
6242|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
6243+---------------------------------------------------------------------------------------------------------------------+
6244
6245
6246-Rmodule-build
6247--------------
6248**Diagnostic text:**
6249
6250+---------------------------------------------------------------------------------------------------------------------+
6251|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
6252+---------------------------------------------------------------------------------------------------------------------+
6253
6254+--------------------------------------------------------------------------------------------+
6255|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
6256+--------------------------------------------------------------------------------------------+
6257
6258
6259-Wmodule-conflict
6260-----------------
6261This diagnostic is enabled by default.
6262
6263**Diagnostic text:**
6264
6265+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6266|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
6267+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6268
6269
6270-Wmodule-file-config-mismatch
6271-----------------------------
6272This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
6273
6274**Diagnostic text:**
6275
6276+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6277|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
6278+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6279
6280
6281-Wmodule-file-extension
6282-----------------------
6283This diagnostic is enabled by default.
6284
6285**Diagnostic text:**
6286
6287+----------------------------------------------------------------------------------------------------------------+
6288|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
6289+----------------------------------------------------------------------------------------------------------------+
6290
6291
6292-Wmodule-import-in-extern-c
6293---------------------------
6294This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
6295
6296**Diagnostic text:**
6297
6298+-----------------------------------------------------------------------------------------------------------------------------------------------+
6299|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
6300+-----------------------------------------------------------------------------------------------------------------------------------------------+
6301
6302
6303-Wmodules-ambiguous-internal-linkage
6304------------------------------------
6305This diagnostic is enabled by default.
6306
6307**Diagnostic text:**
6308
6309+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6310|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
6311+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6312
6313
6314-Wmodules-import-nested-redundant
6315---------------------------------
6316This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
6317
6318**Diagnostic text:**
6319
6320+-------------------------------------------------------------------------------------------------------------------------------------+
6321|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
6322+-------------------------------------------------------------------------------------------------------------------------------------+
6323
6324
6325-Wmost
6326------
6327Some of the diagnostics controlled by this flag are enabled by default.
6328
6329Controls `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wvolatile-register-var`_, `-Wobjc-missing-super-calls`_, `-Wobjc-designated-initializers`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wcast-of-sel-type`_, `-Wextern-c-compat`_.
6330
6331
6332-Wmove
6333------
6334Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
6335
6336
6337-Wmsvc-include
6338--------------
6339Synonym for `-Wmicrosoft-include`_.
6340
6341
6342-Wmultichar
6343-----------
6344This diagnostic is enabled by default.
6345
6346**Diagnostic text:**
6347
6348+-------------------------------------------------------------------------+
6349|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
6350+-------------------------------------------------------------------------+
6351
6352
6353-Wmultiple-move-vbase
6354---------------------
6355This diagnostic is enabled by default.
6356
6357**Diagnostic text:**
6358
6359+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6360|: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`|
6361+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6362
6363
6364-Wnarrowing
6365-----------
6366Synonym for `-Wc++11-narrowing`_.
6367
6368
6369-Wnested-anon-types
6370-------------------
6371**Diagnostic text:**
6372
6373+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6374|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
6375| ||:diagtext:`struct`|| |
6376| |+------------------+| |
6377| ||:diagtext:`union` || |
6378| |+------------------+| |
6379+---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6380
6381
6382-Wnested-externs
6383----------------
6384This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6385
6386-Wnew-returns-null
6387------------------
6388This diagnostic is enabled by default.
6389
6390**Diagnostic text:**
6391
6392+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6393|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
6394| || ||
6395| |+---------------------------------+|
6396| || |nbsp| :diagtext:`or 'noexcept'`||
6397| |+---------------------------------+|
6398+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6399
6400
6401-Wnewline-eof
6402-------------
6403**Diagnostic text:**
6404
6405+----------------------------------------------------------------+
6406|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6407+----------------------------------------------------------------+
6408
6409+----------------------------------------------------------------+
6410|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6411+----------------------------------------------------------------+
6412
6413
6414-Wnon-gcc
6415---------
6416Some of the diagnostics controlled by this flag are enabled by default.
6417
6418Controls `-Wsign-compare`_, `-Wconversion`_, `-Wliteral-range`_.
6419
6420
6421-Wnon-literal-null-conversion
6422-----------------------------
6423This diagnostic is enabled by default.
6424
6425**Diagnostic text:**
6426
6427+--------------------------------------------------------------------------------------------------------------------------------------------+
6428|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
6429+--------------------------------------------------------------------------------------------------------------------------------------------+
6430
6431
6432-Wnon-modular-include-in-framework-module
6433-----------------------------------------
6434**Diagnostic text:**
6435
6436+---------------------------------------------------------------------------------------------------------------------------+
6437|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`'`|
6438+---------------------------------------------------------------------------------------------------------------------------+
6439
6440
6441-Wnon-modular-include-in-module
6442-------------------------------
6443Also controls `-Wnon-modular-include-in-framework-module`_.
6444
6445**Diagnostic text:**
6446
6447+-----------------------------------------------------------------------------------------------------------------+
6448|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`'`|
6449+-----------------------------------------------------------------------------------------------------------------+
6450
6451
6452-Wnon-pod-varargs
6453-----------------
6454This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
6455
6456**Diagnostic text:**
6457
6458+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6459|: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`|
6460| ||:diagtext:`non-POD` || ||:diagtext:`function` || |
6461| |+-----------------------+| |+-----------------------+| |
6462| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
6463| |+-----------------------+| |+-----------------------+| |
6464| | | ||:diagtext:`method` || |
6465| | | |+-----------------------+| |
6466| | | ||:diagtext:`constructor`|| |
6467| | | |+-----------------------+| |
6468+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6469
6470+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6471|: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`|
6472| ||:diagtext:`non-POD` || ||:diagtext:`function` || |
6473| |+-----------------------+| |+-----------------------+| |
6474| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
6475| |+-----------------------+| |+-----------------------+| |
6476| | | ||:diagtext:`method` || |
6477| | | |+-----------------------+| |
6478| | | ||:diagtext:`constructor`|| |
6479| | | |+-----------------------+| |
6480+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6481
6482+----------------------------------------------------------------------------------------------------------+
6483|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
6484+----------------------------------------------------------------------------------------------------------+
6485
6486+--------------------------------------------------------------------------------------------------------------------------+
6487|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
6488+--------------------------------------------------------------------------------------------------------------------------+
6489
6490
6491-Wnon-virtual-dtor
6492------------------
6493**Diagnostic text:**
6494
6495+---------------------------------------------------------------------------------------------------------------+
6496|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
6497+---------------------------------------------------------------------------------------------------------------+
6498
6499
6500-Wnonnull
6501---------
6502This diagnostic is enabled by default.
6503
6504**Diagnostic text:**
6505
6506+------------------------------------------------------------------------------------------------+
6507|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
6508+------------------------------------------------------------------------------------------------+
6509
6510+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
6511|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
6512| ||:diagtext:`function`|| |
6513| |+--------------------+| |
6514| ||:diagtext:`method` || |
6515| |+--------------------+| |
6516+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
6517
6518
6519-Wnonportable-cfstrings
6520-----------------------
6521This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6522
6523-Wnonportable-include-path
6524--------------------------
6525This diagnostic is enabled by default.
6526
6527**Diagnostic text:**
6528
6529+------------------------------------------------------------------------------------------------------------------------------------------------------+
6530|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
6531+------------------------------------------------------------------------------------------------------------------------------------------------------+
6532
6533
6534-Wnonportable-system-include-path
6535---------------------------------
6536**Diagnostic text:**
6537
6538+------------------------------------------------------------------------------------------------------------------------------------------------------+
6539|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
6540+------------------------------------------------------------------------------------------------------------------------------------------------------+
6541
6542
6543-Wnonportable-vector-initialization
6544-----------------------------------
6545This diagnostic is enabled by default.
6546
6547**Diagnostic text:**
6548
6549+---------------------------------------------------------------------------------------------------------------------+
6550|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
6551+---------------------------------------------------------------------------------------------------------------------+
6552
6553
6554-Wnull-arithmetic
6555-----------------
6556This diagnostic is enabled by default.
6557
6558**Diagnostic text:**
6559
6560+--------------------------------------------------------------------------+
6561|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
6562+--------------------------------------------------------------------------+
6563
6564+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
6565|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
6566| ||+----------------------------------------------------------+||
6567| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
6568| ||+----------------------------------------------------------+||
6569| |+------------------------------------------------------------+|
6570| ||+----------------------------------------------------------+||
6571| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
6572| ||+----------------------------------------------------------+||
6573| |+------------------------------------------------------------+|
6574+--------------------------------------------------------------------------------------+--------------------------------------------------------------+
6575
6576
6577-Wnull-character
6578----------------
6579This diagnostic is enabled by default.
6580
6581**Diagnostic text:**
6582
6583+-----------------------------------------------------------------------------+--------------------+---------------------------+
6584|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
6585| ||:diagtext:`char` || |
6586| |+------------------+| |
6587| ||:diagtext:`string`|| |
6588| |+------------------+| |
6589+-----------------------------------------------------------------------------+--------------------+---------------------------+
6590
6591+-------------------------------------------------------------+
6592|:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
6593+-------------------------------------------------------------+
6594
6595
6596-Wnull-conversion
6597-----------------
6598This diagnostic is enabled by default.
6599
6600**Diagnostic text:**
6601
6602+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
6603|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
6604| ||:diagtext:`NULL` || |
6605| |+-------------------+| |
6606| ||:diagtext:`nullptr`|| |
6607| |+-------------------+| |
6608+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
6609
6610
6611-Wnull-dereference
6612------------------
6613This diagnostic is enabled by default.
6614
6615**Diagnostic text:**
6616
6617+------------------------------------------------------------------------------------------------------------+
6618|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
6619+------------------------------------------------------------------------------------------------------------+
6620
6621+---------------------------------------------------------------------------------------------------------+
6622|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
6623+---------------------------------------------------------------------------------------------------------+
6624
6625
6626-Wnullability
6627-------------
6628This diagnostic is enabled by default.
6629
6630**Diagnostic text:**
6631
6632+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6633|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
6634+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6635
6636+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6637|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
6638+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6639
6640+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6641|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
6642+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
6643
6644+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6645|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
6646+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6647
6648+----------------------------------------------------------------------------------------------+
6649|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
6650+----------------------------------------------------------------------------------------------+
6651
6652
6653-Wnullability-completeness
6654--------------------------
6655This diagnostic is enabled by default.
6656
6657**Diagnostic text:**
6658
6659+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
6660|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
6661| ||:diagtext:`pointer` || |
6662| |+--------------------------+| |
6663| ||:diagtext:`block pointer` || |
6664| |+--------------------------+| |
6665| ||:diagtext:`member pointer`|| |
6666| |+--------------------------+| |
6667+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
6668
6669
6670-Wnullability-declspec
6671----------------------
6672This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
6673
6674**Diagnostic text:**
6675
6676+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
6677|: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:`?`|
6678| ||:diagtext:`pointer` || |
6679| |+-----------------------------------+| |
6680| ||:diagtext:`block pointer` || |
6681| |+-----------------------------------+| |
6682| ||:diagtext:`member pointer` || |
6683| |+-----------------------------------+| |
6684| ||:diagtext:`function pointer` || |
6685| |+-----------------------------------+| |
6686| ||:diagtext:`member function pointer`|| |
6687| |+-----------------------------------+| |
6688+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
6689
6690
6691-Wnullability-extension
6692-----------------------
6693**Diagnostic text:**
6694
6695+---------------------------------------------------------------------------------------------------------------------------------+
6696|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
6697+---------------------------------------------------------------------------------------------------------------------------------+
6698
6699
6700-Wnullable-to-nonnull-conversion
6701--------------------------------
6702**Diagnostic text:**
6703
6704+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6705|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
6706+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6707
6708
6709-Wobjc-autosynthesis-property-ivar-name-match
6710---------------------------------------------
6711This diagnostic is enabled by default.
6712
6713**Diagnostic text:**
6714
6715+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
6716|: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`|
6717| || || |
6718| |+-----------------------+| |
6719| ||:diagtext:`synthesized`|| |
6720| |+-----------------------+| |
6721+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
6722
6723
6724-Wobjc-circular-container
6725-------------------------
6726This diagnostic is enabled by default.
6727
6728**Diagnostic text:**
6729
6730+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6731|:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
6732+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6733
6734
6735-Wobjc-cocoa-api
6736----------------
6737Synonym for `-Wobjc-redundant-api-use`_.
6738
6739
6740-Wobjc-designated-initializers
6741------------------------------
6742This diagnostic is enabled by default.
6743
6744**Diagnostic text:**
6745
6746+-----------------------------------------------------------------------------------------------------------------------------------+
6747|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
6748+-----------------------------------------------------------------------------------------------------------------------------------+
6749
6750+--------------------------------------------------------------------------------------------------+
6751|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
6752+--------------------------------------------------------------------------------------------------+
6753
6754+--------------------------------------------------------------------------------------------------------------------+
6755|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
6756+--------------------------------------------------------------------------------------------------------------------+
6757
6758+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6759|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
6760+------------------------------------------------------------------------------------------------------------------------------------------------------------+
6761
6762+-----------------------------------------------------------------------------------------------------------+
6763|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
6764+-----------------------------------------------------------------------------------------------------------+
6765
6766+----------------------------------------------------------------------------------------------------------+
6767|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
6768+----------------------------------------------------------------------------------------------------------+
6769
6770
6771-Wobjc-forward-class-redefinition
6772---------------------------------
6773This diagnostic is enabled by default.
6774
6775**Diagnostic text:**
6776
6777+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
6778|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
6779+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
6780
6781
6782-Wobjc-interface-ivars
6783----------------------
6784**Diagnostic text:**
6785
6786+-------------------------------------------------------------------------------------------------------+
6787|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
6788+-------------------------------------------------------------------------------------------------------+
6789
6790
6791-Wobjc-literal-compare
6792----------------------
6793This diagnostic is enabled by default.
6794
6795Also controls `-Wobjc-string-compare`_.
6796
6797**Diagnostic text:**
6798
6799+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
6800|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
6801| ||:diagtext:`an array literal` || |
6802| |+--------------------------------+| |
6803| ||:diagtext:`a dictionary literal`|| |
6804| |+--------------------------------+| |
6805| ||:diagtext:`a numeric literal` || |
6806| |+--------------------------------+| |
6807| ||:diagtext:`a boxed expression` || |
6808| |+--------------------------------+| |
6809| || || |
6810| |+--------------------------------+| |
6811+-------------------------------------------------------------------+----------------------------------+------------------------------------------+
6812
6813
6814-Wobjc-literal-conversion
6815-------------------------
6816This diagnostic is enabled by default.
6817
6818**Diagnostic text:**
6819
6820+-------------------------------------------------------------------------------------------------------------------------+
6821|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
6822+-------------------------------------------------------------------------------------------------------------------------+
6823
6824+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
6825|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
6826| ||:diagtext:`array element type` || |
6827| |+---------------------------------+| |
6828| ||:diagtext:`dictionary key type` || |
6829| |+---------------------------------+| |
6830| ||:diagtext:`dictionary value type`|| |
6831| |+---------------------------------+| |
6832+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
6833
6834
6835-Wobjc-macro-redefinition
6836-------------------------
6837This diagnostic is enabled by default.
6838
6839**Diagnostic text:**
6840
6841+-------------------------------------------------------------------------------------------+
6842|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
6843+-------------------------------------------------------------------------------------------+
6844
6845
6846-Wobjc-method-access
6847--------------------
6848This diagnostic is enabled by default.
6849
6850**Diagnostic text:**
6851
6852+---------------------------------------------------------------------------------------------------------------------------------------+
6853|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
6854+---------------------------------------------------------------------------------------------------------------------------------------+
6855
6856+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6857|: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:`?`|
6858+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6859
6860+------------------------------------------------------------------------------------------------------------------------------------------+
6861|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
6862+------------------------------------------------------------------------------------------------------------------------------------------+
6863
6864+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6865|: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:`?`|
6866+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6867
6868+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6869|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
6870+-------------------------------------------------------------------------------------------------------------------------------------------------------+
6871
6872+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6873|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
6874+---------------------------------------------------------------------------------------------------------------------------------------------------------+
6875
6876
6877-Wobjc-missing-property-synthesis
6878---------------------------------
6879**Diagnostic text:**
6880
6881+------------------------------------------------------------------------------------------------------------------+
6882|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
6883+------------------------------------------------------------------------------------------------------------------+
6884
6885
6886-Wobjc-missing-super-calls
6887--------------------------
6888This diagnostic is enabled by default.
6889
6890**Diagnostic text:**
6891
6892+-------------------------------------------------------------------------------------------------------------------+
6893|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
6894+-------------------------------------------------------------------------------------------------------------------+
6895
6896
6897-Wobjc-multiple-method-names
6898----------------------------
6899This diagnostic is enabled by default.
6900
6901**Diagnostic text:**
6902
6903+--------------------------------------------------------------------------------------------------------------+
6904|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
6905+--------------------------------------------------------------------------------------------------------------+
6906
6907
6908-Wobjc-noncopy-retain-block-property
6909------------------------------------
6910This diagnostic is enabled by default.
6911
6912**Diagnostic text:**
6913
6914+--------------------------------------------------------------------------------------------------------------------+
6915|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
6916+--------------------------------------------------------------------------------------------------------------------+
6917
6918
6919-Wobjc-nonunified-exceptions
6920----------------------------
6921This diagnostic is enabled by default.
6922
6923**Diagnostic text:**
6924
6925+-----------------------------------------------------------------------------------------------------------------------------+
6926|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
6927+-----------------------------------------------------------------------------------------------------------------------------+
6928
6929
6930-Wobjc-property-implementation
6931------------------------------
6932This diagnostic is enabled by default.
6933
6934**Diagnostic text:**
6935
6936+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6937|: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`|
6938+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6939
6940+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6941|: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`|
6942+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6943
6944+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6945|: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`|
6946+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6947
6948+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6949|: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`|
6950+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6951
6952
6953-Wobjc-property-implicit-mismatch
6954---------------------------------
6955This diagnostic is enabled by default.
6956
6957**Diagnostic text:**
6958
6959+---------------------------------------------------------------------------------------------------------------------------------------+
6960|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
6961+---------------------------------------------------------------------------------------------------------------------------------------+
6962
6963
6964-Wobjc-property-matches-cocoa-ownership-rule
6965--------------------------------------------
6966This diagnostic is enabled by default.
6967
6968**Diagnostic text:**
6969
6970+-------------------------------------------------------------------------------------------------------------+
6971|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
6972+-------------------------------------------------------------------------------------------------------------+
6973
6974
6975-Wobjc-property-no-attribute
6976----------------------------
6977This diagnostic is enabled by default.
6978
6979**Diagnostic text:**
6980
6981+------------------------------------------------------------------------------------------------------------+
6982|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for non-GC object`|
6983+------------------------------------------------------------------------------------------------------------+
6984
6985+--------------------------------------------------------------------------------------------------------------------+
6986|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
6987+--------------------------------------------------------------------------------------------------------------------+
6988
6989
6990-Wobjc-property-synthesis
6991-------------------------
6992This diagnostic is enabled by default.
6993
6994**Diagnostic text:**
6995
6996+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6997|: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`|
6998+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6999
7000+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7001|: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`|
7002+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7003
7004+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7005|: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`|
7006+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7007
7008
7009-Wobjc-protocol-method-implementation
7010-------------------------------------
7011This diagnostic is enabled by default.
7012
7013**Diagnostic text:**
7014
7015+----------------------------------------------------------------------------------------------------------------------------+
7016|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
7017+----------------------------------------------------------------------------------------------------------------------------+
7018
7019
7020-Wobjc-protocol-property-synthesis
7021----------------------------------
7022This diagnostic is enabled by default.
7023
7024**Diagnostic text:**
7025
7026+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7027|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
7028+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7029
7030
7031-Wobjc-protocol-qualifiers
7032--------------------------
7033This diagnostic is enabled by default.
7034
7035**Diagnostic text:**
7036
7037+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7038|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
7039+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7040
7041
7042-Wobjc-readonly-with-setter-property
7043------------------------------------
7044This diagnostic is enabled by default.
7045
7046**Diagnostic text:**
7047
7048+-----------------------------------------------------------------------------------------+
7049|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
7050+-----------------------------------------------------------------------------------------+
7051
7052
7053-Wobjc-redundant-api-use
7054------------------------
7055Synonym for `-Wobjc-redundant-literal-use`_.
7056
7057
7058-Wobjc-redundant-literal-use
7059----------------------------
7060This diagnostic is enabled by default.
7061
7062**Diagnostic text:**
7063
7064+-------------------------------------------------------------------------------------------------------------------+
7065|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
7066+-------------------------------------------------------------------------------------------------------------------+
7067
7068
7069-Wobjc-root-class
7070-----------------
7071This diagnostic is enabled by default.
7072
7073**Diagnostic text:**
7074
7075+-------------------------------------------------------------------------------------------------------------------------------+
7076|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
7077+-------------------------------------------------------------------------------------------------------------------------------+
7078
7079
7080-Wobjc-string-compare
7081---------------------
7082This diagnostic is enabled by default.
7083
7084**Diagnostic text:**
7085
7086+---------------------------------------------------------------------------------------------------+
7087|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
7088+---------------------------------------------------------------------------------------------------+
7089
7090
7091-Wobjc-string-concatenation
7092---------------------------
7093This diagnostic is enabled by default.
7094
7095**Diagnostic text:**
7096
7097+-------------------------------------------------------------------------------------------------------------------------+
7098|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
7099+-------------------------------------------------------------------------------------------------------------------------+
7100
7101
7102-Wodr
7103-----
7104This diagnostic is enabled by default.
7105
7106**Diagnostic text:**
7107
7108+--------------------------------------------------------------------------------------------------------------------------------------------------+
7109|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
7110+--------------------------------------------------------------------------------------------------------------------------------------------------+
7111
7112
7113-Wold-style-cast
7114----------------
7115**Diagnostic text:**
7116
7117+------------------------------------------------------------+
7118|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
7119+------------------------------------------------------------+
7120
7121
7122-Wold-style-definition
7123----------------------
7124This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7125
7126-Wopencl-unsupported-rgba
7127-------------------------
7128This diagnostic is enabled by default.
7129
7130**Diagnostic text:**
7131
7132+----------------------------------------------------------------------------------------------------------------------------+
7133|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
7134+----------------------------------------------------------------------------------------------------------------------------+
7135
7136
7137-Wopenmp-clauses
7138----------------
7139This diagnostic is enabled by default.
7140
7141**Diagnostic text:**
7142
7143+-------------------------------------------------------------------------------------------------------------------------+
7144|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
7145+-------------------------------------------------------------------------------------------------------------------------+
7146
7147+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7148|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
7149| || || |
7150| |+-------------------------------------------------+| |
7151| ||:diagtext:`and other variables in clause` |nbsp| || |
7152| |+-------------------------------------------------+| |
7153+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7154
7155
7156-Wopenmp-loop-form
7157------------------
7158This diagnostic is enabled by default.
7159
7160**Diagnostic text:**
7161
7162+-----------------------------------------------------------------------------------------------------------------------------------------+
7163|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
7164+-----------------------------------------------------------------------------------------------------------------------------------------+
7165
7166+-----------------------------------------------------------------------------------------------------------------------------+
7167|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
7168+-----------------------------------------------------------------------------------------------------------------------------+
7169
7170
7171-Wopenmp-target
7172---------------
7173This diagnostic is enabled by default.
7174
7175**Diagnostic text:**
7176
7177+-----------------------------------------------------------------------------------------------+
7178|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
7179+-----------------------------------------------------------------------------------------------+
7180
7181
7182-Woption-ignored
7183----------------
7184This diagnostic is enabled by default.
7185
7186**Diagnostic text:**
7187
7188+----------------------------------------------------------------------------------------------------------------------------+
7189|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
7190+----------------------------------------------------------------------------------------------------------------------------+
7191
7192
7193-Wout-of-line-declaration
7194-------------------------
7195This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
7196
7197**Diagnostic text:**
7198
7199+-------------------------------------------------------------------------------------------+
7200|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
7201+-------------------------------------------------------------------------------------------+
7202
7203
7204-Wover-aligned
7205--------------
7206**Diagnostic text:**
7207
7208+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7209|: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`|
7210+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7211
7212
7213-Woverflow
7214----------
7215This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7216
7217-Woverlength-strings
7218--------------------
7219**Diagnostic text:**
7220
7221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7222|: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`|
7223| ||:diagtext:`C90` || |
7224| |+-------------------+| |
7225| ||:diagtext:`ISO C99`|| |
7226| |+-------------------+| |
7227| ||:diagtext:`C++` || |
7228| |+-------------------+| |
7229+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7230
7231
7232-Woverloaded-shift-op-parentheses
7233---------------------------------
7234This diagnostic is enabled by default.
7235
7236**Diagnostic text:**
7237
7238+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7239|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
7240| ||:diagtext:`>>`|| |
7241| |+--------------+| |
7242| ||:diagtext:`<<`|| |
7243| |+--------------+| |
7244+------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7245
7246
7247-Woverloaded-virtual
7248--------------------
7249**Diagnostic text:**
7250
7251+-----------------------------------------------------------------------------------------------+-----------------------+
7252|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
7253| ||:diagtext:`function` ||
7254| |+---------------------+|
7255| ||:diagtext:`functions`||
7256| |+---------------------+|
7257+-----------------------------------------------------------------------------------------------+-----------------------+
7258
7259
7260-Woverride-module
7261-----------------
7262This diagnostic is enabled by default.
7263
7264**Diagnostic text:**
7265
7266+-------------------------------------------------------------------------------------------------------+
7267|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
7268+-------------------------------------------------------------------------------------------------------+
7269
7270
7271-Woverriding-method-mismatch
7272----------------------------
7273**Diagnostic text:**
7274
7275+-------------------------------------------------------------------------------------------------------------------------------------------+
7276|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
7277+-------------------------------------------------------------------------------------------------------------------------------------------+
7278
7279+------------------------------------------------------------------------------------------------------------+
7280|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
7281+------------------------------------------------------------------------------------------------------------+
7282
7283+----------------------------------------------------------------------------------------------------------------------------------------+
7284|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
7285+----------------------------------------------------------------------------------------------------------------------------------------+
7286
7287+--------------------------------------------------------------------------------------------------------+
7288|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
7289+--------------------------------------------------------------------------------------------------------+
7290
7291+--------------------------------------------------------------------------------------------------------+
7292|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
7293+--------------------------------------------------------------------------------------------------------+
7294
7295+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7296|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7298
7299+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7300|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7301+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7302
7303
7304-Woverriding-t-option
7305---------------------
7306This diagnostic is enabled by default.
7307
7308**Diagnostic text:**
7309
7310+---------------------------------------------------------------------------------------------------------------------------+
7311|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
7312+---------------------------------------------------------------------------------------------------------------------------+
7313
7314
7315-Wpacked
7316--------
7317**Diagnostic text:**
7318
7319+--------------------------------------------------------------------------------------------------+
7320|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
7321+--------------------------------------------------------------------------------------------------+
7322
7323
7324-Wpadded
7325--------
7326**Diagnostic text:**
7327
7328+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7329|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
7330| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
7331| |+---------------------+| |+----------------+|+-------------+| |
7332| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
7333| |+---------------------+| |+----------------+|+-------------+| |
7334| ||:diagtext:`class` || | | | |
7335| |+---------------------+| | | | |
7336+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7337
7338+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7339|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
7340| ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
7341| |+---------------------+| |+----------------+|+-------------+| |
7342| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
7343| |+---------------------+| |+----------------+|+-------------+| |
7344| ||:diagtext:`class` || | | | |
7345| |+---------------------+| | | | |
7346+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7347
7348+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7349|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
7350| ||:diagtext:`byte`||| || |
7351| |+----------------+|+-------------+| |
7352| ||:diagtext:`bit` |||:diagtext:`s`|| |
7353| |+----------------+|+-------------+| |
7354+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7355
7356
7357-Wparentheses
7358-------------
7359This diagnostic is enabled by default.
7360
7361Also controls `-Wlogical-op-parentheses`_, `-Wlogical-not-parentheses`_, `-Wbitwise-op-parentheses`_, `-Wshift-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wdangling-else`_.
7362
7363**Diagnostic text:**
7364
7365+-----------------------------------------------------------------------------------------------------------+
7366|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
7367+-----------------------------------------------------------------------------------------------------------+
7368
7369+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7370|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
7371+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7372
7373+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7374|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
7375+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7376
7377
7378-Wparentheses-equality
7379----------------------
7380This diagnostic is enabled by default.
7381
7382**Diagnostic text:**
7383
7384+--------------------------------------------------------------------------------------+
7385|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
7386+--------------------------------------------------------------------------------------+
7387
7388
7389-Wpartial-availability
7390----------------------
7391Synonym for `-Wunguarded-availability`_.
7392
7393
7394-Rpass
7395------
7396**Diagnostic text:**
7397
7398The text of this diagnostic is not controlled by Clang.
7399
7400
7401-Rpass-analysis
7402---------------
7403**Diagnostic text:**
7404
7405The text of this diagnostic is not controlled by Clang.
7406
7407+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7408|: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!`|
7409+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7410
7411+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7412|: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'.`|
7413+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7414
7415
7416-Wpass-failed
7417-------------
7418This diagnostic is enabled by default.
7419
7420**Diagnostic text:**
7421
7422The text of this diagnostic is not controlled by Clang.
7423
7424
7425-Rpass-missed
7426-------------
7427**Diagnostic text:**
7428
7429The text of this diagnostic is not controlled by Clang.
7430
7431
7432-Wpch-date-time
7433---------------
7434This diagnostic is enabled by default.
7435
7436**Diagnostic text:**
7437
7438+---------------------------+--------------------------------+-----------------------------------------------------+
7439|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
7440| ||:diagtext:`precompiled header`|| |
7441| |+------------------------------+| |
7442| ||:diagtext:`module` || |
7443| |+------------------------------+| |
7444+---------------------------+--------------------------------+-----------------------------------------------------+
7445
7446
7447-Wpedantic
7448----------
7449Also controls `-Wgnu-union-cast`_, `-Wdollar-in-identifier-extension`_, `-Wgnu-zero-line-directive`_, `-Wc11-extensions`_, `-Wgnu-flexible-array-union-member`_, `-Wvariadic-macros`_, `-Wempty-translation-unit`_, `-Wgnu-include-next`_, `-Wembedded-directive`_, `-Wgnu-statement-expression`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-redeclared-enum`_, `-Wmicrosoft-enum-forward-reference`_, `-Wc++14-binary-literal`_, `-Wgnu-empty-initializer`_, `-Wmicrosoft-charize`_, `-Wdeclaration-after-statement`_, `-Woverlength-strings`_, `-Wcomplex-component-init`_, `-Wmicrosoft-end-of-file`_, `-Wgnu-folding-constant`_, `-Wmicrosoft-fixed-enum`_, `-Wkeyword-macro`_, `-Wlong-long`_, `-Wgnu-compound-literal-initializer`_, `-Wc++11-extra-semi`_, `-Wformat-pedantic`_, `-Wnullability-extension`_, `-Wgnu-flexible-array-initializer`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-cpp-macro`_, `-Wgnu-case-range`_, `-Wvla-extension`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wlanguage-extension-token`_, `-Wgnu-empty-struct`_, `-Wgnu-auto-type`_, `-Wzero-length-array`_, `-Wgnu-complex-integer`_, `-Wmicrosoft-redeclare-static`_, `-Wc++11-long-long`_, `-Wretained-language-linkage`_, `-Wgnu-imaginary-constant`_, `-Wgnu-anonymous-struct`_, `-Wflexible-array-extensions`_, `-Wgnu-binary-literal`_, `-Wgnu-label-as-value`_, `-Wnested-anon-types`_, `-Wmicrosoft-comment-paste`_, `-Wextended-offsetof`_.
7450
7451**Diagnostic text:**
7452
7453+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
7454|: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`|
7455| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
7456| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
7457| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
7458| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
7459| | | | | | | | | ||+-----------------------------------------------+|| |
7460| | | | | | | | | |+-------------------------------------------------+| |
7461+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
7462
7463+---------------------------------------------------------------+-----------------------+----------------------------+
7464|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
7465| ||:diagtext:`sizeof` || |
7466| |+---------------------+| |
7467| ||:diagtext:`alignof` || |
7468| |+---------------------+| |
7469| ||:diagtext:`vec\_step`|| |
7470| |+---------------------+| |
7471+---------------------------------------------------------------+-----------------------+----------------------------+
7472
7473+----------------------------------------------------------------------------------------------------------------+
7474|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
7475+----------------------------------------------------------------------------------------------------------------+
7476
7477+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7478|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
7479+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7480
7481+---------------------------------------------------------------------------------------+
7482|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
7483+---------------------------------------------------------------------------------------+
7484
7485+---------------------------------------------------------------------------------------------------------------------------+
7486|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++1z extension`|
7487+---------------------------------------------------------------------------------------------------------------------------+
7488
7489+------------------------------------------------------------------------------------------------------------+
7490|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
7491+------------------------------------------------------------------------------------------------------------+
7492
7493+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
7494|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
7495| ||:diagtext:`qualifier in` |nbsp| || || || |
7496| |+--------------------------------+| |+---------------------+| |
7497| ||:diagtext:`static` |nbsp| || || || |
7498| |+--------------------------------+| |+---------------------+| |
7499| || || ||:diagtext:`'\[\*\] '`|| |
7500| |+--------------------------------+| |+---------------------+| |
7501+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
7502
7503+----------------------------------------------------------------+
7504|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
7505+----------------------------------------------------------------+
7506
7507+-------------------------------------------------------------------------------------------------+
7508|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
7509+-------------------------------------------------------------------------------------------------+
7510
7511+------------------------------------------------------------------------------------------------+
7512|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
7513+------------------------------------------------------------------------------------------------+
7514
7515+-------------------------------------------------------------------------------------------------+
7516|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
7517+-------------------------------------------------------------------------------------------------+
7518
7519+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
7520|: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`|
7521| ||:diagtext:`integral` || |
7522| |+-----------------------+| |
7523| ||:diagtext:`enumeration`|| |
7524| |+-----------------------+| |
7525+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
7526
7527+-------------------------------------------------------------------------------------------------------------+
7528|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
7529+-------------------------------------------------------------------------------------------------------------+
7530
7531+------------------------------------------------------------------------+
7532|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
7533+------------------------------------------------------------------------+
7534
7535+---------------------------------------------------------------------------------------+
7536|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
7537+---------------------------------------------------------------------------------------+
7538
7539+-------------------------------------------------------------------------------------------------------------------------------------+
7540|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
7541+-------------------------------------------------------------------------------------------------------------------------------------+
7542
7543+-------------------------------------------------------------------------------------------------------+
7544|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
7545+-------------------------------------------------------------------------------------------------------+
7546
7547+---------------------------------------------------------------------+
7548|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
7549+---------------------------------------------------------------------+
7550
7551+-----------------------------------------------------------------------------------------------+
7552|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
7553+-----------------------------------------------------------------------------------------------+
7554
7555+--------------------------------------------------------------------------------------------------+
7556|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
7557+--------------------------------------------------------------------------------------------------+
7558
7559+-------------------------------------------------------------------------------------------+
7560|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
7561+-------------------------------------------------------------------------------------------+
7562
7563+-------------------------------------------------------------------------------+
7564|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
7565+-------------------------------------------------------------------------------+
7566
7567+-----------------------------------------------------------------------+
7568|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
7569+-----------------------------------------------------------------------+
7570
7571+------------------------------------------------------------------------------+
7572|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
7573+------------------------------------------------------------------------------+
7574
7575+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
7576|: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`|
7577| ||:diagtext:`copying variable` || |
7578| |+---------------------------------------+| |
7579| ||:diagtext:`copying parameter` || |
7580| |+---------------------------------------+| |
7581| ||:diagtext:`returning object` || |
7582| |+---------------------------------------+| |
7583| ||:diagtext:`throwing object` || |
7584| |+---------------------------------------+| |
7585| ||:diagtext:`copying member subobject` || |
7586| |+---------------------------------------+| |
7587| ||:diagtext:`copying array element` || |
7588| |+---------------------------------------+| |
7589| ||:diagtext:`allocating object` || |
7590| |+---------------------------------------+| |
7591| ||:diagtext:`copying temporary` || |
7592| |+---------------------------------------+| |
7593| ||:diagtext:`initializing base subobject`|| |
7594| |+---------------------------------------+| |
7595| ||:diagtext:`initializing vector element`|| |
7596| |+---------------------------------------+| |
7597| ||:diagtext:`capturing value` || |
7598| |+---------------------------------------+| |
7599+--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
7600
7601+--------------------------------------------------------------------------------------------------------------------+
7602|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
7603+--------------------------------------------------------------------------------------------------------------------+
7604
7605+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
7606|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
7607| ||:diagtext:`struct`|| |
7608| |+------------------+| |
7609| ||:diagtext:`union` || |
7610| |+------------------+| |
7611+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
7612
7613+--------------------------------------------------------------------------------------------------------------------------------------+
7614|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
7615+--------------------------------------------------------------------------------------------------------------------------------------+
7616
7617+--------------------------------------------------------------------------------------------+
7618|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
7619+--------------------------------------------------------------------------------------------+
7620
7621+-----------------------------------------------------------------------------+
7622|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
7623+-----------------------------------------------------------------------------+
7624
7625+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7626|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
7627+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7628
7629+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
7630|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
7631| || |nbsp| :diagtext:`a`|| || || |
7632| |+---------------------+| |+-------------+| |
7633| || || ||:diagtext:`s`|| |
7634| |+---------------------+| |+-------------+| |
7635+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
7636
7637+-----------------------------------------------------------------------+
7638|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
7639+-----------------------------------------------------------------------+
7640
7641+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
7642|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
7643| ||:diagtext:`function`|| |
7644| |+--------------------+| |
7645| ||:diagtext:`variable`|| |
7646| |+--------------------+| |
7647+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
7648
7649+--------------------------------------------------------+--------------------+------------------------------------------------------------+
7650|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
7651| ||:diagtext:`struct`|| |
7652| |+------------------+| |
7653| ||:diagtext:`union` || |
7654| |+------------------+| |
7655+--------------------------------------------------------+--------------------+------------------------------------------------------------+
7656
7657+-----------------------------------------------------------------------------------------------------------------------+
7658|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
7659+-----------------------------------------------------------------------------------------------------------------------+
7660
7661+--------------------------------------------------------------------------------------------------+
7662|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
7663+--------------------------------------------------------------------------------------------------+
7664
7665+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
7666|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
7667| ||:diagtext:`small`|| |
7668| |+-----------------+| |
7669| ||:diagtext:`large`|| |
7670| |+-----------------+| |
7671+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
7672
7673+---------------------------------------------------------------------------------------------------------------------------+
7674|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
7675+---------------------------------------------------------------------------------------------------------------------------+
7676
7677+----------------------------------------------------------------------------------------+
7678|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++1z feature`|
7679+----------------------------------------------------------------------------------------+
7680
7681+--------------------------------------------------------------------------------------------------------------------------------------------------------+
7682|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
7683+--------------------------------------------------------------------------------------------------------------------------------------------------------+
7684
7685+----------------------------------------------------------------------------------------+
7686|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
7687+----------------------------------------------------------------------------------------+
7688
7689+----------------------------------------------------------------------------------------------------------------------------------------+
7690|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
7691+----------------------------------------------------------------------------------------------------------------------------------------+
7692
7693+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
7694|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
7695| ||:diagtext:`function`|| |
7696| |+--------------------+| |
7697| ||:diagtext:`method` || |
7698| |+--------------------+| |
7699| ||:diagtext:`block` || |
7700| |+--------------------+| |
7701+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
7702
7703+------------------------------------------------------------------------------------------------------------+
7704|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
7705+------------------------------------------------------------------------------------------------------------+
7706
7707+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7708|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
7709+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7710
7711+-----------------------------------------------------------------------------------------+
7712|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
7713+-----------------------------------------------------------------------------------------+
7714
7715+--------------------------------------------------------------------------------------------------+
7716|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
7717+--------------------------------------------------------------------------------------------------+
7718
7719+------------------------------------------------------------+
7720|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
7721+------------------------------------------------------------+
7722
7723+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
7724|: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| |+---------------------+|
7725| ||:diagtext:`private` ||
7726| |+---------------------+|
7727| ||:diagtext:`protected`||
7728| |+---------------------+|
7729+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
7730
7731+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
7732|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
7733| ||:diagtext:`assigning to different types` || |
7734| |+--------------------------------------------------------------+| |
7735| ||:diagtext:`passing to parameter of different type` || |
7736| |+--------------------------------------------------------------+| |
7737| ||:diagtext:`returning from function with different return type`|| |
7738| |+--------------------------------------------------------------+| |
7739| ||:diagtext:`converting between types` || |
7740| |+--------------------------------------------------------------+| |
7741| ||:diagtext:`initializing with expression of different type` || |
7742| |+--------------------------------------------------------------+| |
7743| ||:diagtext:`sending to parameter of different type` || |
7744| |+--------------------------------------------------------------+| |
7745| ||:diagtext:`casting between types` || |
7746| |+--------------------------------------------------------------+| |
7747+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
7748
7749+-----------------------------------------------------------------------------------+
7750|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
7751+-----------------------------------------------------------------------------------+
7752
7753+--------------------------------------------------------+------------------------------------------------+
7754|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
7755| ||:diagtext:`outside of a function` ||
7756| |+----------------------------------------------+|
7757| ||+--------------------------------------------+||
7758| |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
7759| ||+--------------------------------------------+||
7760| |+----------------------------------------------+|
7761| ||:diagtext:`inside instance variable list` ||
7762| |+----------------------------------------------+|
7763| ||:diagtext:`after member function definition` ||
7764| |+----------------------------------------------+|
7765+--------------------------------------------------------+------------------------------------------------+
7766
7767+-----------------------------------------------------------------------+
7768|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
7769+-----------------------------------------------------------------------+
7770
7771+----------------------------------------------------------------------------------------+
7772|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
7773+----------------------------------------------------------------------------------------+
7774
7775+--------------------------------------------------------------------------------------------------+
7776|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
7777+--------------------------------------------------------------------------------------------------+
7778
7779+-------------------------------------------------------------------------------------------------------+
7780|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
7781+-------------------------------------------------------------------------------------------------------+
7782
7783+-----------------------------------------------------------------------------------------------------------+
7784|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
7785+-----------------------------------------------------------------------------------------------------------+
7786
7787+--------------------------------------------------------------------------------+
7788|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
7789+--------------------------------------------------------------------------------+
7790
7791+---------------------------------------------------------------+-----------------------+--------------------------------+
7792|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
7793| ||:diagtext:`sizeof` || |
7794| |+---------------------+| |
7795| ||:diagtext:`alignof` || |
7796| |+---------------------+| |
7797| ||:diagtext:`vec\_step`|| |
7798| |+---------------------+| |
7799+---------------------------------------------------------------+-----------------------+--------------------------------+
7800
7801+-----------------------------------------------------------------------------------+
7802|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
7803+-----------------------------------------------------------------------------------+
7804
7805
7806-Wpedantic-core-features
7807------------------------
7808**Diagnostic text:**
7809
7810+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7811|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
7812+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7813
7814
7815-Wpessimizing-move
7816------------------
7817**Diagnostic text:**
7818
7819+--------------------------------------------------------------------------------------+
7820|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
7821+--------------------------------------------------------------------------------------+
7822
7823+--------------------------------------------------------------------------------------------------------+
7824|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
7825+--------------------------------------------------------------------------------------------------------+
7826
7827
7828-Wpointer-arith
7829---------------
7830Some of the diagnostics controlled by this flag are enabled by default.
7831
7832**Diagnostic text:**
7833
7834+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
7835|: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`|
7836| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
7837| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
7838| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
7839| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
7840| | | | | | | | | ||+-----------------------------------------------+|| |
7841| | | | | | | | | |+-------------------------------------------------+| |
7842+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
7843
7844+----------------------------------------------------------------------------------------+
7845|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
7846+----------------------------------------------------------------------------------------+
7847
7848+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
7849|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
7850| || |nbsp| :diagtext:`a`|| || || |
7851| |+---------------------+| |+-------------+| |
7852| || || ||:diagtext:`s`|| |
7853| |+---------------------+| |+-------------+| |
7854+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
7855
7856+---------------------------------------------------------------+-----------------------+--------------------------------+
7857|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
7858| ||:diagtext:`sizeof` || |
7859| |+---------------------+| |
7860| ||:diagtext:`alignof` || |
7861| |+---------------------+| |
7862| ||:diagtext:`vec\_step`|| |
7863| |+---------------------+| |
7864+---------------------------------------------------------------+-----------------------+--------------------------------+
7865
7866+---------------------------------------------------------------+-----------------------+----------------------------+
7867|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
7868| ||:diagtext:`sizeof` || |
7869| |+---------------------+| |
7870| ||:diagtext:`alignof` || |
7871| |+---------------------+| |
7872| ||:diagtext:`vec\_step`|| |
7873| |+---------------------+| |
7874+---------------------------------------------------------------+-----------------------+----------------------------+
7875
7876+-----------------------------------------------------------------------------------------------------------------------------------------------------+
7877|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
7878+-----------------------------------------------------------------------------------------------------------------------------------------------------+
7879
7880
7881-Wpointer-bool-conversion
7882-------------------------
7883This diagnostic is enabled by default.
7884
7885**Diagnostic text:**
7886
7887+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
7888|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
7889| ||:diagtext:`function call`|| |
7890| |+-------------------------+| |
7891| ||:diagtext:`parameter` || |
7892| |+-------------------------+| |
7893+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
7894
7895+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
7896|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
7897| || || |
7898| |+----------------------------+| |
7899| || |nbsp| :diagtext:`function`|| |
7900| |+----------------------------+| |
7901| || |nbsp| :diagtext:`array` || |
7902| |+----------------------------+| |
7903+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
7904
7905
7906-Wpointer-sign
7907--------------
7908This diagnostic is enabled by default.
7909
7910**Diagnostic text:**
7911
7912+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
7913|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
7914| ||:diagtext:`assigning to different types` || |
7915| |+--------------------------------------------------------------+| |
7916| ||:diagtext:`passing to parameter of different type` || |
7917| |+--------------------------------------------------------------+| |
7918| ||:diagtext:`returning from function with different return type`|| |
7919| |+--------------------------------------------------------------+| |
7920| ||:diagtext:`converting between types` || |
7921| |+--------------------------------------------------------------+| |
7922| ||:diagtext:`initializing with expression of different type` || |
7923| |+--------------------------------------------------------------+| |
7924| ||:diagtext:`sending to parameter of different type` || |
7925| |+--------------------------------------------------------------+| |
7926| ||:diagtext:`casting between types` || |
7927| |+--------------------------------------------------------------+| |
7928+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
7929
7930
7931-Wpointer-to-int-cast
7932---------------------
7933This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7934
7935-Wpointer-type-mismatch
7936-----------------------
7937This diagnostic is enabled by default.
7938
7939**Diagnostic text:**
7940
7941+------------------------------------------------------------+
7942|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
7943+------------------------------------------------------------+
7944
7945
7946-Wpotentially-evaluated-expression
7947----------------------------------
7948This diagnostic is enabled by default.
7949
7950**Diagnostic text:**
7951
7952+----------------------------------------------------------------------------------------------------------------------------------+
7953|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
7954+----------------------------------------------------------------------------------------------------------------------------------+
7955
7956
7957-Wpragma-once-outside-header
7958----------------------------
7959This diagnostic is enabled by default.
7960
7961**Diagnostic text:**
7962
7963+----------------------------------------------------------------+
7964|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
7965+----------------------------------------------------------------+
7966
7967
7968-Wpragma-system-header-outside-header
7969-------------------------------------
7970This diagnostic is enabled by default.
7971
7972**Diagnostic text:**
7973
7974+----------------------------------------------------------------------------------+
7975|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
7976+----------------------------------------------------------------------------------+
7977
7978
7979-Wpragmas
7980---------
7981Some of the diagnostics controlled by this flag are enabled by default.
7982
7983Also controls `-Wunknown-pragmas`_, `-Wignored-pragmas`_.
7984
7985**Diagnostic text:**
7986
7987+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
7988|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
7989| ||:diagtext:`function`|| |
7990| |+--------------------+| |
7991| ||:diagtext:`variable`|| |
7992| |+--------------------+| |
7993+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
7994
7995
7996-Wpredefined-identifier-outside-function
7997----------------------------------------
7998This diagnostic is enabled by default.
7999
8000**Diagnostic text:**
8001
8002+------------------------------------------------------------------------------------------+
8003|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
8004+------------------------------------------------------------------------------------------+
8005
8006
8007-Wprivate-extern
8008----------------
8009This diagnostic is enabled by default.
8010
8011**Diagnostic text:**
8012
8013+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8014|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
8015+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8016
8017
8018-Wprivate-header
8019----------------
8020This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
8021
8022**Diagnostic text:**
8023
8024+----------------------------------------------------------------------------------------------------------------+
8025|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
8026+----------------------------------------------------------------------------------------------------------------+
8027
8028
8029-Wprofile-instr-out-of-date
8030---------------------------
8031This diagnostic is enabled by default.
8032
8033**Diagnostic text:**
8034
8035+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------------------------------------------+-------------------+--------------------------------------------------------+
8036|: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:`no data and` |nbsp| :placeholder:`C` |nbsp| |+-----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
8037| || || ||:diagtext:`:has` || ||:diagtext:`:has` || |
8038| |+-------------+| |+-----------------+| |+-----------------+| |
8039| ||:diagtext:`s`|| ||:diagtext:`:have`|| ||:diagtext:`:have`|| |
8040| |+-------------+| |+-----------------+| |+-----------------+| |
8041+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------------------------------------------+-------------------+--------------------------------------------------------+
8042
8043
8044-Wprofile-instr-unprofiled
8045--------------------------
8046This diagnostic is enabled by default.
8047
8048**Diagnostic text:**
8049
8050+--------------------------------------------------------------------------------------------------------+
8051|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
8052+--------------------------------------------------------------------------------------------------------+
8053
8054
8055-Wproperty-access-dot-syntax
8056----------------------------
8057This diagnostic is enabled by default.
8058
8059**Diagnostic text:**
8060
8061+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8062|: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:`?`|
8063+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8064
8065
8066-Wproperty-attribute-mismatch
8067-----------------------------
8068This diagnostic is enabled by default.
8069
8070**Diagnostic text:**
8071
8072+-------------------------------------------------------------------------------------------------------------+
8073|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
8074+-------------------------------------------------------------------------------------------------------------+
8075
8076+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8077|: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`|
8078+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8079
8080+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8081|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
8082+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8083
8084+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8085|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
8086+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8087
8088
8089-Wprotocol
8090----------
8091This diagnostic is enabled by default.
8092
8093**Diagnostic text:**
8094
8095+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8096|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
8097+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8098
8099
8100-Wprotocol-property-synthesis-ambiguity
8101---------------------------------------
8102This diagnostic is enabled by default.
8103
8104**Diagnostic text:**
8105
8106+-----------------------------------------------------------------------------------------------------------------------------+
8107|:warning:`warning:` |nbsp| :diagtext:`property of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was selected for synthesis`|
8108+-----------------------------------------------------------------------------------------------------------------------------+
8109
8110
8111-Wqualified-void-return-type
8112----------------------------
8113This diagnostic is enabled by default.
8114
8115**Diagnostic text:**
8116
8117+---------------------------------------------------------------------------------------------------------+
8118|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
8119+---------------------------------------------------------------------------------------------------------+
8120
8121
8122-Wrange-loop-analysis
8123---------------------
8124**Diagnostic text:**
8125
8126+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8127|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`|
8128+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8129
8130+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8131|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`|
8132+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8133
8134+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8135|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`|
8136+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8137
8138
8139-Wreadonly-iboutlet-property
8140----------------------------
8141This diagnostic is enabled by default.
8142
8143**Diagnostic text:**
8144
8145+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8146|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
8147+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8148
8149
8150-Wreceiver-expr
8151---------------
8152This diagnostic is enabled by default.
8153
8154**Diagnostic text:**
8155
8156+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8157|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
8158+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8159
8160
8161-Wreceiver-forward-class
8162------------------------
8163Some of the diagnostics controlled by this flag are enabled by default.
8164
8165**Diagnostic text:**
8166
8167+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8168|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
8169+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8170
8171+---------------------------------------------------------------------------------------------------------------------------------------------+
8172|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
8173+---------------------------------------------------------------------------------------------------------------------------------------------+
8174
8175
8176-Wredeclared-class-member
8177-------------------------
8178This diagnostic is enabled by default.
8179
8180**Diagnostic text:**
8181
8182+------------------------------------------------------------------------+
8183|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
8184+------------------------------------------------------------------------+
8185
8186
8187-Wredundant-decls
8188-----------------
8189This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8190
8191-Wredundant-move
8192----------------
8193**Diagnostic text:**
8194
8195+-------------------------------------------------------------------------+
8196|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
8197+-------------------------------------------------------------------------+
8198
8199
8200-Wregister
8201----------
8202This diagnostic is enabled by default.
8203
8204Also controls `-Wdeprecated-register`_.
8205
8206**Diagnostic text:**
8207
8208+----------------------------------------------------------------------------------------------+
8209|:error:`error:` |nbsp| :diagtext:`ISO C++1z does not allow 'register' storage class specifier`|
8210+----------------------------------------------------------------------------------------------+
8211
8212
8213-Wreinterpret-base-class
8214------------------------
8215This diagnostic is enabled by default.
8216
8217**Diagnostic text:**
8218
8219+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8220|: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'`|
8221| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
8222| |+----------------+| |+----------------+| |+-----------------------------------+| |
8223| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
8224| |+----------------+| |+----------------+| |+-----------------------------------+| |
8225+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8226
8227
8228-Rremark-backend-plugin
8229-----------------------
8230**Diagnostic text:**
8231
8232The text of this diagnostic is not controlled by Clang.
8233
8234
8235-Wreorder
8236---------
8237**Diagnostic text:**
8238
8239+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8240|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
8241| ||:diagtext:`field` || ||:diagtext:`field`|| |
8242| |+----------------------+| |+-----------------+| |
8243| ||:diagtext:`base class`|| ||:diagtext:`base` || |
8244| |+----------------------+| |+-----------------+| |
8245+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8246
8247
8248-Wrequires-super-attribute
8249--------------------------
8250This diagnostic is enabled by default.
8251
8252**Diagnostic text:**
8253
8254+-----------------------------------------------------------------------------------------------------+----------------------------------+
8255|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
8256| ||:diagtext:`methods in protocols`||
8257| |+--------------------------------+|
8258| ||:diagtext:`dealloc` ||
8259| |+--------------------------------+|
8260+-----------------------------------------------------------------------------------------------------+----------------------------------+
8261
8262
8263-Wreserved-id-macro
8264-------------------
8265**Diagnostic text:**
8266
8267+--------------------------------------------------------------------------+
8268|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
8269+--------------------------------------------------------------------------+
8270
8271
8272-Wreserved-user-defined-literal
8273-------------------------------
8274Some of the diagnostics controlled by this flag are enabled by default.
8275
8276Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
8277
8278**Diagnostic text:**
8279
8280+-----------------------------------------------------------------------------------------------------------------------+
8281|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
8282+-----------------------------------------------------------------------------------------------------------------------+
8283
8284+-------------------------------------------------------------------------------------------------------------------+
8285|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
8286+-------------------------------------------------------------------------------------------------------------------+
8287
8288
8289-Wretained-language-linkage
8290---------------------------
8291**Diagnostic text:**
8292
8293+-----------------------------------------------------------------------------------------------------------------------------------------------------+
8294|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
8295+-----------------------------------------------------------------------------------------------------------------------------------------------------+
8296
8297
8298-Wreturn-stack-address
8299----------------------
8300This diagnostic is enabled by default.
8301
8302**Diagnostic text:**
8303
8304+---------------------------------------------------------------------------------+
8305|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
8306+---------------------------------------------------------------------------------+
8307
8308+--------------------------------------------------------+--------------------------+------------------------------------------+
8309|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
8310| ||:diagtext:`address of` || |
8311| |+------------------------+| |
8312| ||:diagtext:`reference to`|| |
8313| |+------------------------+| |
8314+--------------------------------------------------------+--------------------------+------------------------------------------+
8315
8316+---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
8317|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
8318| ||:diagtext:`address of` || |
8319| |+------------------------+| |
8320| ||:diagtext:`reference to`|| |
8321| |+------------------------+| |
8322+---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
8323
8324
8325-Wreturn-type
8326-------------
8327This diagnostic is enabled by default.
8328
8329Also controls `-Wreturn-type-c-linkage`_.
8330
8331**Diagnostic text:**
8332
8333+-----------------------+---------------------------+---------------------------------------------------------------------+
8334|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
8335| ||:diagtext:`void function`|| |
8336| |+-------------------------+| |
8337| ||:diagtext:`void method` || |
8338| |+-------------------------+| |
8339| ||:diagtext:`constructor` || |
8340| |+-------------------------+| |
8341| ||:diagtext:`destructor` || |
8342| |+-------------------------+| |
8343+-----------------------+---------------------------+---------------------------------------------------------------------+
8344
8345+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
8346|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
8347| ||:diagtext:`function`|| |
8348| |+--------------------+| |
8349| ||:diagtext:`method` || |
8350| |+--------------------+| |
8351+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
8352
8353+-------------------------------------------------------------------------------+
8354|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
8355+-------------------------------------------------------------------------------+
8356
8357+-----------------------------------------------------------------------------+
8358|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
8359+-----------------------------------------------------------------------------+
8360
8361+---------------------------------------------------------------------------------+
8362|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
8363+---------------------------------------------------------------------------------+
8364
8365+-------------------------------------------------------------------------------+
8366|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
8367+-------------------------------------------------------------------------------+
8368
8369+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
8370|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
8371| ||:diagtext:`function`|| |
8372| |+--------------------+| |
8373| ||:diagtext:`method` || |
8374| |+--------------------+| |
8375+---------------------------------------------------+----------------------+-----------------------------------------------------------------+
8376
8377
8378-Wreturn-type-c-linkage
8379-----------------------
8380This diagnostic is enabled by default.
8381
8382**Diagnostic text:**
8383
8384+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8385|: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`|
8386+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8387
8388+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8389|: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`|
8390+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8391
8392
8393-Wrtti-for-exceptions
8394---------------------
8395This diagnostic is enabled by default.
8396
8397**Diagnostic text:**
8398
8399+--------------------------------------------------------------------------------------+
8400|:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
8401+--------------------------------------------------------------------------------------+
8402
8403
8404-Rsanitize-address
8405------------------
8406**Diagnostic text:**
8407
8408+--------------------------------------------------------------------------------------------------------+
8409|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
8410+--------------------------------------------------------------------------------------------------------+
8411
8412+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
8413|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
8414| ||:diagtext:`is not C++` ||
8415| |+------------------------------------+|
8416| ||:diagtext:`is packed` ||
8417| |+------------------------------------+|
8418| ||:diagtext:`is a union` ||
8419| |+------------------------------------+|
8420| ||:diagtext:`is trivially copyable` ||
8421| |+------------------------------------+|
8422| ||:diagtext:`has trivial destructor` ||
8423| |+------------------------------------+|
8424| ||:diagtext:`is standard layout` ||
8425| |+------------------------------------+|
8426| ||:diagtext:`is in a blacklisted file`||
8427| |+------------------------------------+|
8428| ||:diagtext:`is blacklisted` ||
8429| |+------------------------------------+|
8430+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
8431
8432
8433-Wsection
8434---------
8435This diagnostic is enabled by default.
8436
8437**Diagnostic text:**
8438
8439+----------------------------------------------------------------------------------+
8440|:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
8441+----------------------------------------------------------------------------------+
8442
8443
8444-Wselector
8445----------
8446Also controls `-Wselector-type-mismatch`_.
8447
8448**Diagnostic text:**
8449
8450+-------------------------------------------------------------------------------------------------------------------------------------------------+
8451|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
8452+-------------------------------------------------------------------------------------------------------------------------------------------------+
8453
8454
8455-Wselector-type-mismatch
8456------------------------
8457**Diagnostic text:**
8458
8459+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8460|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
8461+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8462
8463
8464-Wself-assign
8465-------------
8466Some of the diagnostics controlled by this flag are enabled by default.
8467
8468Also controls `-Wself-assign-field`_.
8469
8470**Diagnostic text:**
8471
8472+------------------------------------------------------------------------------------------------------------------------------------------+
8473|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
8474+------------------------------------------------------------------------------------------------------------------------------------------+
8475
8476
8477-Wself-assign-field
8478-------------------
8479This diagnostic is enabled by default.
8480
8481**Diagnostic text:**
8482
8483+--------------------------------------------------------+-------------------------------+-----------------------------+
8484|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
8485| ||:diagtext:`field` || |
8486| |+-----------------------------+| |
8487| ||:diagtext:`instance variable`|| |
8488| |+-----------------------------+| |
8489+--------------------------------------------------------+-------------------------------+-----------------------------+
8490
8491
8492-Wself-move
8493-----------
8494**Diagnostic text:**
8495
8496+------------------------------------------------------------------------------------------------------------------------------+
8497|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
8498+------------------------------------------------------------------------------------------------------------------------------+
8499
8500
8501-Wsemicolon-before-method-body
8502------------------------------
8503**Diagnostic text:**
8504
8505+------------------------------------------------------------------------------+
8506|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
8507+------------------------------------------------------------------------------+
8508
8509
8510-Wsentinel
8511----------
8512This diagnostic is enabled by default.
8513
8514**Diagnostic text:**
8515
8516+------------------------------------------------------------------+-----------------------------+
8517|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
8518| ||:diagtext:`function call` ||
8519| |+---------------------------+|
8520| ||:diagtext:`method dispatch`||
8521| |+---------------------------+|
8522| ||:diagtext:`block call` ||
8523| |+---------------------------+|
8524+------------------------------------------------------------------+-----------------------------+
8525
8526+------------------------------------------------------------------------------------------------------------------------------------------------+
8527|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
8528+------------------------------------------------------------------------------------------------------------------------------------------------+
8529
8530
8531-Wsequence-point
8532----------------
8533Synonym for `-Wunsequenced`_.
8534
8535
8536-Wserialized-diagnostics
8537------------------------
8538This diagnostic is enabled by default.
8539
8540**Diagnostic text:**
8541
8542+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8543|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
8544+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8545
8546+--------------------------------------------------------------------------------------------+
8547|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
8548+--------------------------------------------------------------------------------------------+
8549
8550
8551-Wshadow
8552--------
8553Also controls `-Wshadow-field-in-constructor-modified`_.
8554
8555**Diagnostic text:**
8556
8557+--------------------------------------------------------------------+-------------------------------------------------------------+
8558|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
8559| ||:diagtext:`local variable` ||
8560| |+-----------------------------------------------------------+|
8561| ||+-----------------------------------------------+ ||
8562| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
8563| ||+-----------------------------------------------+ ||
8564| |+-----------------------------------------------------------+|
8565| ||+---------------------------------------------------------+||
8566| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
8567| ||+---------------------------------------------------------+||
8568| |+-----------------------------------------------------------+|
8569| ||+--------------------------------------------+ ||
8570| |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
8571| ||+--------------------------------------------+ ||
8572| |+-----------------------------------------------------------+|
8573+--------------------------------------------------------------------+-------------------------------------------------------------+
8574
8575
8576-Wshadow-all
8577------------
8578Controls `-Wshadow`_, `-Wshadow-field-in-constructor`_.
8579
8580
8581-Wshadow-field-in-constructor
8582-----------------------------
8583Also controls `-Wshadow-field-in-constructor-modified`_.
8584
8585**Diagnostic text:**
8586
8587+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8588|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
8589+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8590
8591
8592-Wshadow-field-in-constructor-modified
8593--------------------------------------
8594**Diagnostic text:**
8595
8596+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8597|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
8598+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8599
8600
8601-Wshadow-ivar
8602-------------
8603This diagnostic is enabled by default.
8604
8605**Diagnostic text:**
8606
8607+------------------------------------------------------------------------------------------------------------------------------+
8608|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
8609+------------------------------------------------------------------------------------------------------------------------------+
8610
8611
8612-Wshift-count-negative
8613----------------------
8614This diagnostic is enabled by default.
8615
8616**Diagnostic text:**
8617
8618+--------------------------------------------------------------+
8619|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
8620+--------------------------------------------------------------+
8621
8622
8623-Wshift-count-overflow
8624----------------------
8625This diagnostic is enabled by default.
8626
8627**Diagnostic text:**
8628
8629+-------------------------------------------------------------------+
8630|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
8631+-------------------------------------------------------------------+
8632
8633
8634-Wshift-negative-value
8635----------------------
8636This diagnostic is enabled by default.
8637
8638**Diagnostic text:**
8639
8640+------------------------------------------------------------------------------------+
8641|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
8642+------------------------------------------------------------------------------------+
8643
8644
8645-Wshift-op-parentheses
8646----------------------
8647This diagnostic is enabled by default.
8648
8649**Diagnostic text:**
8650
8651+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8652|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
8653+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8654
8655
8656-Wshift-overflow
8657----------------
8658This diagnostic is enabled by default.
8659
8660**Diagnostic text:**
8661
8662+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8663|: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`|
8664+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8665
8666
8667-Wshift-sign-overflow
8668---------------------
8669**Diagnostic text:**
8670
8671+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8672|: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`|
8673+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8674
8675
8676-Wshorten-64-to-32
8677------------------
8678**Diagnostic text:**
8679
8680+---------------------------------------------------------------------------------------------------------------------------------------------------------+
8681|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
8682+---------------------------------------------------------------------------------------------------------------------------------------------------------+
8683
8684
8685-Wsign-compare
8686--------------
8687**Diagnostic text:**
8688
8689+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8690|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
8691+--------------------------------------------------------------------------------------------------------------------------------------------------------+
8692
8693
8694-Wsign-conversion
8695-----------------
8696**Diagnostic text:**
8697
8698+----------------------------------------------------------------------------------------------------------------------------------------------------+
8699|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
8700+----------------------------------------------------------------------------------------------------------------------------------------------------+
8701
8702+---------------------------------------------------------------------------------------------------------------------------------------------+
8703|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
8704+---------------------------------------------------------------------------------------------------------------------------------------------+
8705
8706
8707-Wsign-promo
8708------------
8709This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8710
8711-Wsizeof-array-argument
8712-----------------------
8713This diagnostic is enabled by default.
8714
8715**Diagnostic text:**
8716
8717+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8718|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
8719+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8720
8721
8722-Wsizeof-array-decay
8723--------------------
8724This diagnostic is enabled by default.
8725
8726**Diagnostic text:**
8727
8728+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8729|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
8730+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8731
8732
8733-Wsizeof-pointer-memaccess
8734--------------------------
8735This diagnostic is enabled by default.
8736
8737**Diagnostic text:**
8738
8739+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8740|: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`|
8741+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8742
8743+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
8744|: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`|
8745| ||:diagtext:`destination`|| |
8746| |+-----------------------+| |
8747| ||:diagtext:`source` || |
8748| |+-----------------------+| |
8749+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
8750
8751
8752-Wsometimes-uninitialized
8753-------------------------
8754**Diagnostic text:**
8755
8756+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
8757|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
8758| ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ ||
8759| |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| ||
8760| ||:diagtext:`captured`|| ||| ||:diagtext:`true` || ||
8761| |+--------------------+| ||| |+-----------------+| ||
8762| | | ||| ||:diagtext:`false`|| ||
8763| | | ||| |+-----------------+| ||
8764| | | ||+---------------------------------------------------------------+-------------------+ ||
8765| | | |+------------------------------------------------------------------------------------------------------------+|
8766| | | ||+-------------------------------------------------------+--------------------------------------------------+||
8767| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
8768| | | ||| ||:diagtext:`is entered` ||||
8769| | | ||| |+------------------------------------------------+|||
8770| | | ||| ||:diagtext:`exits because its condition is false`||||
8771| | | ||| |+------------------------------------------------+|||
8772| | | ||+-------------------------------------------------------+--------------------------------------------------+||
8773| | | |+------------------------------------------------------------------------------------------------------------+|
8774| | | ||+-------------------------------------------------------+--------------------------------------------------+||
8775| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
8776| | | ||| ||:diagtext:`condition is true` ||||
8777| | | ||| |+------------------------------------------------+|||
8778| | | ||| ||:diagtext:`exits because its condition is false`||||
8779| | | ||| |+------------------------------------------------+|||
8780| | | ||+-------------------------------------------------------+--------------------------------------------------+||
8781| | | |+------------------------------------------------------------------------------------------------------------+|
8782| | | ||+----------------------------------------------------------------------+ ||
8783| | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| ||
8784| | | ||+----------------------------------------------------------------------+ ||
8785| | | |+------------------------------------------------------------------------------------------------------------+|
8786| | | ||:diagtext:`its declaration is reached` ||
8787| | | |+------------------------------------------------------------------------------------------------------------+|
8788| | | ||+---------------------------------------------+ ||
8789| | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| ||
8790| | | ||+---------------------------------------------+ ||
8791| | | |+------------------------------------------------------------------------------------------------------------+|
8792+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
8793
8794
8795-Wsource-uses-openmp
8796--------------------
8797Some of the diagnostics controlled by this flag are enabled by default.
8798
8799**Diagnostic text:**
8800
8801+------------------------------------------------------------------------------------------------------------------------------+
8802|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
8803+------------------------------------------------------------------------------------------------------------------------------+
8804
8805+------------------------------------------------------------------------------+
8806|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
8807+------------------------------------------------------------------------------+
8808
8809
8810-Wspir-compat
8811-------------
8812**Diagnostic text:**
8813
8814+----------------------------------------------------------------------------------------------------------------------+
8815|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
8816+----------------------------------------------------------------------------------------------------------------------+
8817
8818
8819-Wstack-protector
8820-----------------
8821This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8822
8823-Wstatic-float-init
8824-------------------
8825This diagnostic is enabled by default.
8826
8827Also controls `-Wgnu-static-float-init`_.
8828
8829**Diagnostic text:**
8830
8831+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8832|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
8833+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8834
8835
8836-Wstatic-in-inline
8837------------------
8838Some of the diagnostics controlled by this flag are enabled by default.
8839
8840**Diagnostic text:**
8841
8842+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8843|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
8844| ||:diagtext:`function`|| |
8845| |+--------------------+| |
8846| ||:diagtext:`variable`|| |
8847| |+--------------------+| |
8848+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8849
8850+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8851|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
8852| ||:diagtext:`function`|| |
8853| |+--------------------+| |
8854| ||:diagtext:`variable`|| |
8855| |+--------------------+| |
8856+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8857
8858
8859-Wstatic-inline-explicit-instantiation
8860--------------------------------------
8861This diagnostic is enabled by default.
8862
8863**Diagnostic text:**
8864
8865+-------------------------------------------------+--------------------+--------------------------------------------------------+
8866|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
8867| ||:diagtext:`static`|| |
8868| |+------------------+| |
8869| ||:diagtext:`inline`|| |
8870| |+------------------+| |
8871+-------------------------------------------------+--------------------+--------------------------------------------------------+
8872
8873
8874-Wstatic-local-in-inline
8875------------------------
8876This diagnostic is enabled by default.
8877
8878**Diagnostic text:**
8879
8880+--------------------------------------------------------------------------------------------------------------------------------+
8881|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
8882+--------------------------------------------------------------------------------------------------------------------------------+
8883
8884
8885-Wstatic-self-init
8886------------------
8887This diagnostic is enabled by default.
8888
8889**Diagnostic text:**
8890
8891+----------------------------------------------------------------------------------------------------------------------------------------------------+
8892|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
8893+----------------------------------------------------------------------------------------------------------------------------------------------------+
8894
8895
8896-Wstrict-aliasing
8897-----------------
8898This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8899
8900-Wstrict-aliasing=0
8901-------------------
8902This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8903
8904-Wstrict-aliasing=1
8905-------------------
8906This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8907
8908-Wstrict-aliasing=2
8909-------------------
8910This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8911
8912-Wstrict-overflow
8913-----------------
8914This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8915
8916-Wstrict-overflow=0
8917-------------------
8918This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8919
8920-Wstrict-overflow=1
8921-------------------
8922This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8923
8924-Wstrict-overflow=2
8925-------------------
8926This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8927
8928-Wstrict-overflow=3
8929-------------------
8930This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8931
8932-Wstrict-overflow=4
8933-------------------
8934This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8935
8936-Wstrict-overflow=5
8937-------------------
8938This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8939
8940-Wstrict-prototypes
8941-------------------
8942This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8943
8944-Wstrict-selector-match
8945-----------------------
8946**Diagnostic text:**
8947
8948+--------------------------------------------------------------------------------------------------------------+
8949|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
8950+--------------------------------------------------------------------------------------------------------------+
8951
8952
8953-Wstring-compare
8954----------------
8955This diagnostic is enabled by default.
8956
8957**Diagnostic text:**
8958
8959+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
8960|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
8961| ||:diagtext:`a string literal`|| |
8962| |+----------------------------+| |
8963| ||:diagtext:`@encode` || |
8964| |+----------------------------+| |
8965+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
8966
8967
8968-Wstring-conversion
8969-------------------
8970**Diagnostic text:**
8971
8972+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8973|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
8974+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8975
8976
8977-Wstring-plus-char
8978------------------
8979This diagnostic is enabled by default.
8980
8981**Diagnostic text:**
8982
8983+------------------------------------------------------------------------------------------------------------------------------------------+
8984|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
8985+------------------------------------------------------------------------------------------------------------------------------------------+
8986
8987
8988-Wstring-plus-int
8989-----------------
8990This diagnostic is enabled by default.
8991
8992**Diagnostic text:**
8993
8994+----------------------------------------------------------------------------------------------------------------------------------+
8995|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
8996+----------------------------------------------------------------------------------------------------------------------------------+
8997
8998
8999-Wstrlcpy-strlcat-size
9000----------------------
9001This diagnostic is enabled by default.
9002
9003**Diagnostic text:**
9004
9005+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9006|: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`|
9007+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9008
9009
9010-Wstrncat-size
9011--------------
9012This diagnostic is enabled by default.
9013
9014**Diagnostic text:**
9015
9016+--------------------------------------------------------------------------------------------------------------------------------+
9017|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
9018+--------------------------------------------------------------------------------------------------------------------------------+
9019
9020+-------------------------------------------------------------------------------------------------------+
9021|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
9022+-------------------------------------------------------------------------------------------------------+
9023
9024+-------------------------------------------------------------------------------------------+
9025|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
9026+-------------------------------------------------------------------------------------------+
9027
9028
9029-Wsuper-class-method-mismatch
9030-----------------------------
9031**Diagnostic text:**
9032
9033+--------------------------------------------------------------------------------------------------------------------------------+
9034|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
9035+--------------------------------------------------------------------------------------------------------------------------------+
9036
9037
9038-Wswitch
9039--------
9040This diagnostic is enabled by default.
9041
9042**Diagnostic text:**
9043
9044+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9045|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
9046+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9047
9048+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9049|:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9050| ||+-----------------------------------------------------------------------------------------------+ ||
9051| |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
9052| ||+-----------------------------------------------------------------------------------------------+ ||
9053| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9054| ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
9055| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
9056| ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
9057| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9058| ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9059| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
9060| ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9061| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9062| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9063| |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9064| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9065| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9066+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9067
9068+------------------------------------------------------------------------------------------------+
9069|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
9070+------------------------------------------------------------------------------------------------+
9071
9072
9073-Wswitch-bool
9074-------------
9075This diagnostic is enabled by default.
9076
9077**Diagnostic text:**
9078
9079+-------------------------------------------------------------------------+
9080|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
9081+-------------------------------------------------------------------------+
9082
9083
9084-Wswitch-default
9085----------------
9086This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9087
9088-Wswitch-enum
9089-------------
9090**Diagnostic text:**
9091
9092+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9093|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9094| ||+----------------------------------------------------------------------------------------------------------+ ||
9095| |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9096| ||+----------------------------------------------------------------------------------------------------------+ ||
9097| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9098| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9099| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9100| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9101| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9102| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9103| |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9104| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9105| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9106| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9107| |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9108| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9109| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9110+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9111
9112
9113-Wsync-fetch-and-nand-semantics-changed
9114---------------------------------------
9115This diagnostic is enabled by default.
9116
9117**Diagnostic text:**
9118
9119+-------------------------------------------------------------------------------------------------------------------------------------------+
9120|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
9121+-------------------------------------------------------------------------------------------------------------------------------------------+
9122
9123
9124-Wsynth
9125-------
9126This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9127
9128-Wtautological-compare
9129----------------------
9130Some of the diagnostics controlled by this flag are enabled by default.
9131
9132Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-undefined-compare`_.
9133
9134**Diagnostic text:**
9135
9136+---------------------------+---------------------------+--------------------------------------------------+------------------------+
9137|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
9138| ||:diagtext:`self-` || ||:diagtext:`false` ||
9139| |+-------------------------+| |+----------------------+|
9140| ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
9141| |+-------------------------+| |+----------------------+|
9142| | | ||:diagtext:`a constant`||
9143| | | |+----------------------+|
9144+---------------------------+---------------------------+--------------------------------------------------+------------------------+
9145
9146+-------------------------------------------------------------------------------------+-------------------+
9147|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
9148| ||:diagtext:`false`||
9149| |+-----------------+|
9150| ||:diagtext:`true` ||
9151| |+-----------------+|
9152+-------------------------------------------------------------------------------------+-------------------+
9153
9154+-------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------------------------------------------+
9155|:warning:`warning:` |nbsp| :diagtext:`comparison of unsigned`|+------------------------+| |nbsp| :diagtext:`expression` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always` |nbsp| :placeholder:`B`|
9156| || || |
9157| |+------------------------+| |
9158| || |nbsp| :diagtext:`enum`|| |
9159| |+------------------------+| |
9160+-------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------------------------------------------+
9161
9162+--------------------------------------------------------------------------------------------------------+--------------------------+----------------------------------------------------------------+
9163|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`unsigned`|+------------------------+| |nbsp| :diagtext:`expression is always` |nbsp| :placeholder:`B`|
9164| || || |
9165| |+------------------------+| |
9166| || |nbsp| :diagtext:`enum`|| |
9167| |+------------------------+| |
9168+--------------------------------------------------------------------------------------------------------+--------------------------+----------------------------------------------------------------+
9169
9170
9171-Wtautological-constant-out-of-range-compare
9172--------------------------------------------
9173This diagnostic is enabled by default.
9174
9175**Diagnostic text:**
9176
9177+------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
9178|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
9179| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`||
9180| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+|
9181| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` ||
9182| |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+|
9183| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | |
9184| |+----------------------------------------------+| |+--------------------------------------------------------+| | |
9185| ||:diagtext:`false` || | | | |
9186| |+----------------------------------------------+| | | | |
9187+------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
9188
9189
9190-Wtautological-overlap-compare
9191------------------------------
9192**Diagnostic text:**
9193
9194+-----------------------------------------------------------------------------------------+-------------------+
9195|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
9196| ||:diagtext:`false`||
9197| |+-----------------+|
9198| ||:diagtext:`true` ||
9199| |+-----------------+|
9200+-----------------------------------------------------------------------------------------+-------------------+
9201
9202
9203-Wtautological-pointer-compare
9204------------------------------
9205This diagnostic is enabled by default.
9206
9207**Diagnostic text:**
9208
9209+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
9210|: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`|
9211| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
9212| |+-------------------------+| |+-----------------------+| |+-----------------+| |
9213| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
9214| |+-------------------------+| |+-----------------------+| |+-----------------+| |
9215+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
9216
9217+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
9218|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
9219| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
9220| |+----------------------+| |+-----------------------+| |+-----------------+|
9221| ||:diagtext:`function` || || || ||:diagtext:`false`||
9222| |+----------------------+| |+-----------------------+| |+-----------------+|
9223| ||:diagtext:`array` || | | | |
9224| |+----------------------+| | | | |
9225+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
9226
9227
9228-Wtautological-undefined-compare
9229--------------------------------
9230This diagnostic is enabled by default.
9231
9232**Diagnostic text:**
9233
9234+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
9235|: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| |+-----------------+|
9236| ||:diagtext:`true` ||
9237| |+-----------------+|
9238| ||:diagtext:`false`||
9239| |+-----------------+|
9240+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
9241
9242+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
9243|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
9244| ||:diagtext:`true` ||
9245| |+-----------------+|
9246| ||:diagtext:`false`||
9247| |+-----------------+|
9248+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
9249
9250
9251-Wtentative-definition-incomplete-type
9252--------------------------------------
9253This diagnostic is enabled by default.
9254
9255**Diagnostic text:**
9256
9257+---------------------------------------------------------------------------------------------------------------------------------------------------+
9258|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
9259+---------------------------------------------------------------------------------------------------------------------------------------------------+
9260
9261
9262-Wthread-safety
9263---------------
9264Controls `-Wthread-safety-attributes`_, `-Wthread-safety-analysis`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
9265
9266
9267-Wthread-safety-analysis
9268------------------------
9269**Diagnostic text:**
9270
9271+----------------------------------------------------------------------------------------------------------------------------------------------------+
9272|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
9273+----------------------------------------------------------------------------------------------------------------------------------------------------+
9274
9275+---------------------------------------------------------------------------------------------------------------------------------+
9276|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
9277+---------------------------------------------------------------------------------------------------------------------------------+
9278
9279+---------------------------------------------------------------------+
9280|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
9281+---------------------------------------------------------------------+
9282
9283+-----------------------------------------------------------------------------------------------------------------------------------------------+
9284|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
9285+-----------------------------------------------------------------------------------------------------------------------------------------------+
9286
9287+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9288|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
9289+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
9290
9291+------------------------------------------------------------------------------------------------------------------------------------------------------------+
9292|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
9293+------------------------------------------------------------------------------------------------------------------------------------------------------------+
9294
9295+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9296|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
9297+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9298
9299+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9300|:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9301| ||+------------------------------------------+ ||
9302| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9303| ||+------------------------------------------+ ||
9304| |+--------------------------------------------------------+|
9305| ||+------------------------------------------------------+||
9306| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9307| ||+------------------------------------------------------+||
9308| |+--------------------------------------------------------+|
9309+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9310
9311+--------------------------------------------------------------------------------------------------------------------------------------------------+
9312|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
9313+--------------------------------------------------------------------------------------------------------------------------------------------------+
9314
9315+------------------------------------------------------------------------------------------------------------------------------------+
9316|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
9317+------------------------------------------------------------------------------------------------------------------------------------+
9318
9319+----------------------------------------------------------------------------------------------------------------------------------+
9320|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
9321+----------------------------------------------------------------------------------------------------------------------------------+
9322
9323+--------------------------------------------------------------------------------------------------------------------------------------------+
9324|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
9325+--------------------------------------------------------------------------------------------------------------------------------------------+
9326
9327+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
9328|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
9329| ||:diagtext:`shared` || ||:diagtext:`shared` || |
9330| |+---------------------+| |+---------------------+| |
9331| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
9332| |+---------------------+| |+---------------------+| |
9333+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
9334
9335+---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
9336|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
9337| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
9338| |+-------------------+| |+---------------------------------+|
9339| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
9340| |+-------------------+| |+---------------------------------+|
9341+---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
9342
9343+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9344|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9345| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
9346| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9347| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
9348| |+-------------------+| |+--------------------------------------------------------+|
9349| | | ||+------------------------------------------------------+||
9350| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9351| | | ||+------------------------------------------------------+||
9352| | | |+--------------------------------------------------------+|
9353+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9354
9355+---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
9356|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
9357| ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
9358| |+-------------------+| |+---------------------------------+|
9359| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
9360| |+-------------------+| |+---------------------------------+|
9361+---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
9362
9363+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9364|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9365| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
9366| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9367| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
9368| |+-------------------+| |+--------------------------------------------------------+|
9369| | | ||+------------------------------------------------------+||
9370| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9371| | | ||+------------------------------------------------------+||
9372| | | |+--------------------------------------------------------+|
9373+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9374
9375
9376-Wthread-safety-attributes
9377--------------------------
9378**Diagnostic text:**
9379
9380+----------------------------------------------------------------------------------------------------------------------------------------+
9381|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
9382+----------------------------------------------------------------------------------------------------------------------------------------+
9383
9384+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9385|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
9386+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9387
9388+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9389|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
9390+--------------------------------------------------------------------------------------------------------------------------------------------------------+
9391
9392+----------------------------------------------------------------------------------------------------------------------------------+
9393|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
9394+----------------------------------------------------------------------------------------------------------------------------------+
9395
9396+------------------------------------------------------------------------------------------------------------------------------------+
9397|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
9398+------------------------------------------------------------------------------------------------------------------------------------+
9399
9400
9401-Wthread-safety-beta
9402--------------------
9403**Diagnostic text:**
9404
9405+------------------------------------------------------------------+
9406|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
9407+------------------------------------------------------------------+
9408
9409
9410-Wthread-safety-negative
9411------------------------
9412**Diagnostic text:**
9413
9414+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9415|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
9416+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9417
9418
9419-Wthread-safety-precise
9420-----------------------
9421**Diagnostic text:**
9422
9423+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9424|:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9425| ||+------------------------------------------+ ||
9426| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9427| ||+------------------------------------------+ ||
9428| |+--------------------------------------------------------+|
9429| ||+------------------------------------------------------+||
9430| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9431| ||+------------------------------------------------------+||
9432| |+--------------------------------------------------------+|
9433+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9434
9435+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9436|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9437| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
9438| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9439| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
9440| |+-------------------+| |+--------------------------------------------------------+|
9441| | | ||+------------------------------------------------------+||
9442| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9443| | | ||+------------------------------------------------------+||
9444| | | |+--------------------------------------------------------+|
9445+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9446
9447+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9448|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9449| ||:diagtext:`reading`|| ||+------------------------------------------+ ||
9450| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9451| ||:diagtext:`writing`|| ||+------------------------------------------+ ||
9452| |+-------------------+| |+--------------------------------------------------------+|
9453| | | ||+------------------------------------------------------+||
9454| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9455| | | ||+------------------------------------------------------+||
9456| | | |+--------------------------------------------------------+|
9457+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9458
9459
9460-Wthread-safety-reference
9461-------------------------
9462**Diagnostic text:**
9463
9464+----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9465|:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9466| ||+------------------------------------------+ ||
9467| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9468| ||+------------------------------------------+ ||
9469| |+--------------------------------------------------------+|
9470| ||+------------------------------------------------------+||
9471| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9472| ||+------------------------------------------------------+||
9473| |+--------------------------------------------------------+|
9474+----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9475
9476+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9477|:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
9478| ||+------------------------------------------+ ||
9479| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
9480| ||+------------------------------------------+ ||
9481| |+--------------------------------------------------------+|
9482| ||+------------------------------------------------------+||
9483| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
9484| ||+------------------------------------------------------+||
9485| |+--------------------------------------------------------+|
9486+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
9487
9488
9489-Wthread-safety-verbose
9490-----------------------
9491**Diagnostic text:**
9492
9493+---------------------------------------------------------------------+
9494|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
9495+---------------------------------------------------------------------+
9496
9497
9498-Wtrigraphs
9499-----------
9500This diagnostic is enabled by default.
9501
9502**Diagnostic text:**
9503
9504+-----------------------------------------------------------------------------------------------------+
9505|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
9506+-----------------------------------------------------------------------------------------------------+
9507
9508+------------------------------------------------------------------+
9509|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
9510+------------------------------------------------------------------+
9511
9512+-------------------------------------------------------+
9513|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
9514+-------------------------------------------------------+
9515
9516+-------------------------------------------------------------------------------+
9517|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
9518+-------------------------------------------------------------------------------+
9519
9520
9521-Wtype-limits
9522-------------
9523This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9524
9525-Wtype-safety
9526-------------
9527This diagnostic is enabled by default.
9528
9529**Diagnostic text:**
9530
9531+----------------------------------------------------------------------------------------------------------------------------+
9532|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
9533+----------------------------------------------------------------------------------------------------------------------------+
9534
9535+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
9536|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
9537| ||+-------------------------------------------------+||
9538| |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
9539| ||+-------------------------------------------------+||
9540| |+---------------------------------------------------+|
9541| || ||
9542| |+---------------------------------------------------+|
9543+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
9544
9545+---------------------------------------------------------------------------------------------------+
9546|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
9547+---------------------------------------------------------------------------------------------------+
9548
9549
9550-Wtypedef-redefinition
9551----------------------
9552This diagnostic is enabled by default.
9553
9554**Diagnostic text:**
9555
9556+--------------------------------------------------------------------------------------------------------------------------+
9557|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
9558+--------------------------------------------------------------------------------------------------------------------------+
9559
9560
9561-Wtypename-missing
9562------------------
9563This diagnostic is enabled by default.
9564
9565**Diagnostic text:**
9566
9567+-------------------------------------------------------------------------------------------------------------------------------------+
9568|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
9569+-------------------------------------------------------------------------------------------------------------------------------------+
9570
9571
9572-Wunavailable-declarations
9573--------------------------
9574This diagnostic is enabled by default.
9575
9576**Diagnostic text:**
9577
9578+----------------------------------------------------------------------------------------------------------------------+
9579|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
9580+----------------------------------------------------------------------------------------------------------------------+
9581
9582
9583-Wundeclared-selector
9584---------------------
9585**Diagnostic text:**
9586
9587+----------------------------------------------------------------------------------+
9588|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
9589+----------------------------------------------------------------------------------+
9590
9591+-------------------------------------------------------------------------------------------------------------------------------------------------+
9592|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
9593+-------------------------------------------------------------------------------------------------------------------------------------------------+
9594
9595
9596-Wundef
9597-------
9598**Diagnostic text:**
9599
9600+---------------------------------------------------------------------------------------------+
9601|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
9602+---------------------------------------------------------------------------------------------+
9603
9604
9605-Wundefined-bool-conversion
9606---------------------------
9607This diagnostic is enabled by default.
9608
9609**Diagnostic text:**
9610
9611+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9612|: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`|
9613+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9614
9615+-----------------------------------------------------------------------------------------------------------------------------------------------+
9616|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
9617+-----------------------------------------------------------------------------------------------------------------------------------------------+
9618
9619
9620-Wundefined-func-template
9621-------------------------
9622**Diagnostic text:**
9623
9624+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9625|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
9626+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9627
9628
9629-Wundefined-inline
9630------------------
9631This diagnostic is enabled by default.
9632
9633**Diagnostic text:**
9634
9635+----------------------------------------------------------------------------------------------------------------+
9636|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
9637+----------------------------------------------------------------------------------------------------------------+
9638
9639
9640-Wundefined-internal
9641--------------------
9642This diagnostic is enabled by default.
9643
9644**Diagnostic text:**
9645
9646+---------------------------+----------------------+-----------------------------------------------------------------------------------+
9647|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
9648| ||:diagtext:`function`|| |
9649| |+--------------------+| |
9650| ||:diagtext:`variable`|| |
9651| |+--------------------+| |
9652+---------------------------+----------------------+-----------------------------------------------------------------------------------+
9653
9654
9655-Wundefined-reinterpret-cast
9656----------------------------
9657**Diagnostic text:**
9658
9659+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9660|: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`|
9661+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9662
9663+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9664|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
9665+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9666
9667
9668-Wundefined-var-template
9669------------------------
9670This diagnostic is enabled by default.
9671
9672**Diagnostic text:**
9673
9674+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9675|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
9676+---------------------------------------------------------------------------------------------------------------------------------------------------------+
9677
9678
9679-Wunevaluated-expression
9680------------------------
9681This diagnostic is enabled by default.
9682
9683Also controls `-Wpotentially-evaluated-expression`_.
9684
9685**Diagnostic text:**
9686
9687+-----------------------------------------------------------------------------------------------------------+
9688|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
9689+-----------------------------------------------------------------------------------------------------------+
9690
9691
9692-Wunguarded-availability
9693------------------------
9694**Diagnostic text:**
9695
9696+----------------------------------------------------------------------------------------------+
9697|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available conditionally`|
9698+----------------------------------------------------------------------------------------------+
9699
9700+------------------------------------------------------------------------------------------------------------------+
9701|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be partial because the receiver type is unknown`|
9702+------------------------------------------------------------------------------------------------------------------+
9703
9704+--------------------------------------------------------------------------------------------------+
9705|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is partial:` |nbsp| :placeholder:`B`|
9706+--------------------------------------------------------------------------------------------------+
9707
9708+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9709|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
9710+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9711
9712
9713-Wunicode
9714---------
9715This diagnostic is enabled by default.
9716
9717**Diagnostic text:**
9718
9719+-------------------------------------------------------------------------------------------------------------------+
9720|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
9721+-------------------------------------------------------------------------------------------------------------------+
9722
9723+-------------------------------------------------------------------------------------------------------------------------------------------------------+
9724|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
9725+-------------------------------------------------------------------------------------------------------------------------------------------------------+
9726
9727+-----------------------------------------------------------------------------------------------+
9728|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
9729+-----------------------------------------------------------------------------------------------+
9730
9731+--------------------------------------------------------------------------------------------------------------------------------------+
9732|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
9733+--------------------------------------------------------------------------------------------------------------------------------------+
9734
9735+---------------------------------------------------------------------------------------------+
9736|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
9737+---------------------------------------------------------------------------------------------+
9738
9739
9740-Wunicode-whitespace
9741--------------------
9742This diagnostic is enabled by default.
9743
9744**Diagnostic text:**
9745
9746+-------------------------------------------------------------------------------+
9747|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
9748+-------------------------------------------------------------------------------+
9749
9750
9751-Wuninitialized
9752---------------
9753Some of the diagnostics controlled by this flag are enabled by default.
9754
9755Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
9756
9757**Diagnostic text:**
9758
9759+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
9760|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
9761+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
9762
9763+-----------------------------------------------------------------------------------------------------------------------+
9764|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
9765+-----------------------------------------------------------------------------------------------------------------------+
9766
9767+--------------------------------------------------------------------------------------------------------------------------------------+
9768|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
9769+--------------------------------------------------------------------------------------------------------------------------------------+
9770
9771+------------------------------------------------------------------------------------------------------------------------------------------------+
9772|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
9773+------------------------------------------------------------------------------------------------------------------------------------------------+
9774
9775+---------------------------------------------------------------------------------------------------------------------------------------------------+
9776|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
9777+---------------------------------------------------------------------------------------------------------------------------------------------------+
9778
9779+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9780|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
9781+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
9782
9783+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
9784|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
9785| ||:diagtext:`used here` ||
9786| |+-----------------------------+|
9787| ||:diagtext:`captured by block`||
9788| |+-----------------------------+|
9789+------------------------------------------------------------------------------------------------------------------------+-------------------------------+
9790
9791
9792-Wunknown-argument
9793------------------
9794This diagnostic is enabled by default.
9795
9796**Diagnostic text:**
9797
9798+-----------------------------------------------------------------------------------------------------------+
9799|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
9800+-----------------------------------------------------------------------------------------------------------+
9801
9802
9803-Wunknown-attributes
9804--------------------
9805This diagnostic is enabled by default.
9806
9807**Diagnostic text:**
9808
9809+-----------------------------------------------------------------------------------------------------------+
9810|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
9811+-----------------------------------------------------------------------------------------------------------+
9812
9813
9814-Wunknown-escape-sequence
9815-------------------------
9816This diagnostic is enabled by default.
9817
9818**Diagnostic text:**
9819
9820+-----------------------------------------------------------------------------------------------+
9821|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
9822+-----------------------------------------------------------------------------------------------+
9823
9824
9825-Wunknown-pragmas
9826-----------------
9827Some of the diagnostics controlled by this flag are enabled by default.
9828
9829**Diagnostic text:**
9830
9831+------------------------------------------------------------------------------------+
9832|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
9833+------------------------------------------------------------------------------------+
9834
9835+--------------------------------------------------------------------------+
9836|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
9837+--------------------------------------------------------------------------+
9838
9839+-----------------------------------------------------------------------+
9840|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
9841+-----------------------------------------------------------------------+
9842
9843+--------------------------------------------------------------------------------------------+
9844|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
9845+--------------------------------------------------------------------------------------------+
9846
9847+--------------------------------------------------------------------------------------------------------------------------+
9848|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
9849+--------------------------------------------------------------------------------------------------------------------------+
9850
9851+----------------------------------------------------------------------------------------------+
9852|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
9853+----------------------------------------------------------------------------------------------+
9854
9855+----------------------------------------------------------------------------+
9856|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
9857+----------------------------------------------------------------------------+
9858
9859+----------------------------------------------------------------------------------------------------+
9860|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
9861+----------------------------------------------------------------------------------------------------+
9862
9863+-------------------------------------------------------------+
9864|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
9865+-------------------------------------------------------------+
9866
9867+----------------------------------------------------------------------------------------------------+
9868|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
9869+----------------------------------------------------------------------------------------------------+
9870
9871+--------------------------------------------------------------------------------------+
9872|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
9873+--------------------------------------------------------------------------------------+
9874
9875+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9876|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
9877+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9878
9879+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9880|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
9881+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9882
9883+----------------------------------------------------------------------------------------------+
9884|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
9885+----------------------------------------------------------------------------------------------+
9886
9887+--------------------------------------------------------------------------------+
9888|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
9889+--------------------------------------------------------------------------------+
9890
9891+----------------------------------------------------------------------------------------------------+
9892|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
9893+----------------------------------------------------------------------------------------------------+
9894
9895+-----------------------------------------------------------------------------------------------------------------------------------------------+
9896|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
9897+-----------------------------------------------------------------------------------------------------------------------------------------------+
9898
9899+----------------------------------------------------------------------------------------------------+
9900|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
9901+----------------------------------------------------------------------------------------------------+
9902
9903
9904-Wunknown-sanitizers
9905--------------------
9906This diagnostic is enabled by default.
9907
9908**Diagnostic text:**
9909
9910+-----------------------------------------------------------------------------------------------+
9911|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
9912+-----------------------------------------------------------------------------------------------+
9913
9914
9915-Wunknown-warning-option
9916------------------------
9917This diagnostic is enabled by default.
9918
9919**Diagnostic text:**
9920
9921+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
9922|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
9923| ||:diagtext:`warning`|| || ||
9924| |+-------------------+| |+------------------------------------------------------------+|
9925| ||:diagtext:`remark` || ||+----------------------------------------------------------+||
9926| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
9927| | | ||+----------------------------------------------------------+||
9928| | | |+------------------------------------------------------------+|
9929+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
9930
9931+-------------------------------------------------------------------------------------------------------------------------------------------+
9932|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
9933+-------------------------------------------------------------------------------------------------------------------------------------------+
9934
9935
9936-Wunnamed-type-template-args
9937----------------------------
9938Some of the diagnostics controlled by this flag are enabled by default.
9939
9940Also controls `-Wc++98-compat-unnamed-type-template-args`_.
9941
9942**Diagnostic text:**
9943
9944+--------------------------------------------------------------------------+
9945|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
9946+--------------------------------------------------------------------------+
9947
9948
9949-Wunneeded-internal-declaration
9950-------------------------------
9951**Diagnostic text:**
9952
9953+---------------------------+----------------------+---------------------------------------------------------------------------------+
9954|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
9955| ||:diagtext:`function`|| |
9956| |+--------------------+| |
9957| ||:diagtext:`variable`|| |
9958| |+--------------------+| |
9959+---------------------------+----------------------+---------------------------------------------------------------------------------+
9960
9961+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
9962|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
9963+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
9964
9965
9966-Wunneeded-member-function
9967--------------------------
9968**Diagnostic text:**
9969
9970+---------------------------------------------------------------------------------------------------------------------------------------+
9971|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
9972+---------------------------------------------------------------------------------------------------------------------------------------+
9973
9974
9975-Wunreachable-code
9976------------------
9977Also controls `-Wunreachable-code-loop-increment`_.
9978
9979**Diagnostic text:**
9980
9981+------------------------------------------------------------------+
9982|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
9983+------------------------------------------------------------------+
9984
9985
9986-Wunreachable-code-aggressive
9987-----------------------------
9988Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
9989
9990
9991-Wunreachable-code-break
9992------------------------
9993**Diagnostic text:**
9994
9995+---------------------------------------------------------------------+
9996|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
9997+---------------------------------------------------------------------+
9998
9999
10000-Wunreachable-code-loop-increment
10001---------------------------------
10002**Diagnostic text:**
10003
10004+-------------------------------------------------------------------------------------------------+
10005|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
10006+-------------------------------------------------------------------------------------------------+
10007
10008
10009-Wunreachable-code-return
10010-------------------------
10011**Diagnostic text:**
10012
10013+----------------------------------------------------------------------+
10014|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
10015+----------------------------------------------------------------------+
10016
10017
10018-Wunsequenced
10019-------------
10020This diagnostic is enabled by default.
10021
10022**Diagnostic text:**
10023
10024+----------------------------------------------------------------------------------------------------+
10025|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
10026+----------------------------------------------------------------------------------------------------+
10027
10028+-----------------------------------------------------------------------------------------------------+
10029|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
10030+-----------------------------------------------------------------------------------------------------+
10031
10032
10033-Wunsupported-cb
10034----------------
10035This diagnostic is enabled by default.
10036
10037**Diagnostic text:**
10038
10039+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10040|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10041+--------------------------------------------------------------------------------------------------------------------------------------------------------+
10042
10043
10044-Wunsupported-dll-base-class-template
10045-------------------------------------
10046**Diagnostic text:**
10047
10048+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
10049|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
10050| ||:diagtext:`already instantiated` || |
10051| |+----------------------------------+| |
10052| ||:diagtext:`explicitly specialized`|| |
10053| |+----------------------------------+| |
10054+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
10055
10056
10057-Wunsupported-friend
10058--------------------
10059This diagnostic is enabled by default.
10060
10061**Diagnostic text:**
10062
10063+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10064|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
10065+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10066
10067+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10068|: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`|
10069+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10070
10071
10072-Wunsupported-nan
10073-----------------
10074This diagnostic is enabled by default.
10075
10076**Diagnostic text:**
10077
10078+-----------------------------------------------------------------------------------------------------------------------------------------------+
10079|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10080+-----------------------------------------------------------------------------------------------------------------------------------------------+
10081
10082+-------------------------------------------------------------------------------------------------------------------------------------------------+
10083|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10084+-------------------------------------------------------------------------------------------------------------------------------------------------+
10085
10086
10087-Wunsupported-visibility
10088------------------------
10089This diagnostic is enabled by default.
10090
10091**Diagnostic text:**
10092
10093+------------------------------------------------------------------------------------------------------+
10094|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
10095+------------------------------------------------------------------------------------------------------+
10096
10097
10098-Wunused
10099--------
10100Some of the diagnostics controlled by this flag are enabled by default.
10101
10102Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-private-field`_, `-Wunused-local-typedef`_, `-Wunused-value`_, `-Wunused-variable`_, `-Wunused-property-ivar`_.
10103
10104
10105-Wunused-argument
10106-----------------
10107This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10108
10109-Wunused-command-line-argument
10110------------------------------
10111This diagnostic is enabled by default.
10112
10113**Diagnostic text:**
10114
10115+---------------------------------------------------------------------------------------------------------------+
10116|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
10117+---------------------------------------------------------------------------------------------------------------+
10118
10119+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
10120|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
10121| ||+------------------------------------------------------------------+||
10122| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
10123| ||+------------------------------------------------------------------+||
10124| |+--------------------------------------------------------------------+|
10125| || ||
10126| |+--------------------------------------------------------------------+|
10127+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
10128
10129+----------------------------------------------------------------------------------------------------------------+
10130|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
10131+----------------------------------------------------------------------------------------------------------------+
10132
10133+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
10134|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
10135| ||+-------------------------------------------------------------------------+||
10136| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
10137| ||+-------------------------------------------------------------------------+||
10138| |+---------------------------------------------------------------------------+|
10139| || ||
10140| |+---------------------------------------------------------------------------+|
10141+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
10142
10143+---------------------------------------------------------------------------------------------------------+
10144|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
10145+---------------------------------------------------------------------------------------------------------+
10146
10147
10148-Wunused-comparison
10149-------------------
10150This diagnostic is enabled by default.
10151
10152**Diagnostic text:**
10153
10154+---------------------------+-----------------------------------------+--------------------------------------------+
10155|:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
10156| ||+----------------+--------------------+|| |
10157| |||+--------------+|:diagtext:`equality`||| |
10158| |||| || ||| |
10159| |||+--------------+| ||| |
10160| ||||:diagtext:`in`|| ||| |
10161| |||+--------------+| ||| |
10162| ||+----------------+--------------------+|| |
10163| |+---------------------------------------+| |
10164| ||:diagtext:`relational` || |
10165| |+---------------------------------------+| |
10166+---------------------------+-----------------------------------------+--------------------------------------------+
10167
10168
10169-Wunused-const-variable
10170-----------------------
10171**Diagnostic text:**
10172
10173+------------------------------------------------------------------------------+
10174|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
10175+------------------------------------------------------------------------------+
10176
10177
10178-Wunused-exception-parameter
10179----------------------------
10180**Diagnostic text:**
10181
10182+-----------------------------------------------------------------------------------------+
10183|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
10184+-----------------------------------------------------------------------------------------+
10185
10186
10187-Wunused-function
10188-----------------
10189Also controls `-Wunneeded-internal-declaration`_.
10190
10191**Diagnostic text:**
10192
10193+------------------------------------------------------------------------------+
10194|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
10195+------------------------------------------------------------------------------+
10196
10197
10198-Wunused-getter-return-value
10199----------------------------
10200This diagnostic is enabled by default.
10201
10202**Diagnostic text:**
10203
10204+------------------------------------------------------------------------------------------------------------------+
10205|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
10206+------------------------------------------------------------------------------------------------------------------+
10207
10208
10209-Wunused-label
10210--------------
10211**Diagnostic text:**
10212
10213+---------------------------------------------------------------------------+
10214|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
10215+---------------------------------------------------------------------------+
10216
10217
10218-Wunused-local-typedef
10219----------------------
10220**Diagnostic text:**
10221
10222+-----------------------------------------------------+------------------------+------------------------+
10223|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
10224| ||:diagtext:`typedef` || |
10225| |+----------------------+| |
10226| ||:diagtext:`type alias`|| |
10227| |+----------------------+| |
10228+-----------------------------------------------------+------------------------+------------------------+
10229
10230
10231-Wunused-local-typedefs
10232-----------------------
10233Synonym for `-Wunused-local-typedef`_.
10234
10235
10236-Wunused-macros
10237---------------
10238**Diagnostic text:**
10239
10240+--------------------------------------------------------+
10241|:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
10242+--------------------------------------------------------+
10243
10244
10245-Wunused-member-function
10246------------------------
10247Also controls `-Wunneeded-member-function`_.
10248
10249**Diagnostic text:**
10250
10251+-------------------------------------------------------------------------------------+
10252|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
10253+-------------------------------------------------------------------------------------+
10254
10255
10256-Wunused-parameter
10257------------------
10258**Diagnostic text:**
10259
10260+-------------------------------------------------------------------------------+
10261|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
10262+-------------------------------------------------------------------------------+
10263
10264
10265-Wunused-private-field
10266----------------------
10267**Diagnostic text:**
10268
10269+-----------------------------------------------------------------------------------------------------------+
10270|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
10271+-----------------------------------------------------------------------------------------------------------+
10272
10273
10274-Wunused-property-ivar
10275----------------------
10276**Diagnostic text:**
10277
10278+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
10279|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
10280+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
10281
10282
10283-Wunused-result
10284---------------
10285This diagnostic is enabled by default.
10286
10287**Diagnostic text:**
10288
10289+-------------------------------------------------------------------------------------------------------------------------------------------+
10290|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
10291+-------------------------------------------------------------------------------------------------------------------------------------------+
10292
10293
10294-Wunused-value
10295--------------
10296This diagnostic is enabled by default.
10297
10298Also controls `-Wunused-comparison`_, `-Wunused-result`_, `-Wunevaluated-expression`_.
10299
10300**Diagnostic text:**
10301
10302+-------------------------------------------------------------------------------------------------------------------------------------------+
10303|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
10304+-------------------------------------------------------------------------------------------------------------------------------------------+
10305
10306+----------------------------------------------------------------------------------------------------------------------------+
10307|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
10308+----------------------------------------------------------------------------------------------------------------------------+
10309
10310+---------------------------------------------------------------+
10311|:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
10312+---------------------------------------------------------------+
10313
10314+-----------------------------------------------------------------------------------------------+
10315|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
10316+-----------------------------------------------------------------------------------------------+
10317
10318
10319-Wunused-variable
10320-----------------
10321Also controls `-Wunused-const-variable`_.
10322
10323**Diagnostic text:**
10324
10325+------------------------------------------------------------------------------+
10326|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
10327+------------------------------------------------------------------------------+
10328
10329
10330-Wunused-volatile-lvalue
10331------------------------
10332This diagnostic is enabled by default.
10333
10334**Diagnostic text:**
10335
10336+----------------------------------------------------------------------------------------------------------------+
10337|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
10338+----------------------------------------------------------------------------------------------------------------+
10339
10340
10341-Wused-but-marked-unused
10342------------------------
10343**Diagnostic text:**
10344
10345+---------------------------------------------------------------------------------------------+
10346|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
10347+---------------------------------------------------------------------------------------------+
10348
10349
10350-Wuser-defined-literals
10351-----------------------
10352This diagnostic is enabled by default.
10353
10354**Diagnostic text:**
10355
10356+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
10357|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
10358| ||:diagtext:`; no literal will invoke this operator`||
10359| |+--------------------------------------------------+|
10360| || ||
10361| |+--------------------------------------------------+|
10362+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
10363
10364
10365-Wvarargs
10366---------
10367This diagnostic is enabled by default.
10368
10369**Diagnostic text:**
10370
10371+-----------------------------------------------------------------------------------------------------+
10372|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
10373+-----------------------------------------------------------------------------------------------------+
10374
10375+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10376|: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`|
10377+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10378
10379+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
10380|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
10381| ||:diagtext:`an object that undergoes default argument promotion`|| |
10382| |+---------------------------------------------------------------+| |
10383| ||:diagtext:`an object of reference type` || |
10384| |+---------------------------------------------------------------+| |
10385| ||:diagtext:`a parameter declared with the 'register' keyword` || |
10386| |+---------------------------------------------------------------+| |
10387+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
10388
10389
10390-Wvariadic-macros
10391-----------------
10392**Diagnostic text:**
10393
10394+--------------------------------------------------------------------------------+
10395|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
10396+--------------------------------------------------------------------------------+
10397
10398+------------------------------------------------------------------------+
10399|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
10400+------------------------------------------------------------------------+
10401
10402
10403-Wvector-conversion
10404-------------------
10405**Diagnostic text:**
10406
10407+------------------------------------------------------------------------+----------------------------------------------------------------+
10408|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
10409| ||:diagtext:`assigning to different types` ||
10410| |+--------------------------------------------------------------+|
10411| ||:diagtext:`passing to parameter of different type` ||
10412| |+--------------------------------------------------------------+|
10413| ||:diagtext:`returning from function with different return type`||
10414| |+--------------------------------------------------------------+|
10415| ||:diagtext:`converting between types` ||
10416| |+--------------------------------------------------------------+|
10417| ||:diagtext:`initializing with expression of different type` ||
10418| |+--------------------------------------------------------------+|
10419| ||:diagtext:`sending to parameter of different type` ||
10420| |+--------------------------------------------------------------+|
10421| ||:diagtext:`casting between types` ||
10422| |+--------------------------------------------------------------+|
10423+------------------------------------------------------------------------+----------------------------------------------------------------+
10424
10425
10426-Wvector-conversions
10427--------------------
10428Synonym for `-Wvector-conversion`_.
10429
10430
10431-Wvexing-parse
10432--------------
10433This diagnostic is enabled by default.
10434
10435**Diagnostic text:**
10436
10437+----------------------------------------------------------------------------------------------+
10438|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
10439+----------------------------------------------------------------------------------------------+
10440
10441+-----------------------------------------------------------------------------------------------+
10442|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
10443+-----------------------------------------------------------------------------------------------+
10444
10445
10446-Wvisibility
10447------------
10448This diagnostic is enabled by default.
10449
10450**Diagnostic text:**
10451
10452+---------------------------------------------------------------------------------------------------------------------------------------------+
10453|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
10454+---------------------------------------------------------------------------------------------------------------------------------------------+
10455
10456+----------------------------------------------------------------------------------------------------------------------------------------------+
10457|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
10458+----------------------------------------------------------------------------------------------------------------------------------------------+
10459
10460
10461-Wvla
10462-----
10463**Diagnostic text:**
10464
10465+-----------------------------------------------------------------+
10466|:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
10467+-----------------------------------------------------------------+
10468
10469
10470-Wvla-extension
10471---------------
10472**Diagnostic text:**
10473
10474+-------------------------------------------------------------------------------+
10475|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
10476+-------------------------------------------------------------------------------+
10477
10478
10479-Wvoid-ptr-dereference
10480----------------------
10481This diagnostic is enabled by default.
10482
10483**Diagnostic text:**
10484
10485+--------------------------------------------------------------------------------------------------------------------+
10486|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
10487+--------------------------------------------------------------------------------------------------------------------+
10488
10489
10490-Wvolatile-register-var
10491-----------------------
10492This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10493
10494-Wweak-template-vtables
10495-----------------------
10496**Diagnostic text:**
10497
10498+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10499|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
10500+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10501
10502
10503-Wweak-vtables
10504--------------
10505**Diagnostic text:**
10506
10507+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10508|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
10509+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10510
10511
10512-Wwritable-strings
10513------------------
10514This diagnostic is enabled by default.
10515
10516Also controls `-Wdeprecated-writable-strings`_.
10517
10518**Diagnostic text:**
10519
10520+-------------------------------------------------------------------------------------------------------------------------+
10521|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
10522+-------------------------------------------------------------------------------------------------------------------------+
10523
10524
10525-Wwrite-strings
10526---------------
10527Synonym for `-Wwritable-strings`_.
10528
10529
10530-Wzero-length-array
10531-------------------
10532**Diagnostic text:**
10533
10534+------------------------------------------------------------------------+
10535|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
10536+------------------------------------------------------------------------+
10537
10538