2 -------------------------------------------------------------------
3 NOTE: This file is automatically generated by running clang-tblgen
4 -gen-diag-docs. Do not edit this file by hand!!
5 -------------------------------------------------------------------
7 .. Add custom CSS to output. FIXME: This should be put into <head> rather
8 than the start of <body>.
18 vertical-align: middle;
21 font-family: monospace;
23 table.docutils tr + tr {
24 border-top: 0.2em solid #aaa;
27 font-family: monospace;
32 font-family: monospace;
37 font-family: monospace;
42 font-family: monospace;
47 .. FIXME: rST doesn't support formatting this, so we format all <td> elements
48 as monospace font face instead.
49 .. |nbsp| unicode:: 0xA0
52 .. Roles generated by clang-tblgen.
57 .. role:: placeholder(emphasis)
59 =========================
60 Diagnostic flags in Clang
61 =========================
68 This page lists the diagnostic flags currently supported by Clang.
75 Synonym for `-Wextra`_.
80 This diagnostic is enabled by default.
84 The text of this diagnostic is not controlled by Clang.
89 This diagnostic is enabled by default.
93 The text of this diagnostic is not controlled by Clang.
98 This diagnostic is enabled by default.
102 +------------------------------------------------------------------------------------------------------------------------------------+
103 |:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
104 +------------------------------------------------------------------------------------------------------------------------------------+
109 Some of the diagnostics controlled by this flag are enabled by default.
111 Controls `-Wall`_, `-Wextra`_.
114 -WIndependentClass-attribute
115 ----------------------------
116 This diagnostic is enabled by default.
120 +------------------------------------------------------------------------------------------------------------------------------+
121 |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
122 +------------------------------------------------------------------------------------------------------------------------------+
124 +----------------------------------------------------------------------------------------------------------------------------------------------------+
125 |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
126 +----------------------------------------------------------------------------------------------------------------------------------------------------+
131 This diagnostic is enabled by default.
135 +--------------------------------------------------------------------------------------------------------------+
136 |:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
137 +--------------------------------------------------------------------------------------------------------------+
142 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
146 This diagnostic is enabled by default.
150 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
151 |:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`|
152 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
154 +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
155 |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
156 | ||:diagtext:`pointer` || |
157 | |+--------------------+| |
158 | ||:diagtext:`function`|| |
159 | |+--------------------+| |
160 | ||:diagtext:`array` || |
161 | |+--------------------+| |
162 +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
164 +------------------------------------------------------------------------------------------------------------------------------------------+
165 |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
166 +------------------------------------------------------------------------------------------------------------------------------------------+
168 +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
169 |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
170 | ||:diagtext:`integer` || ||:diagtext:`integer` || |
171 | |+--------------------------+| |+--------------------------+| |
172 | ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
173 | |+--------------------------+| |+--------------------------+| |
174 | ||:diagtext:`complex` || ||:diagtext:`complex` || |
175 | |+--------------------------+| |+--------------------------+| |
176 +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
179 -Wabstract-final-class
180 ----------------------
181 This diagnostic is enabled by default.
185 +-----------------------------------------------------------------+--------------------+-------------+
186 |:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
187 | ||:diagtext:`final` || |
188 | |+------------------+| |
189 | ||:diagtext:`sealed`|| |
190 | |+------------------+| |
191 +-----------------------------------------------------------------+--------------------+-------------+
194 -Wabstract-vbase-init
195 ---------------------
198 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
199 |:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`|
200 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
205 This diagnostic is enabled by default.
207 Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
210 -Waddress-of-array-temporary
211 ----------------------------
212 This diagnostic is enabled by default.
216 +---------------------------------------------------------------------------------------------------------------------------------------------+
217 |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
218 +---------------------------------------------------------------------------------------------------------------------------------------------+
221 -Waddress-of-packed-member
222 --------------------------
223 This diagnostic is enabled by default.
227 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
228 |:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`|
229 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
232 -Waddress-of-temporary
233 ----------------------
234 This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
238 +-----------------------------------------------------------------------------------------------------------+
239 |:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
240 +-----------------------------------------------------------------------------------------------------------+
245 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
247 -Waligned-allocation-unavailable
248 --------------------------------
249 This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error.
253 +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
254 |:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`|
255 | ||:diagtext:`allocation` || |
256 | |+------------------------+| |
257 | ||:diagtext:`deallocation`|| |
258 | |+------------------------+| |
259 +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
264 Some of the diagnostics controlled by this flag are enabled by default.
266 Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
269 -Walloca-with-align-alignof
270 ---------------------------
271 This diagnostic is enabled by default.
275 +--------------------------------------------------------------------------------------------------------------------+
276 |:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
277 +--------------------------------------------------------------------------------------------------------------------+
282 This diagnostic is enabled by default.
286 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
287 |:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`|
288 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
293 This diagnostic is enabled by default.
297 +------------------------------------------------------------------------------------------------+---------------------------------------------+
298 |:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
299 | ||:diagtext:`, not a function parameter pack`||
300 | |+-------------------------------------------+|
302 | |+-------------------------------------------+|
303 +------------------------------------------------------------------------------------------------+---------------------------------------------+
308 This diagnostic is enabled by default.
312 +-------------------------------------------------------------------------------------------+
313 |:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
314 +-------------------------------------------------------------------------------------------+
317 -Wambiguous-member-template
318 ---------------------------
319 This diagnostic is enabled by default.
323 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
324 |:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
325 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
328 -Wanalyzer-incompatible-plugin
329 ------------------------------
330 This diagnostic is enabled by default.
334 +----------------------------------------------------------------------------------------------------------------------------------------+
335 |:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
336 +----------------------------------------------------------------------------------------------------------------------------------------+
339 -Wanonymous-pack-parens
340 -----------------------
341 This diagnostic is enabled by default.
345 +---------------------------------------------------------------------------------------------------------+
346 |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
347 +---------------------------------------------------------------------------------------------------------+
352 This diagnostic is enabled by default.
354 Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
357 -Warc-bridge-casts-disallowed-in-nonarc
358 ---------------------------------------
359 This diagnostic is enabled by default.
363 +-------------------------------------------------------------------------------------------------------------+
364 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
365 +-------------------------------------------------------------------------------------------------------------+
368 -Warc-maybe-repeated-use-of-weak
369 --------------------------------
372 +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
373 |:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
374 | ||:diagtext:`variable` || ||:diagtext:`function`|| |
375 | |+-----------------------------+| |+--------------------+| |
376 | ||:diagtext:`property` || ||:diagtext:`method` || |
377 | |+-----------------------------+| |+--------------------+| |
378 | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
379 | |+-----------------------------+| |+--------------------+| |
380 | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
381 | |+-----------------------------+| |+--------------------+| |
382 +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
385 -Warc-non-pod-memaccess
386 -----------------------
387 This diagnostic is enabled by default.
391 +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
392 |:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
393 | ||:diagtext:`destination for`|| |
394 | |+---------------------------+| |
395 | ||:diagtext:`source of` || |
396 | |+---------------------------+| |
397 +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
400 -Warc-performSelector-leaks
401 ---------------------------
402 This diagnostic is enabled by default.
406 +-------------------------------------------------------------------------------------------------------+
407 |:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
408 +-------------------------------------------------------------------------------------------------------+
411 -Warc-repeated-use-of-weak
412 --------------------------
413 Also controls `-Warc-maybe-repeated-use-of-weak`_.
417 +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
418 |:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`|
419 | ||:diagtext:`variable` || ||:diagtext:`function`|| |
420 | |+-----------------------------+| |+--------------------+| |
421 | ||:diagtext:`property` || ||:diagtext:`method` || |
422 | |+-----------------------------+| |+--------------------+| |
423 | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
424 | |+-----------------------------+| |+--------------------+| |
425 | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
426 | |+-----------------------------+| |+--------------------+| |
427 +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
432 This diagnostic is enabled by default.
436 +------------------------------------------------------------------------------------------------------------------------------------------------------+
437 |:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
438 +------------------------------------------------------------------------------------------------------------------------------------------------------+
441 -Warc-unsafe-retained-assign
442 ----------------------------
443 This diagnostic is enabled by default.
447 +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
448 |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
449 | ||:diagtext:`array literal` || ||:diagtext:`property`|| |
450 | |+-------------------------------+| |+--------------------+| |
451 | ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
452 | |+-------------------------------+| |+--------------------+| |
453 | ||:diagtext:`numeric literal` || | | |
454 | |+-------------------------------+| | | |
455 | ||:diagtext:`boxed expression` || | | |
456 | |+-------------------------------+| | | |
457 | ||:diagtext:`<should not happen>`|| | | |
458 | |+-------------------------------+| | | |
459 | ||:diagtext:`block literal` || | | |
460 | |+-------------------------------+| | | |
461 +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
463 +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
464 |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
465 | ||:diagtext:`weak` || ||:diagtext:`property`|| |
466 | |+------------------------------+| |+--------------------+| |
467 | ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
468 | |+------------------------------+| |+--------------------+| |
469 +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
471 +-----------------------------------------------------------------------------------------------------------------------------+
472 |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
473 +-----------------------------------------------------------------------------------------------------------------------------+
478 This diagnostic is enabled by default.
482 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
483 |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`|
485 | |+-------------+| |
486 | ||:diagtext:`s`|| |
487 | |+-------------+| |
488 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
490 +----------------------------------------------------------------------------------------------------------------------------------+
491 |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
492 +----------------------------------------------------------------------------------------------------------------------------------+
494 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
495 |:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
496 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
498 +-----------------------------------------------------------------------------------+
499 |:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
500 +-----------------------------------------------------------------------------------+
503 -Warray-bounds-pointer-arithmetic
504 ---------------------------------
507 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
508 |:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`|
510 | |+-------------+| |
511 | ||:diagtext:`s`|| |
512 | |+-------------+| |
513 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
515 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
516 |:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
517 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
522 This diagnostic is enabled by default.
524 Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
527 -Wasm-ignored-qualifier
528 -----------------------
529 This diagnostic is enabled by default.
533 +----------------------------------------------------------------------------------------------------------+
534 |:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
535 +----------------------------------------------------------------------------------------------------------+
537 +-------------------------------------------------------------------------------------+
538 |:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
539 +-------------------------------------------------------------------------------------+
544 This diagnostic is enabled by default.
548 +-----------------------------------------------------------------------------------------------------------------------+
549 |:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
550 +-----------------------------------------------------------------------------------------------------------------------+
557 +---------------------------------------------------------------------------------------------------------------+
558 |:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
559 +---------------------------------------------------------------------------------------------------------------+
564 This diagnostic is enabled by default.
568 +-----------------------------------------------------------------------------------------------------------------------------------------+
569 |:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
570 +-----------------------------------------------------------------------------------------------------------------------------------------+
575 This diagnostic is enabled by default.
579 +-------------------------------------------------------------------------------------------------------------------+
580 |:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
581 +-------------------------------------------------------------------------------------------------------------------+
584 -Watomic-memory-ordering
585 ------------------------
586 This diagnostic is enabled by default.
590 +-------------------------------------------------------------------------------------------+
591 |:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
592 +-------------------------------------------------------------------------------------------+
597 Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
600 -Watomic-property-with-user-defined-accessor
601 --------------------------------------------
602 This diagnostic is enabled by default.
606 +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
607 |:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
608 | ||:diagtext:`getter`|| ||:diagtext:`getter`||
609 | |+------------------+| |+------------------+|
610 | ||:diagtext:`setter`|| ||:diagtext:`setter`||
611 | |+------------------+| |+------------------+|
612 +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
615 -Wattribute-packed-for-bitfield
616 -------------------------------
617 This diagnostic is enabled by default.
621 +-------------------------------------------------------------------------------------------------------------------------------------------------+
622 |:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
623 +-------------------------------------------------------------------------------------------------------------------------------------------------+
628 This diagnostic is enabled by default.
630 Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
633 -Wauto-disable-vptr-sanitizer
634 -----------------------------
635 This diagnostic is enabled by default.
639 +------------------------------------------------------------------------------------------------------+
640 |:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
641 +------------------------------------------------------------------------------------------------------+
648 +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
649 |:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
650 | ||:diagtext:`include` || |
651 | |+-------------------------------+| |
652 | ||:diagtext:`import` || |
653 | |+-------------------------------+| |
654 | ||:diagtext:`include\_next` || |
655 | |+-------------------------------+| |
656 | ||:diagtext:`\_\_include\_macros`|| |
657 | |+-------------------------------+| |
658 +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
663 This diagnostic is enabled by default.
667 +---------------------------------------------------------------------------------------------------------------------------------------------+
668 |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
669 +---------------------------------------------------------------------------------------------------------------------------------------------+
674 This diagnostic is enabled by default.
678 +-------------------------------------------------------------------------------------------------------+
679 |:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
680 +-------------------------------------------------------------------------------------------------------+
685 This diagnostic is enabled by default.
689 +--------------------------------------------------------------------------------------------------------------+
690 |:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
691 +--------------------------------------------------------------------------------------------------------------+
693 +------------------------------------------------------------------------------------------------------------------------+
694 |:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
695 +------------------------------------------------------------------------------------------------------------------------+
697 +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
698 |:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`|
699 | ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| |
700 | |+----------------------+| |+----------------------+| |
701 | ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| |
702 | |+----------------------+| |+----------------------+| |
703 | ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || |
704 | |+----------------------+| |+----------------------+| |
705 +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
707 +---------------------------------------------------------------------------------------------------------------------------+
708 |:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
709 +---------------------------------------------------------------------------------------------------------------------------+
711 +---------------------------------------------------------------------------------------+
712 |:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
713 +---------------------------------------------------------------------------------------+
715 +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
716 |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
717 | || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| |
718 | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
719 | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || |
720 | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
721 | | | ||:diagtext:`obsoleted before` || | | |
722 | | | |+-----------------------------+| | | |
723 +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
725 +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
726 |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
727 | || || ||:diagtext:`the protocol method it implements`|| |
728 | |+------------------------------+| |+---------------------------------------------+| |
729 | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || |
730 | |+------------------------------+| |+---------------------------------------------+| |
731 +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
736 This diagnostic is enabled by default.
740 The text of this diagnostic is not controlled by Clang.
743 -Wbackslash-newline-escape
744 --------------------------
745 This diagnostic is enabled by default.
749 +-------------------------------------------------------------------------------+
750 |:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
751 +-------------------------------------------------------------------------------+
758 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
759 |:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
760 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
765 Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
768 -Wbind-to-temporary-copy
769 ------------------------
770 Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
774 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
775 |:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+|
776 | ||:diagtext:`private` ||
777 | |+---------------------+|
778 | ||:diagtext:`protected`||
779 | |+---------------------+|
780 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
782 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
783 |:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
784 | ||:diagtext:`copying variable` || |
785 | |+---------------------------------------+| |
786 | ||:diagtext:`copying parameter` || |
787 | |+---------------------------------------+| |
788 | ||:diagtext:`returning object` || |
789 | |+---------------------------------------+| |
790 | ||:diagtext:`throwing object` || |
791 | |+---------------------------------------+| |
792 | ||:diagtext:`copying member subobject` || |
793 | |+---------------------------------------+| |
794 | ||:diagtext:`copying array element` || |
795 | |+---------------------------------------+| |
796 | ||:diagtext:`allocating object` || |
797 | |+---------------------------------------+| |
798 | ||:diagtext:`copying temporary` || |
799 | |+---------------------------------------+| |
800 | ||:diagtext:`initializing base subobject`|| |
801 | |+---------------------------------------+| |
802 | ||:diagtext:`initializing vector element`|| |
803 | |+---------------------------------------+| |
804 | ||:diagtext:`capturing value` || |
805 | |+---------------------------------------+| |
806 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
809 -Wbitfield-constant-conversion
810 ------------------------------
811 This diagnostic is enabled by default.
815 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
816 |:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
817 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
820 -Wbitfield-enum-conversion
821 --------------------------
824 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
825 |:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
826 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
828 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
829 |:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`|
830 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
832 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
833 |:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`|
834 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
839 This diagnostic is enabled by default.
843 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
844 |:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+|
849 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
851 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
852 |:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+|
857 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
860 -Wbitwise-op-parentheses
861 ------------------------
862 This diagnostic is enabled by default.
866 +-----------------------------------------------------------------------------------------------------------+
867 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
868 +-----------------------------------------------------------------------------------------------------------+
871 -Wblock-capture-autoreleasing
872 -----------------------------
873 This diagnostic is enabled by default.
877 +-----------------------------------------------------------------------------------------------------------------------------+
878 |:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
879 +-----------------------------------------------------------------------------------------------------------------------------+
884 This diagnostic is enabled by default.
886 Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
890 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
891 |:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
892 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
897 Synonym for `-Wbool-conversion`_.
902 This diagnostic is enabled by default.
906 +-----------------------------------------------------------------------+
907 |:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
908 +-----------------------------------------------------------------------+
913 This diagnostic is enabled by default.
917 +------------------------------------------------------------------------------------------------------------------------------------------+
918 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
919 +------------------------------------------------------------------------------------------------------------------------------------------+
921 +-------------------------------------------------------------------------------------------------------+
922 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
923 +-------------------------------------------------------------------------------------------------------+
926 -Wbuiltin-macro-redefined
927 -------------------------
928 This diagnostic is enabled by default.
932 +---------------------------------------------------------------+
933 |:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
934 +---------------------------------------------------------------+
936 +---------------------------------------------------------------+
937 |:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
938 +---------------------------------------------------------------+
941 -Wbuiltin-memcpy-chk-size
942 -------------------------
943 This diagnostic is enabled by default.
947 +------------------------------------------------------------------------------------------------------+
948 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
949 +------------------------------------------------------------------------------------------------------+
952 -Wbuiltin-requires-header
953 -------------------------
954 This diagnostic is enabled by default.
958 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
959 |:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
960 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
967 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
968 |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
969 | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
970 | |+-------------------------+|+------------------+| |+-------------------------+| |
971 | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
972 | |+-------------------------+|+------------------+| |+-------------------------+| |
973 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
978 Synonym for `-Wc++11-compat`_.
983 Synonym for `-Wc++11-extensions`_.
988 Synonym for `-Wc++11-narrowing`_.
993 Some of the diagnostics controlled by this flag are enabled by default.
995 Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_.
999 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1000 |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
1001 | ||:diagtext:`have type 'long long'`|| |
1002 | |+---------------------------------+| |
1003 | ||:diagtext:`be ill-formed` || |
1004 | |+---------------------------------+| |
1005 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1007 +--------------------------------------------------------------------------------------------------------------+
1008 |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
1009 +--------------------------------------------------------------------------------------------------------------+
1011 +-------------------------------------------------------------------------------------------------------------------------+
1012 |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
1013 +-------------------------------------------------------------------------------------------------------------------------+
1015 +-------------------------------------------------------------------------------------------+
1016 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
1017 +-------------------------------------------------------------------------------------------+
1019 +--------------------------------------------------------------------------------------------------------------------------------+
1020 |:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
1021 +--------------------------------------------------------------------------------------------------------------------------------+
1023 +--------------------------------------------------------------------------------+
1024 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
1025 +--------------------------------------------------------------------------------+
1027 +--------------------------------------------------------------------------------------------------------------------------------------+
1028 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
1029 +--------------------------------------------------------------------------------------------------------------------------------------+
1031 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1032 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
1033 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1035 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1036 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
1037 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1039 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1040 |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`|
1041 | ||:diagtext:`have type 'long long'`|| |
1042 | |+---------------------------------+| |
1043 | ||:diagtext:`be ill-formed` || |
1044 | |+---------------------------------+| |
1045 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
1048 -Wc++11-compat-deprecated-writable-strings
1049 ------------------------------------------
1050 This diagnostic is enabled by default.
1052 **Diagnostic text:**
1054 +---------------------------------------------------------------------------------------------------------------------------------+
1055 |:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
1056 +---------------------------------------------------------------------------------------------------------------------------------+
1059 -Wc++11-compat-pedantic
1060 -----------------------
1061 Some of the diagnostics controlled by this flag are enabled by default.
1063 Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_.
1066 -Wc++11-compat-reserved-user-defined-literal
1067 --------------------------------------------
1068 **Diagnostic text:**
1070 +----------------------------------------------------------------------------------------------------------------------------------+
1071 |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
1072 +----------------------------------------------------------------------------------------------------------------------------------+
1077 Some of the diagnostics controlled by this flag are enabled by default.
1079 Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
1081 **Diagnostic text:**
1083 +-------------------------------------------------------------------------------+
1084 |:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
1085 +-------------------------------------------------------------------------------+
1087 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1088 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
1089 | ||:diagtext:`integral` || |
1090 | |+-----------------------+| |
1091 | ||:diagtext:`enumeration`|| |
1092 | |+-----------------------+| |
1093 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
1095 +---------------------------------------------------------------------------------+
1096 |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
1097 +---------------------------------------------------------------------------------+
1099 +-----------------------------------------------------------------------------------------------------------+
1100 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
1101 +-----------------------------------------------------------------------------------------------------------+
1103 +---------------------------+-----------------------+--------------------------------------------------------------+
1104 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
1105 | ||:diagtext:`defaulted`|| |
1106 | |+---------------------+| |
1107 | ||:diagtext:`deleted` || |
1108 | |+---------------------+| |
1109 +---------------------------+-----------------------+--------------------------------------------------------------+
1111 +-----------------------------------------------------------------------------------------------------------------------------------+
1112 |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1113 +-----------------------------------------------------------------------------------------------------------------------------------+
1115 +--------------------------------------------------------------------------------------------------+
1116 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
1117 +--------------------------------------------------------------------------------------------------+
1119 +------------------------------------------------------------------------------------------+
1120 |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
1121 +------------------------------------------------------------------------------------------+
1123 +-----------------------------------------------------------------------------+
1124 |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
1125 +-----------------------------------------------------------------------------+
1127 +--------------------------------------------------------------------------------+
1128 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
1129 +--------------------------------------------------------------------------------+
1131 +------------------------------------------------------------------------------------------+
1132 |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
1133 +------------------------------------------------------------------------------------------+
1135 +---------------------------------------------------------------------------------------------------------+
1136 |:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
1137 +---------------------------------------------------------------------------------------------------------+
1139 +----------------------------------------------------------------------------------------------------------------------------+
1140 |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
1141 +----------------------------------------------------------------------------------------------------------------------------+
1143 +-------------------------------------------------------------------------------------------------------------+
1144 |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
1145 +-------------------------------------------------------------------------------------------------------------+
1147 +--------------------------------------------------------------------------------------------------+
1148 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
1149 +--------------------------------------------------------------------------------------------------+
1151 +----------------------------------------------------------------------------------------------+
1152 |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
1153 +----------------------------------------------------------------------------------------------+
1155 +------------------------------------------------------------------------------+
1156 |:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
1157 +------------------------------------------------------------------------------+
1159 +--------------------------------------------------------------------------------+
1160 |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
1161 +--------------------------------------------------------------------------------+
1163 +----------------------------------------------------------------------------------------------------------------------------------+
1164 |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
1165 +----------------------------------------------------------------------------------------------------------------------------------+
1167 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1168 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
1169 | ||:diagtext:`function`|| |
1170 | |+--------------------+| |
1171 | ||:diagtext:`object` || |
1172 | |+--------------------+| |
1173 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
1175 +-------------------------------------------------------------------------------+
1176 |:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
1177 +-------------------------------------------------------------------------------+
1179 +---------------------------------------------------------------------------------------------------------------+
1180 |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
1181 +---------------------------------------------------------------------------------------------------------------+
1183 +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1184 |:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
1185 | ||:diagtext:`class template` || |
1186 | |+-------------------------------------+| |
1187 | ||:diagtext:`class template partial` || |
1188 | |+-------------------------------------+| |
1189 | ||:diagtext:`variable template` || |
1190 | |+-------------------------------------+| |
1191 | ||:diagtext:`variable template partial`|| |
1192 | |+-------------------------------------+| |
1193 | ||:diagtext:`function template` || |
1194 | |+-------------------------------------+| |
1195 | ||:diagtext:`member function` || |
1196 | |+-------------------------------------+| |
1197 | ||:diagtext:`static data member` || |
1198 | |+-------------------------------------+| |
1199 | ||:diagtext:`member class` || |
1200 | |+-------------------------------------+| |
1201 | ||:diagtext:`member enumeration` || |
1202 | |+-------------------------------------+| |
1203 +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1205 +------------------------------------------------------------------------------+
1206 |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
1207 +------------------------------------------------------------------------------+
1209 +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1210 |:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
1211 | ||:diagtext:`struct` || |
1212 | |+---------------------+| |
1213 | ||:diagtext:`interface`|| |
1214 | |+---------------------+| |
1215 | ||:diagtext:`union` || |
1216 | |+---------------------+| |
1217 | ||:diagtext:`class` || |
1218 | |+---------------------+| |
1219 | ||:diagtext:`enum` || |
1220 | |+---------------------+| |
1221 +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
1223 +-------------------------------------------------------------------------------+
1224 |:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
1225 +-------------------------------------------------------------------------------+
1230 **Diagnostic text:**
1232 +-------------------------------------------------------------------------------------------+
1233 |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
1234 +-------------------------------------------------------------------------------------------+
1237 -Wc++11-inline-namespace
1238 ------------------------
1239 This diagnostic is enabled by default.
1241 **Diagnostic text:**
1243 +----------------------------------------------------------------------------+
1244 |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
1245 +----------------------------------------------------------------------------+
1250 **Diagnostic text:**
1252 +-----------------------------------------------------------------------+
1253 |:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
1254 +-----------------------------------------------------------------------+
1259 Some of the diagnostics controlled by this flag are enabled by default.
1261 **Diagnostic text:**
1263 +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1264 |:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
1265 | ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
1266 | |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
1267 | ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
1268 | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
1269 | ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+||
1270 | |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
1271 | ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
1272 | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
1273 | ||:diagtext:`constexpr if condition` || | |
1274 | |+--------------------------------------+| | |
1275 +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
1277 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1278 |:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
1279 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1281 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1282 |:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1283 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1285 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1286 |:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
1287 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1289 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1290 |:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`|
1291 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1293 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1294 |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
1295 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1297 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1298 |:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`|
1299 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1302 -Wc++14-binary-literal
1303 ----------------------
1304 **Diagnostic text:**
1306 +------------------------------------------------------------------------------------+
1307 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
1308 +------------------------------------------------------------------------------------+
1313 Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
1316 -Wc++14-compat-pedantic
1317 -----------------------
1318 Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
1323 Some of the diagnostics controlled by this flag are enabled by default.
1325 Also controls `-Wc++14-binary-literal`_.
1327 **Diagnostic text:**
1329 +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1330 |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1331 | ||:diagtext:`function` || |
1332 | |+-----------------------+| |
1333 | ||:diagtext:`constructor`|| |
1334 | |+-----------------------+| |
1335 +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1337 +------------------------------------------------------------------------------------------------------------+
1338 |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
1339 +------------------------------------------------------------------------------------------------------------+
1341 +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1342 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1343 | ||:diagtext:`function` || |
1344 | |+-----------------------+| |
1345 | ||:diagtext:`constructor`|| |
1346 | |+-----------------------+| |
1347 +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
1349 +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1350 |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
1351 | ||:diagtext:`function` || |
1352 | |+-----------------------+| |
1353 | ||:diagtext:`constructor`|| |
1354 | |+-----------------------+| |
1355 +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
1357 +---------------------------------------------------------------------------------------------------------------------------+
1358 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
1359 +---------------------------------------------------------------------------------------------------------------------------+
1361 +-------------------------------------------------------------------------------------------+
1362 |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
1363 +-------------------------------------------------------------------------------------------+
1365 +----------------------------------------------------------------------------------------+
1366 |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
1367 +----------------------------------------------------------------------------------------+
1369 +-------------------------------------------------------------------------------+
1370 |:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
1371 +-------------------------------------------------------------------------------+
1376 Some of the diagnostics controlled by this flag are enabled by default.
1378 Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
1381 -Wc++17-compat-mangling
1382 -----------------------
1383 This diagnostic is enabled by default.
1385 **Diagnostic text:**
1387 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1388 |:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`|
1389 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1392 -Wc++17-compat-pedantic
1393 -----------------------
1394 Some of the diagnostics controlled by this flag are enabled by default.
1396 Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
1401 Some of the diagnostics controlled by this flag are enabled by default.
1403 **Diagnostic text:**
1405 +------------------------------------------------------------------------+
1406 |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
1407 +------------------------------------------------------------------------+
1409 +---------------------------------------------------------------------------------------------+
1410 |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
1411 +---------------------------------------------------------------------------------------------+
1413 +---------------------------------------------------------------------------------------------------------------------------+
1414 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
1415 +---------------------------------------------------------------------------------------------------------------------------+
1417 +---------------------------------------------------------------------------------------+
1418 |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
1419 +---------------------------------------------------------------------------------------+
1421 +--------------------------------------------------------------------------------+
1422 |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
1423 +--------------------------------------------------------------------------------+
1425 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1426 |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
1427 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1429 +----------------------------------------------------------------------------------------+
1430 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
1431 +----------------------------------------------------------------------------------------+
1433 +----------------------------------------+--------------------+-------------------------------------------------------------+
1434 |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
1435 | ||:diagtext:`if` || |
1436 | |+------------------+| |
1437 | ||:diagtext:`switch`|| |
1438 | |+------------------+| |
1439 +----------------------------------------+--------------------+-------------------------------------------------------------+
1441 +-----------------------------------------------------------------------------+
1442 |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
1443 +-----------------------------------------------------------------------------+
1445 +---------------------------------------------------------------------------------------------------------------------+
1446 |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
1447 +---------------------------------------------------------------------------------------------------------------------+
1449 +-------------------------------------------------------------------------------------------------------------------------+
1450 |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
1451 +-------------------------------------------------------------------------------------------------------------------------+
1453 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1454 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
1455 | ||:diagtext:`a namespace` || |
1456 | |+-------------------------+| |
1457 | ||:diagtext:`an enumerator`|| |
1458 | |+-------------------------+| |
1459 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
1461 +---------------------------------------------------------------------------------------+
1462 |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
1463 +---------------------------------------------------------------------------------------+
1465 +------------------------------------------------------------------------------------------+
1466 |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
1467 +------------------------------------------------------------------------------------------+
1469 +--------------------------------------------------------------------------------------------------------+
1470 |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
1471 +--------------------------------------------------------------------------------------------------------+
1473 +--------------------------------------------------------------------------------------------------+
1474 |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
1475 +--------------------------------------------------------------------------------------------------+
1477 +-----------------------------------------------------------------------------------------------+
1478 |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
1479 +-----------------------------------------------------------------------------------------------+
1484 Synonym for `-Wc++14-extensions`_.
1489 Synonym for `-Wc++17-compat`_.
1492 -Wc++1z-compat-mangling
1493 -----------------------
1494 Synonym for `-Wc++17-compat-mangling`_.
1499 Synonym for `-Wc++17-extensions`_.
1504 **Diagnostic text:**
1506 +-------------------------------------------------------------------------------------------+
1507 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
1508 +-------------------------------------------------------------------------------------------+
1511 -Wc++2a-compat-pedantic
1512 -----------------------
1513 Synonym for `-Wc++2a-compat`_.
1518 Some of the diagnostics controlled by this flag are enabled by default.
1520 **Diagnostic text:**
1522 +----------------------------------------------------------------------------------------------------+
1523 |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
1524 +----------------------------------------------------------------------------------------------------+
1526 +--------------------------------------------------------------------------------------------------------------------+
1527 |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
1528 +--------------------------------------------------------------------------------------------------------------------+
1530 +--------------------------------------------------------------------------------------------------------------------------+
1531 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
1532 +--------------------------------------------------------------------------------------------------------------------------+
1535 -Wc++98-c++11-c++14-c++17-compat
1536 --------------------------------
1537 **Diagnostic text:**
1539 +-------------------------------------------------------------------------------------------------------------------------------+
1540 |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
1541 +-------------------------------------------------------------------------------------------------------------------------------+
1543 +-----------------------------------------------------------------------------------------------------------------------------------------------+
1544 |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
1545 +-----------------------------------------------------------------------------------------------------------------------------------------------+
1548 -Wc++98-c++11-c++14-c++17-compat-pedantic
1549 -----------------------------------------
1550 Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
1552 **Diagnostic text:**
1554 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1555 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
1556 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1559 -Wc++98-c++11-c++14-compat
1560 --------------------------
1561 **Diagnostic text:**
1563 +---------------------------------------------------------------------------------------------------+
1564 |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
1565 +---------------------------------------------------------------------------------------------------+
1567 +----------------------------------------------------------------------------------------------------------------------+
1568 |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
1569 +----------------------------------------------------------------------------------------------------------------------+
1571 +------------------------------------------------------------------------------------------------------------------+
1572 |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
1573 +------------------------------------------------------------------------------------------------------------------+
1575 +-----------------------------------------------------------------------------------------------------------+
1576 |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
1577 +-----------------------------------------------------------------------------------------------------------+
1579 +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1580 |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
1581 | ||:diagtext:`if` || |
1582 | |+------------------+| |
1583 | ||:diagtext:`switch`|| |
1584 | |+------------------+| |
1585 +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
1587 +--------------------------------------------------------------------------------------------------------+
1588 |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
1589 +--------------------------------------------------------------------------------------------------------+
1591 +------------------------------------------------------------------------------------------------------------------+
1592 |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
1593 +------------------------------------------------------------------------------------------------------------------+
1595 +-------------------------------------------------------------------------------------------------------------------+
1596 |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
1597 +-------------------------------------------------------------------------------------------------------------------+
1599 +---------------------------------------------------------------------------------------------------------------------+
1600 |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
1601 +---------------------------------------------------------------------------------------------------------------------+
1603 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1604 |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
1605 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1607 +-----------------------------------------------------------------------------------------------------------------------------------+
1608 |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
1609 +-----------------------------------------------------------------------------------------------------------------------------------+
1611 +--------------------------------------------------------------------------------------------------------+
1612 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
1613 +--------------------------------------------------------------------------------------------------------+
1615 +-----------------------------------------------------------------------------------------------------------------------------+
1616 |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
1617 +-----------------------------------------------------------------------------------------------------------------------------+
1619 +------------------------------------------------------------------------------------------------------------------------------------------------+
1620 |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
1621 +------------------------------------------------------------------------------------------------------------------------------------------------+
1623 +-----------------------------------------------------------------------------------------------------------------------+
1624 |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
1625 +-----------------------------------------------------------------------------------------------------------------------+
1627 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1628 |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`|
1629 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1632 -Wc++98-c++11-c++14-compat-pedantic
1633 -----------------------------------
1634 Also controls `-Wc++98-c++11-c++14-compat`_.
1636 **Diagnostic text:**
1638 +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1639 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
1640 | ||:diagtext:`a namespace` || |
1641 | |+-------------------------+| |
1642 | ||:diagtext:`an enumerator`|| |
1643 | |+-------------------------+| |
1644 +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
1646 +---------------------------------------------------------------------------------------------------------------------+
1647 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
1648 +---------------------------------------------------------------------------------------------------------------------+
1651 -Wc++98-c++11-compat
1652 --------------------
1653 **Diagnostic text:**
1655 +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1656 |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1657 | ||:diagtext:`function` || |
1658 | |+-----------------------+| |
1659 | ||:diagtext:`constructor`|| |
1660 | |+-----------------------+| |
1661 +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1663 +---------------------------------------------------------------------------------------------------------------------------------------+
1664 |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
1665 +---------------------------------------------------------------------------------------------------------------------------------------+
1667 +-----------------------------------------------------------------------------------------------------------------------------------+
1668 |:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
1669 +-----------------------------------------------------------------------------------------------------------------------------------+
1671 +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1672 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1673 | ||:diagtext:`function` || |
1674 | |+-----------------------+| |
1675 | ||:diagtext:`constructor`|| |
1676 | |+-----------------------+| |
1677 +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1679 +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1680 |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
1681 | ||:diagtext:`function` || |
1682 | |+-----------------------+| |
1683 | ||:diagtext:`constructor`|| |
1684 | |+-----------------------+| |
1685 +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
1687 +----------------------------------------------------------------------------------------------------------------------+
1688 |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
1689 +----------------------------------------------------------------------------------------------------------------------+
1691 +--------------------------------------------------------------------------------------------------------+
1692 |:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
1693 +--------------------------------------------------------------------------------------------------------+
1695 +-------------------------------------------------------------------------------------------------------------------+
1696 |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
1697 +-------------------------------------------------------------------------------------------------------------------+
1699 +----------------------------------------------------------------------------------------------------------+
1700 |:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
1701 +----------------------------------------------------------------------------------------------------------+
1704 -Wc++98-c++11-compat-binary-literal
1705 -----------------------------------
1706 **Diagnostic text:**
1708 +---------------------------------------------------------------------------------------------------------------+
1709 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
1710 +---------------------------------------------------------------------------------------------------------------+
1713 -Wc++98-c++11-compat-pedantic
1714 -----------------------------
1715 Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
1720 Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_.
1722 **Diagnostic text:**
1724 +-------------------------------------------------------------------------------------+
1725 |:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
1726 +-------------------------------------------------------------------------------------+
1728 +---------------------------------------------------------------------------+
1729 |:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
1730 +---------------------------------------------------------------------------+
1732 +--------------------------------------------------------------------------------------+
1733 |:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
1734 +--------------------------------------------------------------------------------------+
1736 +----------------------------------------------------------------------------------------+
1737 |:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
1738 +----------------------------------------------------------------------------------------+
1740 +---------------------------------------------------------------------------------------+
1741 |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
1742 +---------------------------------------------------------------------------------------+
1744 +---------------------------------------------------------------------------------------+
1745 |:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
1746 +---------------------------------------------------------------------------------------+
1748 +--------------------------------------------------------------------------------------------------------+
1749 |:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
1750 +--------------------------------------------------------------------------------------------------------+
1752 +-------------------------------------------------------------------------------------------+
1753 |:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
1754 +-------------------------------------------------------------------------------------------+
1756 +---------------------------+-----------------------+--------------------------------------------------------------------+
1757 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
1758 | ||:diagtext:`defaulted`|| |
1759 | |+---------------------+| |
1760 | ||:diagtext:`deleted` || |
1761 | |+---------------------+| |
1762 +---------------------------+-----------------------+--------------------------------------------------------------------+
1764 +------------------------------------------------------------------------------------------+
1765 |:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
1766 +------------------------------------------------------------------------------------------+
1768 +----------------------------------------------------------------------------------------------------------------+
1769 |:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
1770 +----------------------------------------------------------------------------------------------------------------+
1772 +-----------------------------------------------------------------------------------------------------------------+
1773 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
1774 +-----------------------------------------------------------------------------------------------------------------+
1776 +-----------------------------------------------------------------------------------------------------------------------------------------+
1777 |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1778 +-----------------------------------------------------------------------------------------------------------------------------------------+
1780 +-----------------------------------------------------------------------------------------------------------+
1781 |:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
1782 +-----------------------------------------------------------------------------------------------------------+
1784 +------------------------------------------------------------------------------------------------+
1785 |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
1786 +------------------------------------------------------------------------------------------------+
1788 +--------------------------------------------------------------------------------------+
1789 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
1790 +--------------------------------------------------------------------------------------+
1792 +---------------------------------------------------------------------------------------------------------------------------+
1793 |:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
1794 +---------------------------------------------------------------------------------------------------------------------------+
1796 +------------------------------------------------------------------------------------------------+
1797 |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
1798 +------------------------------------------------------------------------------------------------+
1800 +------------------------------------------------------------------------------------------------------------+
1801 |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
1802 +------------------------------------------------------------------------------------------------------------+
1804 +---------------------------------------------------------------------------------------------------------------------------------------+
1805 |:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
1806 +---------------------------------------------------------------------------------------------------------------------------------------+
1808 +------------------------------------------------------------------------------------------------------------+
1809 |:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
1810 +------------------------------------------------------------------------------------------------------------+
1812 +------------------------------------------------------------------------------------+
1813 |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
1814 +------------------------------------------------------------------------------------+
1816 +-------------------------------------------------------------------------------------+
1817 |:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
1818 +-------------------------------------------------------------------------------------+
1820 +-----------------------------------------------------------------------------------------------------------+
1821 |:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
1822 +-----------------------------------------------------------------------------------------------------------+
1824 +------------------------------------------------------------------------------------+
1825 |:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
1826 +------------------------------------------------------------------------------------+
1828 +---------------------------------------------------------------------------------------------------------------------------+
1829 |:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
1830 +---------------------------------------------------------------------------------------------------------------------------+
1832 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1833 |:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
1834 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
1836 +------------------------------------------------------------------------------------------+
1837 |:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
1838 +------------------------------------------------------------------------------------------+
1840 +---------------------------------------------------------------------------------------+
1841 |:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
1842 +---------------------------------------------------------------------------------------+
1844 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1845 |:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
1846 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1848 +----------------------------------------------------------------------------------------------------------------------------------+
1849 |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
1850 +----------------------------------------------------------------------------------------------------------------------------------+
1852 +--------------------------------------------------------------------------------------------------------------------+
1853 |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
1854 +--------------------------------------------------------------------------------------------------------------------+
1856 +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1857 |:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
1858 | ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || |
1859 | |+----------------------------+| |+------------------------------------+| |
1860 | ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
1861 | |+----------------------------+| |+------------------------------------+| |
1862 | | | ||:diagtext:`move constructor` || |
1863 | | | |+------------------------------------+| |
1864 | | | ||:diagtext:`copy assignment operator`|| |
1865 | | | |+------------------------------------+| |
1866 | | | ||:diagtext:`move assignment operator`|| |
1867 | | | |+------------------------------------+| |
1868 | | | ||:diagtext:`destructor` || |
1869 | | | |+------------------------------------+| |
1870 +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
1872 +---------------------------------------------------------------------------+
1873 |:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
1874 +---------------------------------------------------------------------------+
1876 +--------------------------------------------------------------------------------------------------------+
1877 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
1878 +--------------------------------------------------------------------------------------------------------+
1880 +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1881 |:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
1882 | ||:diagtext:`function` || |
1883 | |+-----------------------+| |
1884 | ||:diagtext:`block` || |
1885 | |+-----------------------+| |
1886 | ||:diagtext:`method` || |
1887 | |+-----------------------+| |
1888 | ||:diagtext:`constructor`|| |
1889 | |+-----------------------+| |
1890 +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
1892 +--------------------------------------------------------------------------------------+
1893 |:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
1894 +--------------------------------------------------------------------------------------+
1896 +----------------------------------------------------------------------------------------------------+
1897 |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
1898 +----------------------------------------------------------------------------------------------------+
1900 +-------------------------------------------------------------------------------------------------------------+
1901 |:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
1902 +-------------------------------------------------------------------------------------------------------------+
1904 +------------------------------------------------------------------------------------+
1905 |:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
1906 +------------------------------------------------------------------------------------+
1908 +--------------------------------------------------------------------------------------+
1909 |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
1910 +--------------------------------------------------------------------------------------+
1912 +------------------------------------------------------------------------------------------------------------+
1913 |:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
1914 +------------------------------------------------------------------------------------------------------------+
1916 +----------------------------------------------------------------------------------------------+
1917 |:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
1918 +----------------------------------------------------------------------------------------------+
1920 +----------------------------------------------------------------------------------------------------------------------------------------+
1921 |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
1922 +----------------------------------------------------------------------------------------------------------------------------------------+
1924 +---------------------------------------------------------------------------------------------------------------+
1925 |:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
1926 +---------------------------------------------------------------------------------------------------------------+
1928 +---------------------------------------------------------------------------------------------------------------------------------------+
1929 |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
1930 +---------------------------------------------------------------------------------------------------------------------------------------+
1932 +-------------------------------------------------------------------------------------------------------------------+
1933 |:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
1934 +-------------------------------------------------------------------------------------------------------------------+
1936 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1937 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
1938 | ||:diagtext:`function`|| |
1939 | |+--------------------+| |
1940 | ||:diagtext:`object` || |
1941 | |+--------------------+| |
1942 +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
1944 +-----------------------------------------------------------------------------------------------------------------+
1945 |:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
1946 +-----------------------------------------------------------------------------------------------------------------+
1948 +---------------------------------------------------------------------------------------------------------------------+
1949 |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
1950 +---------------------------------------------------------------------------------------------------------------------+
1952 +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1953 |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
1954 | ||:diagtext:`class template` || |
1955 | |+-------------------------------------+| |
1956 | ||:diagtext:`class template partial` || |
1957 | |+-------------------------------------+| |
1958 | ||:diagtext:`variable template` || |
1959 | |+-------------------------------------+| |
1960 | ||:diagtext:`variable template partial`|| |
1961 | |+-------------------------------------+| |
1962 | ||:diagtext:`function template` || |
1963 | |+-------------------------------------+| |
1964 | ||:diagtext:`member function` || |
1965 | |+-------------------------------------+| |
1966 | ||:diagtext:`static data member` || |
1967 | |+-------------------------------------+| |
1968 | ||:diagtext:`member class` || |
1969 | |+-------------------------------------+| |
1970 | ||:diagtext:`member enumeration` || |
1971 | |+-------------------------------------+| |
1972 +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1974 +----------------------------------------------------------------------------------------+
1975 |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
1976 +----------------------------------------------------------------------------------------+
1978 +---------------------------------------------------------------------------------------------------------------+
1979 |:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
1980 +---------------------------------------------------------------------------------------------------------------+
1982 +---------------------------------------------------------------------------------------------------------+
1983 |:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
1984 +---------------------------------------------------------------------------------------------------------+
1986 +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
1987 |:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
1988 | ||:diagtext:`struct` || |
1989 | |+---------------------+| |
1990 | ||:diagtext:`interface`|| |
1991 | |+---------------------+| |
1992 | ||:diagtext:`union` || |
1993 | |+---------------------+| |
1994 | ||:diagtext:`class` || |
1995 | |+---------------------+| |
1996 | ||:diagtext:`enum` || |
1997 | |+---------------------+| |
1998 +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
2000 +-------------------------------------------------------------------------------------------------------+
2001 |:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
2002 +-------------------------------------------------------------------------------------------------------+
2004 +-----------------------------------------------------------------------------------+
2005 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
2006 +-----------------------------------------------------------------------------------+
2008 +---------------------------------------------------------------------------------------------------------------+
2009 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
2010 +---------------------------------------------------------------------------------------------------------------+
2012 +------------------------------------------------------------------------------------------+
2013 |:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
2014 +------------------------------------------------------------------------------------------+
2016 +-------------------------------------------------------------------------------------+
2017 |:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
2018 +-------------------------------------------------------------------------------------+
2021 -Wc++98-compat-bind-to-temporary-copy
2022 -------------------------------------
2023 **Diagnostic text:**
2025 +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2026 |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`|
2027 | ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
2028 | |+---------------------------------------+| |+----------------------------------------------+| |
2029 | ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
2030 | |+---------------------------------------+| |+----------------------------------------------+| |
2031 | ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
2032 | |+---------------------------------------+| |+----------------------------------------------+| |
2033 | ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || |
2034 | |+---------------------------------------+| |+----------------------------------------------+| |
2035 | ||:diagtext:`copying member subobject` || | | |
2036 | |+---------------------------------------+| | | |
2037 | ||:diagtext:`copying array element` || | | |
2038 | |+---------------------------------------+| | | |
2039 | ||:diagtext:`allocating object` || | | |
2040 | |+---------------------------------------+| | | |
2041 | ||:diagtext:`copying temporary` || | | |
2042 | |+---------------------------------------+| | | |
2043 | ||:diagtext:`initializing base subobject`|| | | |
2044 | |+---------------------------------------+| | | |
2045 | ||:diagtext:`initializing vector element`|| | | |
2046 | |+---------------------------------------+| | | |
2047 +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
2050 -Wc++98-compat-local-type-template-args
2051 ---------------------------------------
2052 **Diagnostic text:**
2054 +--------------------------------------------------------------------------------------------------------------------------------------------+
2055 |:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
2056 +--------------------------------------------------------------------------------------------------------------------------------------------+
2059 -Wc++98-compat-pedantic
2060 -----------------------
2061 Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_.
2063 **Diagnostic text:**
2065 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2066 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
2067 | ||:diagtext:`integral` || |
2068 | |+-----------------------+| |
2069 | ||:diagtext:`enumeration`|| |
2070 | |+-----------------------+| |
2071 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
2073 +------------------------------------------------------------------------------------------------------------------------+
2074 |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
2075 +------------------------------------------------------------------------------------------------------------------------+
2077 +----------------------------------------------------------------------------------------+
2078 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
2079 +----------------------------------------------------------------------------------------+
2081 +--------------------------------------------------------------------------------------------------------+
2082 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
2083 +--------------------------------------------------------------------------------------------------------+
2085 +-----------------------------------------------------------------------------------+
2086 |:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
2087 +-----------------------------------------------------------------------------------+
2089 +-----------------------------------------------------------------------------+
2090 |:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
2091 +-----------------------------------------------------------------------------+
2093 +----------------------------------------------------------------------------+
2094 |:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
2095 +----------------------------------------------------------------------------+
2097 +-------------------------------------------------------------------------------------------------+
2098 |:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
2099 +-------------------------------------------------------------------------------------------------+
2101 +-------------------------------------------------------------------------------------------------+
2102 |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
2103 +-------------------------------------------------------------------------------------------------+
2105 +----------------------------------------------------------------------------------+
2106 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
2107 +----------------------------------------------------------------------------------+
2110 -Wc++98-compat-unnamed-type-template-args
2111 -----------------------------------------
2112 **Diagnostic text:**
2114 +---------------------------------------------------------------------------------------------------+
2115 |:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
2116 +---------------------------------------------------------------------------------------------------+
2121 **Diagnostic text:**
2123 +---------------------------------------------------------------------------+
2124 |:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
2125 +---------------------------------------------------------------------------+
2127 +----------------------------------------------------------------------------------------+
2128 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
2129 +----------------------------------------------------------------------------------------+
2131 +----------------------------------------------------------------------------+
2132 |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
2133 +----------------------------------------------------------------------------+
2135 +------------------------------------------------------------------------------------+
2136 |:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
2137 +------------------------------------------------------------------------------------+
2139 +--------------------------------------------------------------------------------------+
2140 |:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
2141 +--------------------------------------------------------------------------------------+
2143 +---------------------------------------------------------------------------------+
2144 |:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
2145 +---------------------------------------------------------------------------------+
2150 Some of the diagnostics controlled by this flag are enabled by default.
2152 **Diagnostic text:**
2154 +---------------------------+--------------------------------------------------------+--------------------------------------------+
2155 |:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
2156 | ||:diagtext:`using this character in an identifier` || |
2157 | |+------------------------------------------------------+| |
2158 | ||:diagtext:`starting an identifier with this character`|| |
2159 | |+------------------------------------------------------+| |
2160 +---------------------------+--------------------------------------------------------+--------------------------------------------+
2162 +---------------------------------------------------------------------------------+
2163 |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
2164 +---------------------------------------------------------------------------------+
2166 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2167 |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`|
2168 | ||:diagtext:`have type 'long long'`|| |
2169 | |+---------------------------------+| |
2170 | ||:diagtext:`be ill-formed` || |
2171 | |+---------------------------------+| |
2172 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
2177 Some of the diagnostics controlled by this flag are enabled by default.
2179 **Diagnostic text:**
2181 +-----------------------------------------------------------------------------------------------+
2182 |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
2183 +-----------------------------------------------------------------------------------------------+
2185 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2186 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
2187 | ||:diagtext:`qualifier in` |nbsp| || || || |
2188 | |+--------------------------------+| |+---------------------+| |
2189 | ||:diagtext:`static` |nbsp| || || || |
2190 | |+--------------------------------+| |+---------------------+| |
2191 | || || ||:diagtext:`'\[\*\] '`|| |
2192 | |+--------------------------------+| |+---------------------+| |
2193 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
2195 +-----------------------------------------------------------------------------------+
2196 |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
2197 +-----------------------------------------------------------------------------------+
2199 +-------------------------------------------------------------------------------+
2200 |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
2201 +-------------------------------------------------------------------------------+
2203 +-------------------------------------------------------------------------------------------------+
2204 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
2205 +-------------------------------------------------------------------------------------------------+
2207 +---------------------------------------------------------------------------------------+
2208 |:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
2209 +---------------------------------------------------------------------------------------+
2211 +--------------------------------------------------------------------------------+
2212 |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
2213 +--------------------------------------------------------------------------------+
2215 +------------------------------------------------------------------------------+
2216 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
2217 +------------------------------------------------------------------------------+
2219 +-------------------------------------------------------------------------------------------------------+
2220 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
2221 +-------------------------------------------------------------------------------------------------------+
2223 +---------------------------------------------------------------------------------------+
2224 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
2225 +---------------------------------------------------------------------------------------+
2230 **Diagnostic text:**
2232 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2233 |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
2234 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2237 -Wcast-calling-convention
2238 -------------------------
2239 This diagnostic is enabled by default.
2241 **Diagnostic text:**
2243 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2244 |:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
2245 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2250 This diagnostic is enabled by default.
2252 **Diagnostic text:**
2254 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2255 |:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
2256 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2261 **Diagnostic text:**
2263 +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2264 |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
2265 | ||:diagtext:`const and volatile qualifiers`||
2266 | |+-----------------------------------------+|
2267 | ||:diagtext:`const qualifier` ||
2268 | |+-----------------------------------------+|
2269 | ||:diagtext:`volatile qualifier` ||
2270 | |+-----------------------------------------+|
2271 +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
2273 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2274 |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`|
2275 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2280 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2284 **Diagnostic text:**
2286 +------------------------------------------------------------+-------------------------+-------------------------------------+
2287 |:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
2288 | ||:diagtext:`lower bound`|| |
2289 | |+-----------------------+| |
2290 | ||:diagtext:`length` || |
2291 | |+-----------------------+| |
2292 +------------------------------------------------------------+-------------------------+-------------------------------------+
2294 +------------------------------------------------------------------------+
2295 |:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
2296 +------------------------------------------------------------------------+
2301 This diagnostic is enabled by default.
2303 **Diagnostic text:**
2305 +-------------------------------------------------------------------------------------------------------------------------+
2306 |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
2307 +-------------------------------------------------------------------------------------------------------------------------+
2309 +------------------------------------------------------------------------------------------------------------------------------+
2310 |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
2311 +------------------------------------------------------------------------------------------------------------------------------+
2313 +--------------------------------------------------------------------------------------------------------------------------------------+
2314 |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
2315 +--------------------------------------------------------------------------------------------------------------------------------------+
2317 +----------------------------------------------------------------------------------------------------------------------------------------------------+
2318 |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
2319 +----------------------------------------------------------------------------------------------------------------------------------------------------+
2324 Some of the diagnostics controlled by this flag are enabled by default.
2326 Also controls `-Wnon-pod-varargs`_.
2328 **Diagnostic text:**
2330 +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2331 |:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
2332 | ||:diagtext:`function` ||| ||
2333 | |+-----------------------+|+--------------------------------------------------------------------+|
2334 | ||:diagtext:`block` |||+------------------------------------------------------------------+||
2335 | |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
2336 | ||:diagtext:`method` |||+------------------------------------------------------------------+||
2337 | |+-----------------------+|+--------------------------------------------------------------------+|
2338 | ||:diagtext:`constructor`|| |
2339 | |+-----------------------+| |
2340 +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
2345 **Diagnostic text:**
2347 +-----------------------------------------------------------------------------+
2348 |:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
2349 +-----------------------------------------------------------------------------+
2354 Some of the diagnostics controlled by this flag are enabled by default.
2356 **Diagnostic text:**
2358 +--------------------------------------------------------------------------------------------------+
2359 |:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
2360 +--------------------------------------------------------------------------------------------------+
2362 +-----------------------------------------------------------------------------------+
2363 |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
2364 +-----------------------------------------------------------------------------------+
2366 +------------------------------------------------------------+
2367 |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
2368 +------------------------------------------------------------+
2370 +-----------------------------------------------------------------+
2371 |:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
2372 +-----------------------------------------------------------------+
2377 Synonym for `-Wcomment`_.
2380 -Wcompare-distinct-pointer-types
2381 --------------------------------
2382 This diagnostic is enabled by default.
2384 **Diagnostic text:**
2386 +---------------------------------------------------------------------------+
2387 |:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
2388 +---------------------------------------------------------------------------+
2391 -Wcomplex-component-init
2392 ------------------------
2393 **Diagnostic text:**
2395 +----------------------------------------------------------------------------------------------------------------------+
2396 |:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
2397 +----------------------------------------------------------------------------------------------------------------------+
2400 -Wconditional-type-mismatch
2401 ---------------------------
2402 This diagnostic is enabled by default.
2404 **Diagnostic text:**
2406 +----------------------------------------------------------------------------------------------+
2407 |:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
2408 +----------------------------------------------------------------------------------------------+
2411 -Wconditional-uninitialized
2412 ---------------------------
2413 **Diagnostic text:**
2415 +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2416 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
2417 | ||:diagtext:`used here` ||
2418 | |+-----------------------------+|
2419 | ||:diagtext:`captured by block`||
2420 | |+-----------------------------+|
2421 +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
2426 This diagnostic is enabled by default.
2428 **Diagnostic text:**
2430 +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2431 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`|
2432 | ||:diagtext:`definition`|| ||+----------------------------------------------+|| |
2433 | |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| |
2434 | ||:diagtext:`#undef` || ||+----------------------------------------------+|| |
2435 | |+----------------------+| |+------------------------------------------------+| |
2436 | | | ||+------------------------------+ || |
2437 | | | |||:diagtext:`-U`:placeholder:`B`| || |
2438 | | | ||+------------------------------+ || |
2439 | | | |+------------------------------------------------+| |
2440 +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
2443 -Wconstant-conversion
2444 ---------------------
2445 This diagnostic is enabled by default.
2447 Also controls `-Wbitfield-constant-conversion`_.
2449 **Diagnostic text:**
2451 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2452 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2453 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2456 -Wconstant-logical-operand
2457 --------------------------
2458 This diagnostic is enabled by default.
2460 **Diagnostic text:**
2462 +----------------------------------------------------------------------------------------------------------+
2463 |:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
2464 +----------------------------------------------------------------------------------------------------------+
2467 -Wconstexpr-not-const
2468 ---------------------
2469 This diagnostic is enabled by default.
2471 **Diagnostic text:**
2473 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2474 |:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`|
2475 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2480 **Diagnostic text:**
2482 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2483 |:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
2484 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2486 +--------------------------------------------------------------------------------------------------------------------------------+
2487 |:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
2488 +--------------------------------------------------------------------------------------------------------------------------------+
2490 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2491 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
2492 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2494 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
2495 |:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2496 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
2498 +---------------------------------------------------------------------------------------------------------------+
2499 |:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
2500 +---------------------------------------------------------------------------------------------------------------+
2502 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2503 |:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
2504 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2506 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2507 |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`|
2508 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2510 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2511 |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
2512 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2517 Some of the diagnostics controlled by this flag are enabled by default.
2519 Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
2521 **Diagnostic text:**
2523 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2524 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2525 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
2527 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2528 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2529 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
2531 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
2532 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2533 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
2535 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2536 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
2537 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2539 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2540 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`|
2541 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2543 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2544 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`|
2545 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2550 Synonym for `-Wnull-conversion`_.
2555 Synonym for `-Wcoroutine-missing-unhandled-exception`_.
2558 -Wcoroutine-missing-unhandled-exception
2559 ---------------------------------------
2560 This diagnostic is enabled by default.
2562 **Diagnostic text:**
2564 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
2565 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
2566 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
2569 -Wcovered-switch-default
2570 ------------------------
2571 **Diagnostic text:**
2573 +--------------------------------------------------------------------------------------------------+
2574 |:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
2575 +--------------------------------------------------------------------------------------------------+
2580 Synonym for `-W#warnings`_.
2583 -Wcstring-format-directive
2584 --------------------------
2585 **Diagnostic text:**
2587 +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2588 |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+|
2589 | ||:diagtext:`NSString`|| ||:diagtext:`method` ||
2590 | |+--------------------+| |+----------------------+|
2591 | ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
2592 | |+--------------------+| |+----------------------+|
2593 +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
2598 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2602 Some of the diagnostics controlled by this flag are enabled by default.
2604 **Diagnostic text:**
2606 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2607 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
2608 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
2610 +---------------------------------------------------------------------------------------------------------------------------------+
2611 |:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
2612 +---------------------------------------------------------------------------------------------------------------------------------+
2614 +------------------------------------------------------------------------------------------------------------+
2615 |:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
2616 +------------------------------------------------------------------------------------------------------------+
2618 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2619 |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
2620 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
2622 +--------------------------------------------------------------------------------------------------------------+
2623 |:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
2624 +--------------------------------------------------------------------------------------------------------------+
2627 -Wcustom-atomic-properties
2628 --------------------------
2629 **Diagnostic text:**
2631 +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2632 |:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`|
2633 | ||:diagtext:`getter`|| |
2634 | |+------------------+| |
2635 | ||:diagtext:`setter`|| |
2636 | |+------------------+| |
2637 +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
2642 This diagnostic is enabled by default.
2644 **Diagnostic text:**
2646 +---------------------------------------------------------------------------------+
2647 |:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
2648 +---------------------------------------------------------------------------------+
2653 This diagnostic is enabled by default.
2655 **Diagnostic text:**
2657 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2658 |:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
2659 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
2661 +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2662 |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
2664 | |+--------------------------------+| |
2665 | ||:diagtext:`subobject of` |nbsp| || |
2666 | |+--------------------------------+| |
2667 +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
2669 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2670 |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
2671 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2674 -Wdangling-initializer-list
2675 ---------------------------
2676 This diagnostic is enabled by default.
2678 **Diagnostic text:**
2680 +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2681 |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
2682 | ||:diagtext:`the full-expression`||
2683 | |+-------------------------------+|
2684 | ||:diagtext:`the constructor` ||
2685 | |+-------------------------------+|
2686 +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
2691 **Diagnostic text:**
2693 +------------------------------------------------------------------------------------------+
2694 |:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
2695 +------------------------------------------------------------------------------------------+
2698 -Wdealloc-in-category
2699 ---------------------
2700 This diagnostic is enabled by default.
2702 **Diagnostic text:**
2704 +---------------------------------------------------------------------------------+
2705 |:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
2706 +---------------------------------------------------------------------------------+
2709 -Wdebug-compression-unavailable
2710 -------------------------------
2711 This diagnostic is enabled by default.
2713 **Diagnostic text:**
2715 +------------------------------------------------------------------------------------------+
2716 |:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
2717 +------------------------------------------------------------------------------------------+
2720 -Wdeclaration-after-statement
2721 -----------------------------
2722 **Diagnostic text:**
2724 +-----------------------------------------------------------------------------------+
2725 |:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
2726 +-----------------------------------------------------------------------------------+
2729 -Wdelegating-ctor-cycles
2730 ------------------------
2731 This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
2733 **Diagnostic text:**
2735 +------------------------------------------------------------------------------------------------------------------------+
2736 |:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
2737 +------------------------------------------------------------------------------------------------------------------------+
2742 This diagnostic is enabled by default.
2744 **Diagnostic text:**
2746 +-------------------------------------------------------------------------------------------------------------------+
2747 |:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
2748 +-------------------------------------------------------------------------------------------------------------------+
2750 +--------------------------------------------------------------------------------------------------------------------------------------------------+
2751 |:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
2752 +--------------------------------------------------------------------------------------------------------------------------------------------------+
2755 -Wdelete-non-virtual-dtor
2756 -------------------------
2757 Some of the diagnostics controlled by this flag are enabled by default.
2759 **Diagnostic text:**
2761 +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2762 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
2763 | ||:diagtext:`delete` || |
2764 | |+----------------------+| |
2765 | ||:diagtext:`destructor`|| |
2766 | |+----------------------+| |
2767 +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
2769 +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2770 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
2771 | ||:diagtext:`delete` || |
2772 | |+----------------------+| |
2773 | ||:diagtext:`destructor`|| |
2774 | |+----------------------+| |
2775 +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
2780 Some of the diagnostics controlled by this flag are enabled by default.
2782 Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
2784 **Diagnostic text:**
2786 +---------------------------------------------------------------+
2787 |:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
2788 +---------------------------------------------------------------+
2790 +---------------------------------------------------------------------------------------------------------+
2791 |:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
2792 +---------------------------------------------------------------------------------------------------------+
2794 +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2795 |:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+|
2796 | ||:diagtext:`constructor` || ||+------------------------+---------------------------------+||
2797 | |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
2798 | ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`||||
2799 | |+-------------------------------+| ||| |+-------------------------------+|||
2800 | | | ||| ||:diagtext:`constructor` ||||
2801 | | | ||| |+-------------------------------+|||
2802 | | | ||+------------------------+---------------------------------+||
2803 | | | |+------------------------------------------------------------+|
2804 | | | ||:diagtext:`destructor` ||
2805 | | | |+------------------------------------------------------------+|
2806 +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
2808 +-------------------------------------------------------------------------------------------------------------------------------------+
2809 |:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
2810 +-------------------------------------------------------------------------------------------------------------------------------------+
2812 +----------------------------------------------------------------------------------------------------------------------------------------+
2813 |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
2814 +----------------------------------------------------------------------------------------------------------------------------------------+
2816 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2817 |:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
2818 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2820 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2821 |:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
2822 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
2824 +------------------------------------------------------------------------------------+
2825 |:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
2826 +------------------------------------------------------------------------------------+
2829 -Wdeprecated-attributes
2830 -----------------------
2831 This diagnostic is enabled by default.
2833 **Diagnostic text:**
2835 +------------------------------------------------------------------------------------------------------------------------------------------------+
2836 |:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
2837 +------------------------------------------------------------------------------------------------------------------------------------------------+
2840 -Wdeprecated-declarations
2841 -------------------------
2842 This diagnostic is enabled by default.
2844 **Diagnostic text:**
2846 +--------------------------------------------------------------------------------------------------------------------+
2847 |:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
2848 +--------------------------------------------------------------------------------------------------------------------+
2850 +-----------------------------------------------------------------------------------------------------------------+
2851 |:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
2852 +-----------------------------------------------------------------------------------------------------------------+
2854 +----------------------------------------------------------------------------+
2855 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
2856 +----------------------------------------------------------------------------+
2858 +---------------------------------------------------------------------------------------------------------------------+
2859 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
2860 +---------------------------------------------------------------------------------------------------------------------+
2862 +-----------------------------------------------------------------------------------------------------+
2863 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
2864 +-----------------------------------------------------------------------------------------------------+
2866 +-------------------------------------------------------------------------------------------------------------------------------------+
2867 |:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
2868 +-------------------------------------------------------------------------------------------------------------------------------------+
2871 -Wdeprecated-dynamic-exception-spec
2872 -----------------------------------
2873 **Diagnostic text:**
2875 +--------------------------------------------------------------------------------------+
2876 |:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
2877 +--------------------------------------------------------------------------------------+
2880 -Wdeprecated-implementations
2881 ----------------------------
2882 **Diagnostic text:**
2884 +----------------------------------------------------------------------+----------------------+
2885 |:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
2886 | ||:diagtext:`method` ||
2887 | |+--------------------+|
2888 | ||:diagtext:`class` ||
2889 | |+--------------------+|
2890 | ||:diagtext:`category`||
2891 | |+--------------------+|
2892 +----------------------------------------------------------------------+----------------------+
2894 +----------------------------------------------------------------------+
2895 |:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
2896 +----------------------------------------------------------------------+
2899 -Wdeprecated-increment-bool
2900 ---------------------------
2901 This diagnostic is enabled by default.
2903 **Diagnostic text:**
2905 +---------------------------------------------------------------------------------------------------------------------+
2906 |:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
2907 +---------------------------------------------------------------------------------------------------------------------+
2910 -Wdeprecated-objc-isa-usage
2911 ---------------------------
2912 This diagnostic is enabled by default.
2914 **Diagnostic text:**
2916 +-------------------------------------------------------------------------------------------------------------------+
2917 |:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
2918 +-------------------------------------------------------------------------------------------------------------------+
2920 +----------------------------------------------------------------------------------------------------------------------+
2921 |:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
2922 +----------------------------------------------------------------------------------------------------------------------+
2925 -Wdeprecated-objc-pointer-introspection
2926 ---------------------------------------
2927 This diagnostic is enabled by default.
2929 Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
2931 **Diagnostic text:**
2933 +--------------------------------------------------------------------------------------------------------------------------+
2934 |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2935 +--------------------------------------------------------------------------------------------------------------------------+
2938 -Wdeprecated-objc-pointer-introspection-performSelector
2939 -------------------------------------------------------
2940 This diagnostic is enabled by default.
2942 **Diagnostic text:**
2944 +--------------------------------------------------------------------------------------------------------------------------+
2945 |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
2946 +--------------------------------------------------------------------------------------------------------------------------+
2949 -Wdeprecated-register
2950 ---------------------
2951 This diagnostic is enabled by default.
2953 **Diagnostic text:**
2955 +-------------------------------------------------------------------------------------------------------------------+
2956 |:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
2957 +-------------------------------------------------------------------------------------------------------------------+
2960 -Wdeprecated-writable-strings
2961 -----------------------------
2962 Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
2965 -Wdirect-ivar-access
2966 --------------------
2967 **Diagnostic text:**
2969 +------------------------------------------------------------------------------------------------------------------------------+
2970 |:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
2971 +------------------------------------------------------------------------------------------------------------------------------+
2974 -Wdisabled-macro-expansion
2975 --------------------------
2976 **Diagnostic text:**
2978 +----------------------------------------------------------------------------+
2979 |:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
2980 +----------------------------------------------------------------------------+
2983 -Wdisabled-optimization
2984 -----------------------
2985 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2989 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
2991 -Wdistributed-object-modifiers
2992 ------------------------------
2993 This diagnostic is enabled by default.
2995 **Diagnostic text:**
2997 +----------------------------------------------------------------------------------------------------------------------------------------------+
2998 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
2999 +----------------------------------------------------------------------------------------------------------------------------------------------+
3001 +-------------------------------------------------------------------------------------------------------------------------------------------+
3002 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
3003 +-------------------------------------------------------------------------------------------------------------------------------------------+
3008 Synonym for `-Wdivision-by-zero`_.
3013 This diagnostic is enabled by default.
3015 **Diagnostic text:**
3017 +---------------------------+-----------------------+----------------------------------------+
3018 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
3019 | ||:diagtext:`remainder`|| |
3020 | |+---------------------+| |
3021 | ||:diagtext:`division` || |
3022 | |+---------------------+| |
3023 +---------------------------+-----------------------+----------------------------------------+
3026 -Wdll-attribute-on-redeclaration
3027 --------------------------------
3028 This diagnostic is enabled by default.
3030 **Diagnostic text:**
3032 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3033 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
3034 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3037 -Wdllexport-explicit-instantiation-decl
3038 ---------------------------------------
3039 This diagnostic is enabled by default.
3041 **Diagnostic text:**
3043 +---------------------------------------------------------------------------------------------------+
3044 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
3045 +---------------------------------------------------------------------------------------------------+
3048 -Wdllimport-static-field-def
3049 ----------------------------
3050 This diagnostic is enabled by default.
3052 **Diagnostic text:**
3054 +---------------------------------------------------------------------------+
3055 |:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
3056 +---------------------------------------------------------------------------+
3061 Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
3063 **Diagnostic text:**
3065 +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3066 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
3067 | ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
3068 | |+--------------+|+---------------------+| |+---------------------+| |
3069 | ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
3070 | |+--------------+|+---------------------+| |+---------------------+| |
3071 | | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
3072 | | |+---------------------+| |+---------------------+| |
3073 | | ||:diagtext:`struct` || ||:diagtext:`struct` || |
3074 | | |+---------------------+| |+---------------------+| |
3075 | | ||:diagtext:`union` || ||:diagtext:`union` || |
3076 | | |+---------------------+| |+---------------------+| |
3077 +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
3079 +-----------------------------------------------------------+----------------+-----------------------------+
3080 |:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
3081 | ||:diagtext:`\\`|| |
3082 | |+--------------+| |
3083 | ||:diagtext:`@` || |
3084 | |+--------------+| |
3085 +-----------------------------------------------------------+----------------+-----------------------------+
3087 +------------------------------------------------------------------+----------------+-------------------------------------+
3088 |:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
3089 | ||:diagtext:`\\`|| |
3090 | |+--------------+| |
3091 | ||:diagtext:`@` || |
3092 | |+--------------+| |
3093 +------------------------------------------------------------------+----------------+-------------------------------------+
3095 +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3096 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
3097 | ||:diagtext:`\\`|||:diagtext:`classdesign` || |
3098 | |+--------------+|+------------------------+| |
3099 | ||:diagtext:`@` |||:diagtext:`coclass` || |
3100 | |+--------------+|+------------------------+| |
3101 | | ||:diagtext:`dependency` || |
3102 | | |+------------------------+| |
3103 | | ||:diagtext:`helper` || |
3104 | | |+------------------------+| |
3105 | | ||:diagtext:`helperclass` || |
3106 | | |+------------------------+| |
3107 | | ||:diagtext:`helps` || |
3108 | | |+------------------------+| |
3109 | | ||:diagtext:`instancesize`|| |
3110 | | |+------------------------+| |
3111 | | ||:diagtext:`ownership` || |
3112 | | |+------------------------+| |
3113 | | ||:diagtext:`performance` || |
3114 | | |+------------------------+| |
3115 | | ||:diagtext:`security` || |
3116 | | |+------------------------+| |
3117 | | ||:diagtext:`superclass` || |
3118 | | |+------------------------+| |
3119 +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
3121 +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3122 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
3123 | ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
3124 | |+--------------+|+-------------------------+| |+---------------------------------+| |
3125 | ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
3126 | |+--------------+|+-------------------------+| |+---------------------------------+| |
3127 | | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
3128 | | |+-------------------------+| |+---------------------------------+| |
3129 | | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
3130 | | |+-------------------------+| |+---------------------------------+| |
3131 | | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
3132 | | |+-------------------------+| |+---------------------------------+| |
3133 +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
3135 +-------------------------------------------------------------------------------------------------------+
3136 |:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
3137 +-------------------------------------------------------------------------------------------------------+
3139 +-------------------------------------------------------------------------------+
3140 |:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
3141 +-------------------------------------------------------------------------------+
3143 +-----------------------------------------------------------------------------------------------------+
3144 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3145 +-----------------------------------------------------------------------------------------------------+
3147 +------------------------------------------------------------------------------------------------------------------------------------------+
3148 |:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
3149 +------------------------------------------------------------------------------------------------------------------------------------------+
3151 +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3152 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
3153 | ||:diagtext:`\\`|| |
3154 | |+--------------+| |
3155 | ||:diagtext:`@` || |
3156 | |+--------------+| |
3157 +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
3159 +---------------------------------------------------------------------------------------------------------------------+
3160 |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
3161 +---------------------------------------------------------------------------------------------------------------------+
3163 +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3164 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
3165 | ||:diagtext:`\\`|| ||:diagtext:`function returning void`||
3166 | |+--------------+| |+-----------------------------------+|
3167 | ||:diagtext:`@` || ||:diagtext:`constructor` ||
3168 | |+--------------+| |+-----------------------------------+|
3169 | | | ||:diagtext:`destructor` ||
3170 | | | |+-----------------------------------+|
3171 | | | ||:diagtext:`method returning void` ||
3172 | | | |+-----------------------------------+|
3173 +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
3175 +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3176 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
3177 | ||:diagtext:`\\`|| |
3178 | |+--------------+| |
3179 | ||:diagtext:`@` || |
3180 | |+--------------+| |
3181 +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
3183 +--------------------------------------------------------------------------------------------------------------+
3184 |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
3185 +--------------------------------------------------------------------------------------------------------------+
3187 +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3188 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
3189 | ||:diagtext:`\\`|| |
3190 | |+--------------+| |
3191 | ||:diagtext:`@` || |
3192 | |+--------------+| |
3193 +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
3195 +------------------------------------------------------------------------------------------------------------------------------+
3196 |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
3197 +------------------------------------------------------------------------------------------------------------------------------+
3199 +---------------------------------------------------------------------+
3200 |:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
3201 +---------------------------------------------------------------------+
3203 +----------------------------------------+----------------+------------------------------------------------------------------------------+
3204 |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
3205 | ||:diagtext:`\\`|| |
3206 | |+--------------+| |
3207 | ||:diagtext:`@` || |
3208 | |+--------------+| |
3209 +----------------------------------------+----------------+------------------------------------------------------------------------------+
3212 -Wdocumentation-deprecated-sync
3213 -------------------------------
3214 **Diagnostic text:**
3216 +----------------------------------------------------------------------------------------------------------------------------------+
3217 |:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
3218 +----------------------------------------------------------------------------------------------------------------------------------+
3221 -Wdocumentation-html
3222 --------------------
3223 **Diagnostic text:**
3225 +-----------------------------------------------------------------------------------------------+
3226 |:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
3227 +-----------------------------------------------------------------------------------------------+
3229 +--------------------------------------------------------------------------------+
3230 |:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
3231 +--------------------------------------------------------------------------------+
3233 +--------------------------------------------------------------------------------------------------+
3234 |:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
3235 +--------------------------------------------------------------------------------------------------+
3237 +-----------------------------------------------------------------------------------------------------------------------------+
3238 |:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
3239 +-----------------------------------------------------------------------------------------------------------------------------+
3242 -Wdocumentation-pedantic
3243 ------------------------
3244 Also controls `-Wdocumentation-unknown-command`_.
3246 **Diagnostic text:**
3248 +-----------------------------------------------------------------------------------------------+
3249 |:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
3250 +-----------------------------------------------------------------------------------------------+
3253 -Wdocumentation-unknown-command
3254 -------------------------------
3255 **Diagnostic text:**
3257 +--------------------------------------------------------------------------------------------------------------------------------------------+
3258 |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
3259 +--------------------------------------------------------------------------------------------------------------------------------------------+
3261 +---------------------------------------------------------------+
3262 |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
3263 +---------------------------------------------------------------+
3266 -Wdollar-in-identifier-extension
3267 --------------------------------
3268 **Diagnostic text:**
3270 +--------------------------------------------------------+
3271 |:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
3272 +--------------------------------------------------------+
3277 **Diagnostic text:**
3279 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3280 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3281 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3284 -Wduplicate-decl-specifier
3285 --------------------------
3286 This diagnostic is enabled by default.
3288 **Diagnostic text:**
3290 +-----------------------------------------------------------------------------------------------------+
3291 |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3292 +-----------------------------------------------------------------------------------------------------+
3294 +-----------------------------------------------------------------------------------------------------+
3295 |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
3296 +-----------------------------------------------------------------------------------------------------+
3301 **Diagnostic text:**
3303 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3304 |:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`|
3305 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3308 -Wduplicate-method-arg
3309 ----------------------
3310 **Diagnostic text:**
3312 +------------------------------------------------------------------------------------------------+
3313 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
3314 +------------------------------------------------------------------------------------------------+
3317 -Wduplicate-method-match
3318 ------------------------
3319 **Diagnostic text:**
3321 +-----------------------------------------------------------------------------------------------------------------------------------+
3322 |:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
3323 +-----------------------------------------------------------------------------------------------------------------------------------+
3326 -Wduplicate-protocol
3327 --------------------
3328 This diagnostic is enabled by default.
3330 **Diagnostic text:**
3332 +-----------------------------------------------------------------------------------------------------------------------------+
3333 |:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
3334 +-----------------------------------------------------------------------------------------------------------------------------+
3337 -Wdynamic-class-memaccess
3338 -------------------------
3339 This diagnostic is enabled by default.
3341 **Diagnostic text:**
3343 +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3344 |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+|
3345 | ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
3346 | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
3347 | ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
3348 | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
3349 | ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
3350 | |+-----------------------------+| | | |+-----------------------+|
3351 | ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
3352 | |+-----------------------------+| | | |+-----------------------+|
3353 +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
3356 -Wdynamic-exception-spec
3357 ------------------------
3358 Some of the diagnostics controlled by this flag are enabled by default.
3360 Also controls `-Wdeprecated-dynamic-exception-spec`_.
3362 **Diagnostic text:**
3364 +--------------------------------------------------------------------------------------------+
3365 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
3366 +--------------------------------------------------------------------------------------------+
3371 Synonym for `-Wnon-virtual-dtor`_.
3374 -Wembedded-directive
3375 --------------------
3376 **Diagnostic text:**
3378 +----------------------------------------------------------------------------------------------------------+
3379 |:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
3380 +----------------------------------------------------------------------------------------------------------+
3385 This diagnostic is enabled by default.
3387 **Diagnostic text:**
3389 +--------------------------------------------------------------+
3390 |:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
3391 +--------------------------------------------------------------+
3393 +------------------------------------------------------------------+
3394 |:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
3395 +------------------------------------------------------------------+
3397 +--------------------------------------------------------------------------+
3398 |:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
3399 +--------------------------------------------------------------------------+
3401 +----------------------------------------------------------------------+
3402 |:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
3403 +----------------------------------------------------------------------+
3405 +----------------------------------------------------------------+
3406 |:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
3407 +----------------------------------------------------------------+
3410 -Wempty-decomposition
3411 ---------------------
3412 This diagnostic is enabled by default.
3414 **Diagnostic text:**
3416 +-------------------------------------------------------------------------------------------------+
3417 |:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
3418 +-------------------------------------------------------------------------------------------------+
3421 -Wempty-translation-unit
3422 ------------------------
3423 **Diagnostic text:**
3425 +------------------------------------------------------------------------------------------------------------+
3426 |:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
3427 +------------------------------------------------------------------------------------------------------------+
3432 This diagnostic is enabled by default.
3434 **Diagnostic text:**
3436 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3437 |:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
3438 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3443 Synonym for `-Wextra-tokens`_.
3448 This diagnostic is enabled by default.
3450 Also controls `-Wenum-compare-switch`_.
3452 **Diagnostic text:**
3454 +------------------------------------------------------------------------------------------------+
3455 |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
3456 +------------------------------------------------------------------------------------------------+
3459 -Wenum-compare-switch
3460 ---------------------
3461 This diagnostic is enabled by default.
3463 **Diagnostic text:**
3465 +--------------------------------------------------------------------------------------------------------------------+
3466 |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
3467 +--------------------------------------------------------------------------------------------------------------------+
3472 This diagnostic is enabled by default.
3474 **Diagnostic text:**
3476 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3477 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
3478 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3483 This diagnostic is enabled by default.
3485 **Diagnostic text:**
3487 +-----------------------------------------------------------------------------------------+
3488 |:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
3489 +-----------------------------------------------------------------------------------------+
3491 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3492 |:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
3493 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
3498 This diagnostic is enabled by default.
3500 **Diagnostic text:**
3502 +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3503 |:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
3504 | ||:diagtext:`constructor`|| |
3505 | |+-----------------------+| |
3506 | ||:diagtext:`destructor` || |
3507 | |+-----------------------+| |
3508 +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
3510 +-------------------------------------------------------------------------------------------------------------------------------------+
3511 |:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
3512 +-------------------------------------------------------------------------------------------------------------------------------------+
3514 +-----------------------------------------------------------------------------------------------------------------------------+
3515 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
3516 +-----------------------------------------------------------------------------------------------------------------------------+
3519 -Wexit-time-destructors
3520 -----------------------
3521 **Diagnostic text:**
3523 +-----------------------------------------------------------------------------------+
3524 |:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
3525 +-----------------------------------------------------------------------------------+
3528 -Wexpansion-to-defined
3529 ----------------------
3530 Some of the diagnostics controlled by this flag are enabled by default.
3532 **Diagnostic text:**
3534 +-------------------------------------------------------------------------------------------------+
3535 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3536 +-------------------------------------------------------------------------------------------------+
3538 +-------------------------------------------------------------------------------------------------+
3539 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
3540 +-------------------------------------------------------------------------------------------------+
3543 -Wexplicit-initialize-call
3544 --------------------------
3545 This diagnostic is enabled by default.
3547 **Diagnostic text:**
3549 +------------------------------------------------------------------------------------------------------------+
3550 |:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
3551 +------------------------------------------------------------------------------------------------------------+
3553 +----------------------------------------------------------------------------------------------------------------------------+
3554 |:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
3555 +----------------------------------------------------------------------------------------------------------------------------+
3558 -Wexplicit-ownership-type
3559 -------------------------
3560 **Diagnostic text:**
3562 +-------------------------------------------------------------------------------------------------------------------------------------+
3563 |:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
3564 +-------------------------------------------------------------------------------------------------------------------------------------+
3569 **Diagnostic text:**
3571 +--------------------------------------------------------------------------------------+
3572 |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
3573 +--------------------------------------------------------------------------------------+
3578 This diagnostic is enabled by default.
3580 **Diagnostic text:**
3582 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3583 |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
3584 | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
3585 | |+-------------------------+|+------------------+| |+-------------------------+| |
3586 | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
3587 | |+-------------------------+|+------------------+| |+-------------------------+| |
3588 +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
3591 -Wextern-initializer
3592 --------------------
3593 This diagnostic is enabled by default.
3595 **Diagnostic text:**
3597 +---------------------------------------------------------------------------+
3598 |:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
3599 +---------------------------------------------------------------------------+
3604 Some of the diagnostics controlled by this flag are enabled by default.
3606 Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
3608 **Diagnostic text:**
3610 +-----------------------------------------------------------------------------------------------------------------------------+
3611 |:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
3612 +-----------------------------------------------------------------------------------------------------------------------------+
3615 -Wextra-qualification
3616 ---------------------
3617 This diagnostic is enabled by default.
3619 **Diagnostic text:**
3621 +--------------------------------------------------------------------------------------------+
3622 |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
3623 +--------------------------------------------------------------------------------------------+
3628 Also controls `-Wc++11-extra-semi`_.
3630 **Diagnostic text:**
3632 +--------------------------------------------------------+------------------------------------------------+
3633 |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
3634 | ||:diagtext:`outside of a function` ||
3635 | |+----------------------------------------------+|
3636 | ||+--------------------------------------------+||
3637 | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
3638 | ||+--------------------------------------------+||
3639 | |+----------------------------------------------+|
3640 | ||:diagtext:`inside instance variable list` ||
3641 | |+----------------------------------------------+|
3642 | ||:diagtext:`after member function definition` ||
3643 | |+----------------------------------------------+|
3644 +--------------------------------------------------------+------------------------------------------------+
3646 +---------------------------------------------------------------------------------+
3647 |:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
3648 +---------------------------------------------------------------------------------+
3653 This diagnostic is enabled by default.
3655 **Diagnostic text:**
3657 +------------------------------------------------------------------------------------------------------------+
3658 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
3659 +------------------------------------------------------------------------------------------------------------+
3661 +-------------------------------------------------------------------------------------------------------------------------------+
3662 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
3663 +-------------------------------------------------------------------------------------------------------------------------------+
3668 This diagnostic is enabled by default.
3670 **Diagnostic text:**
3672 +------------------------------------------------------------------------------+
3673 |:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
3674 +------------------------------------------------------------------------------+
3679 This diagnostic is enabled by default.
3681 **Diagnostic text:**
3683 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3684 |:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
3685 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3688 -Wflexible-array-extensions
3689 ---------------------------
3690 **Diagnostic text:**
3692 +-------------------------------------------------------------------------------------------------------------------------------+
3693 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
3694 +-------------------------------------------------------------------------------------------------------------------------------+
3696 +-------------------------------------------------------------------------------------------------------------------------+
3697 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
3698 +-------------------------------------------------------------------------------------------------------------------------+
3703 Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
3705 **Diagnostic text:**
3707 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3708 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
3709 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3714 **Diagnostic text:**
3716 +---------------------------------------------------------------------------------------+
3717 |:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
3718 +---------------------------------------------------------------------------------------+
3721 -Wfloat-overflow-conversion
3722 ---------------------------
3723 **Diagnostic text:**
3725 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3726 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
3727 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3730 -Wfloat-zero-conversion
3731 -----------------------
3732 **Diagnostic text:**
3734 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3735 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
3736 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3741 **Diagnostic text:**
3743 +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3744 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
3745 | ||:diagtext:`decremented`|| |
3746 | |+-----------------------+| |
3747 | ||:diagtext:`incremented`|| |
3748 | |+-----------------------+| |
3749 +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
3751 +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3752 |:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
3753 | ||:diagtext:`s` || |
3754 | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3755 | ||+------------------------+ || |
3756 | ||| |nbsp| :placeholder:`B`| || |
3757 | ||+------------------------+ || |
3758 | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3759 | ||+------------------------------------------------------------------------------------+ || |
3760 | |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
3761 | ||+------------------------------------------------------------------------------------+ || |
3762 | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3763 | ||+-------------------------------------------------------------------------------------------------------------------+ || |
3764 | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
3765 | ||+-------------------------------------------------------------------------------------------------------------------+ || |
3766 | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3767 | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
3768 | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
3769 | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
3770 | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
3771 +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
3776 This diagnostic is enabled by default.
3778 Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
3780 **Diagnostic text:**
3782 +-------------------------------------------------------------------------------------+
3783 |:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
3784 +-------------------------------------------------------------------------------------+
3786 +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3787 |:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`|
3788 | ||:diagtext:`values of type` || |
3789 | |+--------------------------------------------+| |
3790 | ||:diagtext:`enum values with underlying type`|| |
3791 | |+--------------------------------------------+| |
3792 +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3794 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3795 |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3796 | ||:diagtext:`type` || |
3797 | |+---------------------------+| |
3798 | ||:diagtext:`underlying type`|| |
3799 | |+---------------------------+| |
3800 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3802 +----------------------------------------------------------------------------------------------------------------------------------------+
3803 |:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
3804 +----------------------------------------------------------------------------------------------------------------------------------------+
3806 +-----------------------------------------------------------------------------+-----------------------------+
3807 |:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
3808 | ||:diagtext:`field width` ||
3809 | |+---------------------------+|
3810 | ||:diagtext:`field precision`||
3811 | |+---------------------------+|
3812 +-----------------------------------------------------------------------------+-----------------------------+
3814 +----------------------------------------------------------------------------------------------------------+
3815 |:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
3816 +----------------------------------------------------------------------------------------------------------+
3818 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3819 |:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3820 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3822 +--------------------------------------------------------------------------------+
3823 |:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
3824 +--------------------------------------------------------------------------------+
3826 +-------------------------------------------------------------------------------------------------------+
3827 |:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
3828 +-------------------------------------------------------------------------------------------------------+
3830 +------------------------------------------------------------+
3831 |:warning:`warning:` |nbsp| :diagtext:`format string missing`|
3832 +------------------------------------------------------------+
3834 +----------------------------------------------------------------------------------------------------------------------------------+
3835 |:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
3836 +----------------------------------------------------------------------------------------------------------------------------------+
3838 +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3839 |:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
3840 | ||:diagtext:`\*` || ||:diagtext:`width` || |
3841 | |+---------------+| |+---------------------+| |
3842 | ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
3843 | |+---------------+| |+---------------------+| |
3844 +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
3846 +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3847 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
3848 | ||:diagtext:`width` || |
3849 | |+---------------------+| |
3850 | ||:diagtext:`precision`|| |
3851 | |+---------------------+| |
3852 +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
3854 +-----------------------------------------------------------------+
3855 |:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
3856 +-----------------------------------------------------------------+
3858 +------------------------------------------------------------------------------------------+
3859 |:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
3860 +------------------------------------------------------------------------------------------+
3862 +---------------------------------------------------------------------------+
3863 |:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
3864 +---------------------------------------------------------------------------+
3866 +-----------------------------------------------------------------------------------------------------------------------------------------+
3867 |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
3868 +-----------------------------------------------------------------------------------------------------------------------------------------+
3870 +------------------------------------------------------------------+
3871 |:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
3872 +------------------------------------------------------------------+
3874 +--------------------------------------------------------------------------------+
3875 |:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
3876 +--------------------------------------------------------------------------------+
3878 +-------------------------------------------------------------------------------------------------------+
3879 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
3880 +-------------------------------------------------------------------------------------------------------+
3882 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3883 |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
3884 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3886 +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3887 |:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
3888 | ||:diagtext:`field width`|| |
3889 | |+-----------------------+| |
3890 | ||:diagtext:`precision` || |
3891 | |+-----------------------+| |
3892 +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
3894 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3895 |:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
3896 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
3898 +----------------------------------------------------------------------------------------+
3899 |:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
3900 +----------------------------------------------------------------------------------------+
3902 +----------------------------------------------------------------------------------------+
3903 |:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
3904 +----------------------------------------------------------------------------------------+
3909 This diagnostic is enabled by default.
3911 **Diagnostic text:**
3913 +------------------------------------------------------------------------------+
3914 |:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
3915 +------------------------------------------------------------------------------+
3918 -Wformat-invalid-specifier
3919 --------------------------
3920 This diagnostic is enabled by default.
3922 **Diagnostic text:**
3924 +--------------------------------------------------------------------------------------------------+
3925 |:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
3926 +--------------------------------------------------------------------------------------------------+
3931 **Diagnostic text:**
3933 +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3934 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
3935 | ||:diagtext:`length modifier` || |
3936 | |+--------------------------------+| |
3937 | ||:diagtext:`conversion specifier`|| |
3938 | |+--------------------------------+| |
3939 +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
3941 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3942 |:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
3943 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3945 +--------------------------------------------------------------------------------------+
3946 |:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
3947 +--------------------------------------------------------------------------------------+
3952 **Diagnostic text:**
3954 +----------------------------------------------------------------------------+
3955 |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
3956 +----------------------------------------------------------------------------+
3961 **Diagnostic text:**
3963 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3964 |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
3965 | ||:diagtext:`type` || |
3966 | |+---------------------------+| |
3967 | ||:diagtext:`underlying type`|| |
3968 | |+---------------------------+| |
3969 +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
3974 This diagnostic is enabled by default.
3976 **Diagnostic text:**
3978 +---------------------------------------------------------------------------------------------------+
3979 |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
3980 +---------------------------------------------------------------------------------------------------+
3985 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
3987 -Wformat-zero-length
3988 --------------------
3989 This diagnostic is enabled by default.
3991 **Diagnostic text:**
3993 +-------------------------------------------------------------+
3994 |:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
3995 +-------------------------------------------------------------+
4000 Some of the diagnostics controlled by this flag are enabled by default.
4002 Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
4005 -Wfour-char-constants
4006 ---------------------
4007 **Diagnostic text:**
4009 +-------------------------------------------------------------------------+
4010 |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
4011 +-------------------------------------------------------------------------+
4014 -Wframe-larger-than=
4015 --------------------
4016 This diagnostic is enabled by default.
4018 **Diagnostic text:**
4020 The text of this diagnostic is not controlled by Clang.
4022 +--------------------------------------------------------------------------------------------------------------------------------------+
4023 |:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
4024 +--------------------------------------------------------------------------------------------------------------------------------------+
4027 -Wfunction-def-in-objc-container
4028 --------------------------------
4029 This diagnostic is enabled by default.
4031 **Diagnostic text:**
4033 +--------------------------------------------------------------------------------------------------------+
4034 |:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
4035 +--------------------------------------------------------------------------------------------------------+
4040 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
4044 Some of the diagnostics controlled by this flag are enabled by default.
4046 **Diagnostic text:**
4048 +--------------------------------------------------------------------------+
4049 |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
4050 +--------------------------------------------------------------------------+
4052 +------------------------------------------------------------------------+
4053 |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
4054 +------------------------------------------------------------------------+
4056 +-----------------------------------------------------------------------------------------------+
4057 |:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
4058 +-----------------------------------------------------------------------------------------------+
4060 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4061 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
4062 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4064 +---------------------------------------------------------------------------------------+
4065 |:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
4066 +---------------------------------------------------------------------------------------+
4068 +----------------------------------------------------------------------------------------------------------------------------------------+
4069 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
4070 +----------------------------------------------------------------------------------------------------------------------------------------+
4072 +-----------------------------------------------------------------------------------------------------------------+
4073 |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
4074 +-----------------------------------------------------------------------------------------------------------------+
4076 +----------------------------------------------------------------------------------------------------------------------------------+
4077 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
4078 +----------------------------------------------------------------------------------------------------------------------------------+
4081 -Wglobal-constructors
4082 ---------------------
4083 **Diagnostic text:**
4085 +--------------------------------------------------------------------------------+
4086 |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
4087 +--------------------------------------------------------------------------------+
4089 +-------------------------------------------------------------------------------+
4090 |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
4091 +-------------------------------------------------------------------------------+
4096 Some of the diagnostics controlled by this flag are enabled by default.
4098 Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_.
4101 -Wgnu-alignof-expression
4102 ------------------------
4103 This diagnostic is enabled by default.
4105 **Diagnostic text:**
4107 +----------------------------------------------------------------------------------------------------------+
4108 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
4109 +----------------------------------------------------------------------------------------------------------+
4112 -Wgnu-anonymous-struct
4113 ----------------------
4114 **Diagnostic text:**
4116 +----------------------------------------------------------------------------+
4117 |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
4118 +----------------------------------------------------------------------------+
4121 -Wgnu-array-member-paren-init
4122 -----------------------------
4123 This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
4125 **Diagnostic text:**
4127 +----------------------------------------------------------------------------------------------------+
4128 |:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
4129 +----------------------------------------------------------------------------------------------------+
4134 **Diagnostic text:**
4136 +--------------------------------------------------------------------------+
4137 |:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
4138 +--------------------------------------------------------------------------+
4141 -Wgnu-binary-literal
4142 --------------------
4143 **Diagnostic text:**
4145 +----------------------------------------------------------------------------------+
4146 |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
4147 +----------------------------------------------------------------------------------+
4152 **Diagnostic text:**
4154 +----------------------------------------------------------------------+
4155 |:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
4156 +----------------------------------------------------------------------+
4159 -Wgnu-complex-integer
4160 ---------------------
4161 **Diagnostic text:**
4163 +--------------------------------------------------------------------------------+
4164 |:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
4165 +--------------------------------------------------------------------------------+
4168 -Wgnu-compound-literal-initializer
4169 ----------------------------------
4170 **Diagnostic text:**
4172 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4173 |:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
4174 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4177 -Wgnu-conditional-omitted-operand
4178 ---------------------------------
4179 **Diagnostic text:**
4181 +--------------------------------------------------------------------------------------------------------------+
4182 |:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
4183 +--------------------------------------------------------------------------------------------------------------+
4188 Some of the diagnostics controlled by this flag are enabled by default.
4190 **Diagnostic text:**
4192 +-----------------------------------------------------------------------+
4193 |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
4194 +-----------------------------------------------------------------------+
4196 +-------------------------------------------------------------------------------------+
4197 |:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
4198 +-------------------------------------------------------------------------------------+
4200 +--------------------------------------------------------------------------------------+
4201 |:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
4202 +--------------------------------------------------------------------------------------+
4205 -Wgnu-empty-initializer
4206 -----------------------
4207 **Diagnostic text:**
4209 +-----------------------------------------------------------------------------+
4210 |:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
4211 +-----------------------------------------------------------------------------+
4216 **Diagnostic text:**
4218 +----------------------------------------------------+--------------------+--------------------------------------+
4219 |:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
4220 | ||:diagtext:`struct`|| |
4221 | |+------------------+| |
4222 | ||:diagtext:`union` || |
4223 | |+------------------+| |
4224 +----------------------------------------------------+--------------------+--------------------------------------+
4226 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4227 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
4228 | ||:diagtext:`struct` || |
4229 | |+---------------------+| |
4230 | ||:diagtext:`interface`|| |
4231 | |+---------------------+| |
4232 | ||:diagtext:`union` || |
4233 | |+---------------------+| |
4234 | ||:diagtext:`class` || |
4235 | |+---------------------+| |
4236 | ||:diagtext:`enum` || |
4237 | |+---------------------+| |
4238 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
4240 +---------------------------+--------------------+------------------------------------------------------------+
4241 |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
4242 | ||:diagtext:`struct`|| |
4243 | |+------------------+| |
4244 | ||:diagtext:`union` || |
4245 | |+------------------+| |
4246 +---------------------------+--------------------+------------------------------------------------------------+
4249 -Wgnu-flexible-array-initializer
4250 --------------------------------
4251 **Diagnostic text:**
4253 +---------------------------------------------------------------------------------------+
4254 |:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
4255 +---------------------------------------------------------------------------------------+
4258 -Wgnu-flexible-array-union-member
4259 ---------------------------------
4260 **Diagnostic text:**
4262 +-------------------------------------------------------------------------------------------------------------------------------------+
4263 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
4264 +-------------------------------------------------------------------------------------------------------------------------------------+
4267 -Wgnu-folding-constant
4268 ----------------------
4269 **Diagnostic text:**
4271 +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4272 |:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
4273 | ||:diagtext:`integer` || |
4274 | |+--------------------+| |
4275 | ||:diagtext:`integral`|| |
4276 | |+--------------------+| |
4277 +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
4279 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
4280 |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`|
4281 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
4283 +-----------------------------------------------------------------------------------------------------+
4284 |:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
4285 +-----------------------------------------------------------------------------------------------------+
4288 -Wgnu-imaginary-constant
4289 ------------------------
4290 **Diagnostic text:**
4292 +------------------------------------------------------------------------------+
4293 |:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
4294 +------------------------------------------------------------------------------+
4299 **Diagnostic text:**
4301 +-----------------------------------------------------------------------------+
4302 |:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
4303 +-----------------------------------------------------------------------------+
4306 -Wgnu-label-as-value
4307 --------------------
4308 **Diagnostic text:**
4310 +----------------------------------------------------------------------------+
4311 |:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
4312 +----------------------------------------------------------------------------+
4314 +-------------------------------------------------------------------------+
4315 |:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
4316 +-------------------------------------------------------------------------+
4319 -Wgnu-redeclared-enum
4320 ---------------------
4321 **Diagnostic text:**
4323 +------------------------------------------------------------------------------------------------------------------------------------------+
4324 |:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4325 +------------------------------------------------------------------------------------------------------------------------------------------+
4328 -Wgnu-statement-expression
4329 --------------------------
4330 **Diagnostic text:**
4332 +--------------------------------------------------------------------------------+
4333 |:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
4334 +--------------------------------------------------------------------------------+
4337 -Wgnu-static-float-init
4338 -----------------------
4339 This diagnostic is enabled by default.
4341 **Diagnostic text:**
4343 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4344 |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
4345 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4348 -Wgnu-string-literal-operator-template
4349 --------------------------------------
4350 This diagnostic is enabled by default.
4352 **Diagnostic text:**
4354 +--------------------------------------------------------------------------------------------+
4355 |:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
4356 +--------------------------------------------------------------------------------------------+
4361 **Diagnostic text:**
4363 +----------------------------------------------------------------------------+
4364 |:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
4365 +----------------------------------------------------------------------------+
4368 -Wgnu-variable-sized-type-not-at-end
4369 ------------------------------------
4370 This diagnostic is enabled by default.
4372 **Diagnostic text:**
4374 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4375 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`|
4376 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4379 -Wgnu-zero-line-directive
4380 -------------------------
4381 **Diagnostic text:**
4383 +--------------------------------------------------------------------------------------------+
4384 |:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
4385 +--------------------------------------------------------------------------------------------+
4388 -Wgnu-zero-variadic-macro-arguments
4389 -----------------------------------
4390 **Diagnostic text:**
4392 +---------------------------------------------------------------------------------------------------------------+
4393 |:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
4394 +---------------------------------------------------------------------------------------------------------------+
4396 +---------------------------------------------------------------------------------------------------+
4397 |:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
4398 +---------------------------------------------------------------------------------------------------+
4403 This diagnostic is enabled by default.
4405 **Diagnostic text:**
4407 +---------------------------------------------------------------------------------------------------------------------------------------+
4408 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
4409 +---------------------------------------------------------------------------------------------------------------------------------------+
4414 **Diagnostic text:**
4416 +--------------------------------------------------------------------------------------------+
4417 |:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
4418 +--------------------------------------------------------------------------------------------+
4421 -Widiomatic-parentheses
4422 -----------------------
4423 **Diagnostic text:**
4425 +-----------------------------------------------------------------------------------------------------------+
4426 |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
4427 +-----------------------------------------------------------------------------------------------------------+
4430 -Wignored-attributes
4431 --------------------
4432 This diagnostic is enabled by default.
4434 **Diagnostic text:**
4436 +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4437 |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`|
4438 | ||:diagtext:`alias`|| |
4439 | |+-----------------+| |
4440 | ||:diagtext:`ifunc`|| |
4441 | |+-----------------+| |
4442 +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4444 +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4445 |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
4446 | ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
4447 | |+-----------------+| |+--------------------+|
4448 | ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
4449 | |+-----------------+| |+--------------------+|
4450 +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
4452 +----------------------------------------------------------------------+------------------------+-------------------------------------+
4453 |:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
4454 | ||:diagtext:`non-inline`|| |
4455 | |+----------------------+| |
4456 | ||:diagtext:`anonymous` || |
4457 | |+----------------------+| |
4458 +----------------------------------------------------------------------+------------------------+-------------------------------------+
4460 +-----------------------------------------------------------------------------------------------------------------------+
4461 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
4462 +-----------------------------------------------------------------------------------------------------------------------+
4464 +--------------------------------------------------------------------------------------------------------------------------------+
4465 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
4466 +--------------------------------------------------------------------------------------------------------------------------------+
4468 +--------------------------------------------------------------------------------+
4469 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
4470 +--------------------------------------------------------------------------------+
4472 +--------------------------------------------------------------------------------------------------------------------------+
4473 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
4474 +--------------------------------------------------------------------------------------------------------------------------+
4476 +---------------------------------------------------------------------------------------------------+
4477 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
4478 +---------------------------------------------------------------------------------------------------+
4480 +-------------------------------------------------------------------------------------------------------------------+
4481 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
4482 +-------------------------------------------------------------------------------------------------------------------+
4484 +------------------------------------------------------------------------------------------------------------------------------------------------+
4485 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
4486 +------------------------------------------------------------------------------------------------------------------------------------------------+
4488 +--------------------------------------------------------------------------------------------------------+
4489 |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
4490 +--------------------------------------------------------------------------------------------------------+
4492 +-----------------------------------------------------------------------------------------------------+
4493 |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
4494 +-----------------------------------------------------------------------------------------------------+
4496 +--------------------------------------------------------------------------------------------------+
4497 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
4498 +--------------------------------------------------------------------------------------------------+
4500 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4501 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
4502 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4504 +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4505 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
4507 | |+----------------------------+| |
4508 | || |nbsp| :diagtext:`constant`|| |
4509 | |+----------------------------+| |
4510 +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
4512 +------------------------------------------------------------------------------------+
4513 |:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
4514 +------------------------------------------------------------------------------------+
4516 +------------------------------------------------------------------------------------------------------------------------+
4517 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
4518 +------------------------------------------------------------------------------------------------------------------------+
4520 +--------------------------------------------------------------------------------------------------------------------------------------+
4521 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
4522 +--------------------------------------------------------------------------------------------------------------------------------------+
4524 +------------------------------------------------------------------------------------+
4525 |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
4526 +------------------------------------------------------------------------------------+
4528 +-----------------------------------------------------------------------------------------------+-----------------------+
4529 |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
4530 | ||:diagtext:`functions`||
4531 | |+---------------------+|
4532 | ||:diagtext:`blocks` ||
4533 | |+---------------------+|
4534 +-----------------------------------------------------------------------------------------------+-----------------------+
4536 +------------------------------------------------------------------------------------------------------------------------+
4537 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
4538 +------------------------------------------------------------------------------------------------------------------------+
4540 +---------------------------------------------------------------------------------+
4541 |:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
4542 +---------------------------------------------------------------------------------+
4544 +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4545 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
4546 | ||:diagtext:`functions` || |
4547 | |+------------------------------+| |
4548 | ||:diagtext:`Objective-C method`|| |
4549 | |+------------------------------+| |
4550 +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
4552 +----------------------------------------------------------------------------------------------------+
4553 |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
4554 +----------------------------------------------------------------------------------------------------+
4556 +------------------------------------------------------------------------------------------------------------------------------+
4557 |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
4558 +------------------------------------------------------------------------------------------------------------------------------+
4560 +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4561 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
4562 | ||:diagtext:`functions` ||
4563 | |+----------------------------------------------------------------------------------------------------------------+|
4564 | ||:diagtext:`unions` ||
4565 | |+----------------------------------------------------------------------------------------------------------------+|
4566 | ||:diagtext:`variables and functions` ||
4567 | |+----------------------------------------------------------------------------------------------------------------+|
4568 | ||:diagtext:`functions and global variables` ||
4569 | |+----------------------------------------------------------------------------------------------------------------+|
4570 | ||:diagtext:`functions, variables, and Objective-C interfaces` ||
4571 | |+----------------------------------------------------------------------------------------------------------------+|
4572 | ||:diagtext:`functions and methods` ||
4573 | |+----------------------------------------------------------------------------------------------------------------+|
4574 | ||:diagtext:`parameters` ||
4575 | |+----------------------------------------------------------------------------------------------------------------+|
4576 | ||:diagtext:`functions, methods and blocks` ||
4577 | |+----------------------------------------------------------------------------------------------------------------+|
4578 | ||:diagtext:`functions, methods, and classes` ||
4579 | |+----------------------------------------------------------------------------------------------------------------+|
4580 | ||:diagtext:`functions, methods, and parameters` ||
4581 | |+----------------------------------------------------------------------------------------------------------------+|
4582 | ||:diagtext:`functions, methods, and global variables` ||
4583 | |+----------------------------------------------------------------------------------------------------------------+|
4584 | ||:diagtext:`classes` ||
4585 | |+----------------------------------------------------------------------------------------------------------------+|
4586 | ||:diagtext:`enums` ||
4587 | |+----------------------------------------------------------------------------------------------------------------+|
4588 | ||:diagtext:`variables` ||
4589 | |+----------------------------------------------------------------------------------------------------------------+|
4590 | ||:diagtext:`methods` ||
4591 | |+----------------------------------------------------------------------------------------------------------------+|
4592 | ||:diagtext:`fields and global variables` ||
4593 | |+----------------------------------------------------------------------------------------------------------------+|
4594 | ||:diagtext:`structs` ||
4595 | |+----------------------------------------------------------------------------------------------------------------+|
4596 | ||:diagtext:`parameters and typedefs` ||
4597 | |+----------------------------------------------------------------------------------------------------------------+|
4598 | ||:diagtext:`variables and typedefs` ||
4599 | |+----------------------------------------------------------------------------------------------------------------+|
4600 | ||:diagtext:`thread-local variables` ||
4601 | |+----------------------------------------------------------------------------------------------------------------+|
4602 | ||:diagtext:`variables and fields` ||
4603 | |+----------------------------------------------------------------------------------------------------------------+|
4604 | ||:diagtext:`variables, data members and tag types` ||
4605 | |+----------------------------------------------------------------------------------------------------------------+|
4606 | ||:diagtext:`types and namespaces` ||
4607 | |+----------------------------------------------------------------------------------------------------------------+|
4608 | ||:diagtext:`Objective-C interfaces` ||
4609 | |+----------------------------------------------------------------------------------------------------------------+|
4610 | ||:diagtext:`methods and properties` ||
4611 | |+----------------------------------------------------------------------------------------------------------------+|
4612 | ||:diagtext:`functions, methods, and properties` ||
4613 | |+----------------------------------------------------------------------------------------------------------------+|
4614 | ||:diagtext:`struct or union` ||
4615 | |+----------------------------------------------------------------------------------------------------------------+|
4616 | ||:diagtext:`struct, union or class` ||
4617 | |+----------------------------------------------------------------------------------------------------------------+|
4618 | ||:diagtext:`types` ||
4619 | |+----------------------------------------------------------------------------------------------------------------+|
4620 | ||:diagtext:`Objective-C instance methods` ||
4621 | |+----------------------------------------------------------------------------------------------------------------+|
4622 | ||:diagtext:`init methods of interface or class extension declarations` ||
4623 | |+----------------------------------------------------------------------------------------------------------------+|
4624 | ||:diagtext:`variables, functions and classes` ||
4625 | |+----------------------------------------------------------------------------------------------------------------+|
4626 | ||:diagtext:`functions, variables, classes, and Objective-C interfaces` ||
4627 | |+----------------------------------------------------------------------------------------------------------------+|
4628 | ||:diagtext:`Objective-C protocols` ||
4629 | |+----------------------------------------------------------------------------------------------------------------+|
4630 | ||:diagtext:`variables with static or thread storage duration` ||
4631 | |+----------------------------------------------------------------------------------------------------------------+|
4632 | ||:diagtext:`functions, methods, properties, and global variables` ||
4633 | |+----------------------------------------------------------------------------------------------------------------+|
4634 | ||:diagtext:`structs, unions, and typedefs` ||
4635 | |+----------------------------------------------------------------------------------------------------------------+|
4636 | ||:diagtext:`structs and typedefs` ||
4637 | |+----------------------------------------------------------------------------------------------------------------+|
4638 | ||:diagtext:`interface or protocol declarations` ||
4639 | |+----------------------------------------------------------------------------------------------------------------+|
4640 | ||:diagtext:`kernel functions` ||
4641 | |+----------------------------------------------------------------------------------------------------------------+|
4642 | ||:diagtext:`non-K&R-style functions` ||
4643 | |+----------------------------------------------------------------------------------------------------------------+|
4644 | ||:diagtext:`variables, enums, fields and typedefs` ||
4645 | |+----------------------------------------------------------------------------------------------------------------+|
4646 | ||:diagtext:`functions, methods, enums, and classes` ||
4647 | |+----------------------------------------------------------------------------------------------------------------+|
4648 | ||:diagtext:`structs, classes, variables, functions, and inline namespaces` ||
4649 | |+----------------------------------------------------------------------------------------------------------------+|
4650 | ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
4651 | |+----------------------------------------------------------------------------------------------------------------+|
4652 | ||:diagtext:`classes and enumerations` ||
4653 | |+----------------------------------------------------------------------------------------------------------------+|
4654 | ||:diagtext:`named declarations` ||
4655 | |+----------------------------------------------------------------------------------------------------------------+|
4656 +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4658 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4659 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
4660 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
4662 +----------------------------------------------------------------------------------------------------------------------------+
4663 |:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
4664 +----------------------------------------------------------------------------------------------------------------------------+
4666 +-------------------------------------------------------------------------------------------------------------------+
4667 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
4668 +-------------------------------------------------------------------------------------------------------------------+
4670 +--------------------------------------------------------------------------------------------------------------+
4671 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
4672 +--------------------------------------------------------------------------------------------------------------+
4674 +-------------------------------------------------------------------------------------------------------------------------------------------+
4675 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
4676 +-------------------------------------------------------------------------------------------------------------------------------------------+
4678 +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4679 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
4680 | ||:diagtext:`class` || |
4681 | |+---------------------+| |
4682 | ||:diagtext:`struct` || |
4683 | |+---------------------+| |
4684 | ||:diagtext:`interface`|| |
4685 | |+---------------------+| |
4686 | ||:diagtext:`union` || |
4687 | |+---------------------+| |
4688 | ||:diagtext:`enum` || |
4689 | |+---------------------+| |
4690 +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
4692 +--------------------------------------------------------------------------------------------+
4693 |:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
4694 +--------------------------------------------------------------------------------------------+
4696 +----------------------------------------------------------------------------------------------------------------------------------------------+
4697 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
4698 +----------------------------------------------------------------------------------------------------------------------------------------------+
4700 +----------------------------------------------------------------------------------------------------------------------------------------+
4701 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
4702 +----------------------------------------------------------------------------------------------------------------------------------------+
4704 +--------------------------------------------------------------------------------------------------------------+
4705 |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
4706 +--------------------------------------------------------------------------------------------------------------+
4708 +------------------------------------------------------------------------------------------------+
4709 |:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
4710 +------------------------------------------------------------------------------------------------+
4712 +-------------------------------------------------------------------------------------------------------------------------+
4713 |:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
4714 +-------------------------------------------------------------------------------------------------------------------------+
4716 +---------------------------------------------------------------------------+------------------------------------+
4717 |:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
4718 | ||:diagtext:`primary template` ||
4719 | |+----------------------------------+|
4720 | ||:diagtext:`partial specialization`||
4721 | |+----------------------------------+|
4722 +---------------------------------------------------------------------------+------------------------------------+
4724 +--------------------------------------------------------------------------------------------------------------+
4725 |:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
4726 +--------------------------------------------------------------------------------------------------------------+
4728 +--------------------------------------------------------------------------------------------+
4729 |:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
4730 +--------------------------------------------------------------------------------------------+
4732 +-------------------------------------------------------------------------------------------------------------+----------------------------------+
4733 |:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
4734 | ||:diagtext:`no parameters` ||
4735 | |+--------------------------------+|
4736 | ||:diagtext:`a 'void' return type`||
4737 | |+--------------------------------+|
4738 +-------------------------------------------------------------------------------------------------------------+----------------------------------+
4740 +---------------------------------------------------------------------------------------+
4741 |:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
4742 +---------------------------------------------------------------------------------------+
4744 +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4745 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
4746 | ||:diagtext:`Objective-C object` || |
4747 | |+---------------------------------+| |
4748 | ||:diagtext:`pointer` || |
4749 | |+---------------------------------+| |
4750 | ||:diagtext:`pointer-to-CF-pointer`|| |
4751 | |+---------------------------------+| |
4752 +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
4754 +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4755 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
4756 | ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` ||
4757 | |+----------------------+| |+------------------------------------+|
4758 | ||:diagtext:`methods` || ||:diagtext:`a pointer` ||
4759 | |+----------------------+| |+------------------------------------+|
4760 | ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`||
4761 | |+----------------------+| |+------------------------------------+|
4762 +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
4764 +--------------------------------------------------------------------------------------------------------------------------------------------+
4765 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
4766 +--------------------------------------------------------------------------------------------------------------------------------------------+
4768 +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4769 |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`|
4770 | ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
4771 | |+---------------------+| |+---------------------+| |
4772 | ||:diagtext:`size` || ||:diagtext:`size` || |
4773 | |+---------------------+| |+---------------------+| |
4774 +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
4776 +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4777 |:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
4778 | ||:diagtext:`floating point`|| |
4779 | |+--------------------------+| |
4780 | ||:diagtext:`vector` || |
4781 | |+--------------------------+| |
4782 +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
4784 +--------------------------------------------------------------------------------------------------------------------------------+
4785 |:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
4786 +--------------------------------------------------------------------------------------------------------------------------------+
4788 +-----------------------------------------------------------------------------------------------------------------------------------------+
4789 |:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
4790 +-----------------------------------------------------------------------------------------------------------------------------------------+
4792 +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4793 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
4794 | ||:diagtext:`function` || |
4795 | |+-----------------------------------------------+| |
4796 | ||:diagtext:`pointer` || |
4797 | |+-----------------------------------------------+| |
4798 | ||:diagtext:`Objective-C object or block pointer`|| |
4799 | |+-----------------------------------------------+| |
4800 +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
4802 +-------------------------------------------------------------------------------------------------------------------------+
4803 |:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
4804 +-------------------------------------------------------------------------------------------------------------------------+
4806 +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
4807 |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`|
4808 | ||:diagtext:`unsupported`||| || |
4809 | |+-----------------------+|+--------------------------------+| |
4810 | ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
4811 | |+-----------------------+|+--------------------------------+| |
4812 +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
4815 -Wignored-optimization-argument
4816 -------------------------------
4817 This diagnostic is enabled by default.
4819 **Diagnostic text:**
4821 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4822 |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
4823 +--------------------------------------------------------------------------------------------------------------------------------------------------+
4825 +--------------------------------------------------------------------------------------------------------+
4826 |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
4827 +--------------------------------------------------------------------------------------------------------+
4830 -Wignored-pragma-intrinsic
4831 --------------------------
4832 This diagnostic is enabled by default.
4834 **Diagnostic text:**
4836 +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
4837 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
4839 | |+----------------------------------------------------------------------------+|
4840 | ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
4841 | |+----------------------------------------------------------------------------+|
4842 +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
4847 This diagnostic is enabled by default.
4849 Also controls `-Wignored-pragma-intrinsic`_.
4851 **Diagnostic text:**
4853 +------------------------------------------------------------------------------+---------------------------+-----------------------+
4854 |:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4855 | ||:diagtext:`align` || |
4856 | |+-------------------------+| |
4857 | ||:diagtext:`options align`|| |
4858 | |+-------------------------+| |
4859 +------------------------------------------------------------------------------+---------------------------+-----------------------+
4861 +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4862 |:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
4863 | ||:diagtext:`align` || |
4864 | |+-------------------------+| |
4865 | ||:diagtext:`options align`|| |
4866 | |+-------------------------+| |
4867 +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
4869 +-----------------------------------------------------------------------------------------------------------+
4870 |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
4871 +-----------------------------------------------------------------------------------------------------------+
4873 +----------------------------------------------------------------------------------------------------+
4874 |:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
4875 +----------------------------------------------------------------------------------------------------+
4877 +-------------------------------------------------------------------------------------------------------+
4878 |:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
4879 +-------------------------------------------------------------------------------------------------------+
4881 +----------------------------------------------------------------------------------------------+
4882 |:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
4883 +----------------------------------------------------------------------------------------------+
4885 +------------------------------------------------------------------------------------------------------------------------+
4886 |:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4887 +------------------------------------------------------------------------------------------------------------------------+
4889 +--------------------------------------------------------------------------------------------------------------+
4890 |:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4891 +--------------------------------------------------------------------------------------------------------------+
4893 +---------------------------------------------------------------------------------------------------------------------+
4894 |:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4895 +---------------------------------------------------------------------------------------------------------------------+
4897 +---------------------------------------------------------------------------------------------------------------------+
4898 |:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4899 +---------------------------------------------------------------------------------------------------------------------+
4901 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4902 |:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4903 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4905 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4906 |:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`|
4907 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4909 +-----------------------------------------------------------------------------------------------------------------+
4910 |:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4911 +-----------------------------------------------------------------------------------------------------------------+
4913 +------------------------------------------------------------------------------------------------------------------------+
4914 |:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4915 +------------------------------------------------------------------------------------------------------------------------+
4917 +-------------------------------------------------------+---------------------------------------------------+------------------------------+
4918 |:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
4919 | ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| |
4920 | |+-------------------------------------------------+| |
4921 | ||:diagtext:`'disable'` || |
4922 | |+-------------------------------------------------+| |
4923 +-------------------------------------------------------+---------------------------------------------------+------------------------------+
4925 +-----------------------------------------------------------------------------------------------------------+
4926 |:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
4927 +-----------------------------------------------------------------------------------------------------------+
4929 +-----------------------------------------------------------------------------------------------------------------+
4930 |:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
4931 +-----------------------------------------------------------------------------------------------------------------+
4933 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4934 |:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4935 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
4937 +------------------------------------------------------------------------------------------------------------------------------------------------+
4938 |:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4939 +------------------------------------------------------------------------------------------------------------------------------------------------+
4941 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4942 |:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4943 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
4945 +---------------------------------------------------------------------------------------------------------------------+
4946 |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4947 +---------------------------------------------------------------------------------------------------------------------+
4949 +----------------------------------------------------------------------------------------------------------+
4950 |:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
4951 +----------------------------------------------------------------------------------------------------------+
4953 +-------------------------------------------------------------------------------------------------------------------+
4954 |:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
4955 +-------------------------------------------------------------------------------------------------------------------+
4957 +-----------------------------------------------------------------------------------------------------------------+
4958 |:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4959 +-----------------------------------------------------------------------------------------------------------------+
4961 +------------------------------------------------------------------------------------------------------------------------------------------------+
4962 |:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4963 +------------------------------------------------------------------------------------------------------------------------------------------------+
4965 +----------------------------------------------------------------------------------------------+
4966 |:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
4967 +----------------------------------------------------------------------------------------------+
4969 +--------------------------------------------------------------------------------------------------+
4970 |:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
4971 +--------------------------------------------------------------------------------------------------+
4973 +---------------------------------------------------------------------------------------------+
4974 |:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
4975 +---------------------------------------------------------------------------------------------+
4977 +--------------------------------------------------------------------------------------------------------+
4978 |:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
4979 +--------------------------------------------------------------------------------------------------------+
4981 +-------------------------------------------------------------------------------------------------+
4982 |:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
4983 +-------------------------------------------------------------------------------------------------+
4985 +----------------------------------------------------------------------------------------------------------------------------+
4986 |:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
4987 +----------------------------------------------------------------------------------------------------------------------------+
4989 +------------------------------------------------------------------------------------------------------------------------------+
4990 |:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
4991 +------------------------------------------------------------------------------------------------------------------------------+
4993 +---------------------------------------------------------------------------------------------------------------------+
4994 |:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
4995 +---------------------------------------------------------------------------------------------------------------------+
4997 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
4998 |:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
4999 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
5001 +-------------------------------------------------------------------------------------------------------------------------+
5002 |:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
5003 +-------------------------------------------------------------------------------------------------------------------------+
5005 +-----------------------------------------------------------------------------------------------+
5006 |:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
5007 +-----------------------------------------------------------------------------------------------+
5009 +------------------------------------------------------------------------------------------+
5010 |:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
5011 +------------------------------------------------------------------------------------------+
5013 +----------------------------------------------------------------------------------------------------------------------------------------------+
5014 |:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
5015 +----------------------------------------------------------------------------------------------------------------------------------------------+
5018 -Wignored-qualifiers
5019 --------------------
5020 Some of the diagnostics controlled by this flag are enabled by default.
5022 **Diagnostic text:**
5024 +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5025 |:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
5026 | ||:diagtext:`unused` || |
5027 | |+----------------------------------+| |
5028 | ||:diagtext:`\_\_unsafe\_unretained`|| |
5029 | |+----------------------------------+| |
5030 | ||:diagtext:`\_\_strong` || |
5031 | |+----------------------------------+| |
5032 | ||:diagtext:`\_\_weak` || |
5033 | |+----------------------------------+| |
5034 | ||:diagtext:`\_\_autoreleasing` || |
5035 | |+----------------------------------+| |
5036 +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
5038 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5039 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5040 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
5042 +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
5043 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
5044 | || || ||:diagtext:`:has` || |
5045 | |+-------------+| |+-----------------+| |
5046 | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
5047 | |+-------------+| |+-----------------+| |
5048 +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
5050 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
5051 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5052 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
5054 +----------------------------------------------------------------------------------------------------------------------------------------------------------+
5055 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
5056 +----------------------------------------------------------------------------------------------------------------------------------------------------------+
5061 Some of the diagnostics controlled by this flag are enabled by default.
5063 Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
5066 -Wimplicit-atomic-properties
5067 ----------------------------
5068 **Diagnostic text:**
5070 +-----------------------------------------------------------------------------------------------------+
5071 |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
5072 +-----------------------------------------------------------------------------------------------------+
5074 +----------------------------------------------------------------------------+
5075 |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
5076 +----------------------------------------------------------------------------+
5079 -Wimplicit-conversion-floating-point-to-bool
5080 --------------------------------------------
5081 This diagnostic is enabled by default.
5083 **Diagnostic text:**
5085 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5086 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
5087 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5090 -Wimplicit-exception-spec-mismatch
5091 ----------------------------------
5092 This diagnostic is enabled by default.
5094 **Diagnostic text:**
5096 +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5097 |:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
5098 | ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| |
5099 | |+--------------------+| |+--------------------+| |
5100 | ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| |
5101 | |+--------------------+| |+--------------------+| |
5102 +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
5105 -Wimplicit-fallthrough
5106 ----------------------
5107 Also controls `-Wimplicit-fallthrough-per-function`_.
5109 **Diagnostic text:**
5111 +---------------------------------------------------------------------------------+
5112 |:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
5113 +---------------------------------------------------------------------------------+
5115 +-------------------------------------------------------------------------------------+
5116 |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
5117 +-------------------------------------------------------------------------------------+
5120 -Wimplicit-fallthrough-per-function
5121 -----------------------------------
5122 **Diagnostic text:**
5124 +------------------------------------------------------------------------------------------------------------------+
5125 |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
5126 +------------------------------------------------------------------------------------------------------------------+
5129 -Wimplicit-function-declaration
5130 -------------------------------
5131 Some of the diagnostics controlled by this flag are enabled by default.
5133 **Diagnostic text:**
5135 +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
5136 |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+|
5137 | ||:diagtext:`C99` ||
5138 | |+------------------+|
5139 | ||:diagtext:`OpenCL`||
5140 | |+------------------+|
5141 +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
5143 +---------------------------------------------------------------------------------------------------------------------------------------------+
5144 |:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
5145 +---------------------------------------------------------------------------------------------------------------------------------------------+
5147 +---------------------------------------------------------------------------------+
5148 |:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
5149 +---------------------------------------------------------------------------------+
5151 +-----------------------------------------------------------------------------------------------+
5152 |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
5153 +-----------------------------------------------------------------------------------------------+
5158 This diagnostic is enabled by default.
5160 **Diagnostic text:**
5162 +--------------------------------------------------------------------------------+
5163 |:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
5164 +--------------------------------------------------------------------------------+
5167 -Wimplicit-retain-self
5168 ----------------------
5169 **Diagnostic text:**
5171 +---------------------------------------------------------------------------------------------------------------------------------------+
5172 |:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
5173 +---------------------------------------------------------------------------------------------------------------------------------------+
5176 -Wimplicitly-unsigned-literal
5177 -----------------------------
5178 This diagnostic is enabled by default.
5180 **Diagnostic text:**
5182 +----------------------------------------------------------------------------------------------------------------------------------------+
5183 |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
5184 +----------------------------------------------------------------------------------------------------------------------------------------+
5189 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5191 -Wimport-preprocessor-directive-pedantic
5192 ----------------------------------------
5193 **Diagnostic text:**
5195 +----------------------------------------------------------------------+
5196 |:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
5197 +----------------------------------------------------------------------+
5202 This diagnostic is enabled by default.
5204 **Diagnostic text:**
5206 +-----------------------------------------------------------------------------------------------------------------------------------------------+
5207 |:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
5208 +-----------------------------------------------------------------------------------------------------------------------------------------------+
5211 -Winclude-next-absolute-path
5212 ----------------------------
5213 This diagnostic is enabled by default.
5215 **Diagnostic text:**
5217 +------------------------------------------------------------------------+
5218 |:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
5219 +------------------------------------------------------------------------+
5222 -Winclude-next-outside-header
5223 -----------------------------
5224 This diagnostic is enabled by default.
5226 **Diagnostic text:**
5228 +----------------------------------------------------------------------------+
5229 |:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
5230 +----------------------------------------------------------------------------+
5233 -Wincompatible-exception-spec
5234 -----------------------------
5235 This diagnostic is enabled by default.
5237 **Diagnostic text:**
5239 +--------------------------------------------------------------------------+----------------------+--------------------------------+
5240 |:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
5241 | ||:diagtext:`return` || |
5242 | |+--------------------+| |
5243 | ||:diagtext:`argument`|| |
5244 | |+--------------------+| |
5245 +--------------------------------------------------------------------------+----------------------+--------------------------------+
5247 +-----------------------------------------------------------------------------------------------+
5248 |:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
5249 +-----------------------------------------------------------------------------------------------+
5252 -Wincompatible-function-pointer-types
5253 -------------------------------------
5254 This diagnostic is enabled by default.
5256 **Diagnostic text:**
5258 +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5259 |:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5260 | ||:diagtext:`assigning to different types` ||| ||
5261 | |+--------------------------------------------------------------+|+-------------------------------------+|
5262 | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5263 | |+--------------------------------------------------------------+|+-------------------------------------+|
5264 | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5265 | |+--------------------------------------------------------------+|+-------------------------------------+|
5266 | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5267 | |+--------------------------------------------------------------+|+-------------------------------------+|
5268 | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5269 | |+--------------------------------------------------------------+|+-------------------------------------+|
5270 | ||:diagtext:`sending to parameter of different type` || |
5271 | |+--------------------------------------------------------------+| |
5272 | ||:diagtext:`casting between types` || |
5273 | |+--------------------------------------------------------------+| |
5274 +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5277 -Wincompatible-library-redeclaration
5278 ------------------------------------
5279 This diagnostic is enabled by default.
5281 **Diagnostic text:**
5283 +-------------------------------------------------------------------------------------------------------------+
5284 |:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
5285 +-------------------------------------------------------------------------------------------------------------+
5288 -Wincompatible-ms-struct
5289 ------------------------
5290 This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
5292 **Diagnostic text:**
5294 +---------------------------------------------------------------------------------------------------------------------------------------------+
5295 |:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
5296 +---------------------------------------------------------------------------------------------------------------------------------------------+
5299 -Wincompatible-pointer-types
5300 ----------------------------
5301 This diagnostic is enabled by default.
5303 Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
5305 **Diagnostic text:**
5307 +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5308 |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5309 | ||:diagtext:`assigning to different types` ||| ||
5310 | |+--------------------------------------------------------------+|+-------------------------------------+|
5311 | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5312 | |+--------------------------------------------------------------+|+-------------------------------------+|
5313 | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5314 | |+--------------------------------------------------------------+|+-------------------------------------+|
5315 | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5316 | |+--------------------------------------------------------------+|+-------------------------------------+|
5317 | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5318 | |+--------------------------------------------------------------+|+-------------------------------------+|
5319 | ||:diagtext:`sending to parameter of different type` || |
5320 | |+--------------------------------------------------------------+| |
5321 | ||:diagtext:`casting between types` || |
5322 | |+--------------------------------------------------------------+| |
5323 +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5326 -Wincompatible-pointer-types-discards-qualifiers
5327 ------------------------------------------------
5328 This diagnostic is enabled by default.
5330 **Diagnostic text:**
5332 +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5333 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
5334 | ||:diagtext:`assigning to different types` || |
5335 | |+--------------------------------------------------------------+| |
5336 | ||:diagtext:`passing to parameter of different type` || |
5337 | |+--------------------------------------------------------------+| |
5338 | ||:diagtext:`returning from function with different return type`|| |
5339 | |+--------------------------------------------------------------+| |
5340 | ||:diagtext:`converting between types` || |
5341 | |+--------------------------------------------------------------+| |
5342 | ||:diagtext:`initializing with expression of different type` || |
5343 | |+--------------------------------------------------------------+| |
5344 | ||:diagtext:`sending to parameter of different type` || |
5345 | |+--------------------------------------------------------------+| |
5346 | ||:diagtext:`casting between types` || |
5347 | |+--------------------------------------------------------------+| |
5348 +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
5350 +---------------------------+----------------------------------------------------------------+---------------------------------------+
5351 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
5352 | ||:diagtext:`assigning to different types` || |
5353 | |+--------------------------------------------------------------+| |
5354 | ||:diagtext:`passing to parameter of different type` || |
5355 | |+--------------------------------------------------------------+| |
5356 | ||:diagtext:`returning from function with different return type`|| |
5357 | |+--------------------------------------------------------------+| |
5358 | ||:diagtext:`converting between types` || |
5359 | |+--------------------------------------------------------------+| |
5360 | ||:diagtext:`initializing with expression of different type` || |
5361 | |+--------------------------------------------------------------+| |
5362 | ||:diagtext:`sending to parameter of different type` || |
5363 | |+--------------------------------------------------------------+| |
5364 | ||:diagtext:`casting between types` || |
5365 | |+--------------------------------------------------------------+| |
5366 +---------------------------+----------------------------------------------------------------+---------------------------------------+
5369 -Wincompatible-property-type
5370 ----------------------------
5371 This diagnostic is enabled by default.
5373 **Diagnostic text:**
5375 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5376 |:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`|
5377 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5380 -Wincompatible-sysroot
5381 ----------------------
5382 This diagnostic is enabled by default.
5384 **Diagnostic text:**
5386 +------------------------------------------------------------------------------------------------------------------------------------+
5387 |:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
5388 +------------------------------------------------------------------------------------------------------------------------------------+
5391 -Wincomplete-implementation
5392 ---------------------------
5393 This diagnostic is enabled by default.
5395 **Diagnostic text:**
5397 +-----------------------------------------------------------------------------------------------------------------+
5398 |:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
5399 +-----------------------------------------------------------------------------------------------------------------+
5404 Some of the diagnostics controlled by this flag are enabled by default.
5406 Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
5409 -Wincomplete-umbrella
5410 ---------------------
5411 This diagnostic is enabled by default.
5413 **Diagnostic text:**
5415 +---------------------------------------------------------------------------------------+
5416 |:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
5417 +---------------------------------------------------------------------------------------+
5419 +--------------------------------------------------------------------------------------------------+
5420 |:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
5421 +--------------------------------------------------------------------------------------------------+
5423 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
5424 |:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
5425 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
5428 -Winconsistent-dllimport
5429 ------------------------
5430 This diagnostic is enabled by default.
5432 **Diagnostic text:**
5434 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5435 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
5436 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5438 +------------------------------------------------------------------------------------------------------------------------------------+
5439 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
5440 +------------------------------------------------------------------------------------------------------------------------------------+
5443 -Winconsistent-missing-destructor-override
5444 ------------------------------------------
5445 **Diagnostic text:**
5447 +------------------------------------------------------------------------------------------------------------------+
5448 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
5449 +------------------------------------------------------------------------------------------------------------------+
5452 -Winconsistent-missing-override
5453 -------------------------------
5454 This diagnostic is enabled by default.
5456 **Diagnostic text:**
5458 +-----------------------------------------------------------------------------------------------------------------------+
5459 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
5460 +-----------------------------------------------------------------------------------------------------------------------+
5465 This diagnostic is enabled by default.
5467 Also controls `-Wdeprecated-increment-bool`_.
5469 **Diagnostic text:**
5471 +------------------------------------------------------------------------------------------------+
5472 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
5473 +------------------------------------------------------------------------------------------------+
5476 -Winfinite-recursion
5477 --------------------
5478 **Diagnostic text:**
5480 +---------------------------------------------------------------------------------------+
5481 |:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
5482 +---------------------------------------------------------------------------------------+
5487 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5489 -Winitializer-overrides
5490 -----------------------
5491 This diagnostic is enabled by default.
5493 **Diagnostic text:**
5495 +---------------------------------------------------------------------------------------------------+
5496 |:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
5497 +---------------------------------------------------------------------------------------------------+
5499 +---------------------------------------------------------------------------------------------------------------------------------------+
5500 |:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
5501 +---------------------------------------------------------------------------------------------------------------------------------------+
5504 -Winjected-class-name
5505 ---------------------
5506 This diagnostic is enabled by default.
5508 **Diagnostic text:**
5510 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5511 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`|
5512 | ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| |
5513 | |+-------------------------+| |+----------------------+| |
5514 | ||:diagtext:`type` || ||:diagtext:`'template'`|| |
5515 | |+-------------------------+| |+----------------------+| |
5516 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
5521 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5525 This diagnostic is enabled by default.
5527 **Diagnostic text:**
5529 The text of this diagnostic is not controlled by Clang.
5534 This diagnostic is enabled by default.
5536 **Diagnostic text:**
5538 +----------------------------------------------------------------------------------------------------------------------------------+
5539 |:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
5540 +----------------------------------------------------------------------------------------------------------------------------------+
5543 -Winstantiation-after-specialization
5544 ------------------------------------
5545 This diagnostic is enabled by default.
5547 **Diagnostic text:**
5549 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5550 |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
5551 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5556 This diagnostic is enabled by default.
5558 **Diagnostic text:**
5560 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5561 |:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5562 | ||:diagtext:`assigning to different types` ||| ||
5563 | |+--------------------------------------------------------------+|+-------------------------------------+|
5564 | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5565 | |+--------------------------------------------------------------+|+-------------------------------------+|
5566 | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5567 | |+--------------------------------------------------------------+|+-------------------------------------+|
5568 | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5569 | |+--------------------------------------------------------------+|+-------------------------------------+|
5570 | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5571 | |+--------------------------------------------------------------+|+-------------------------------------+|
5572 | ||:diagtext:`sending to parameter of different type` || |
5573 | |+--------------------------------------------------------------+| |
5574 | ||:diagtext:`casting between types` || |
5575 | |+--------------------------------------------------------------+| |
5576 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5578 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5579 |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
5580 | ||:diagtext:`assigning to different types` ||| ||
5581 | |+--------------------------------------------------------------+|+-------------------------------------+|
5582 | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
5583 | |+--------------------------------------------------------------+|+-------------------------------------+|
5584 | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
5585 | |+--------------------------------------------------------------+|+-------------------------------------+|
5586 | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
5587 | |+--------------------------------------------------------------+|+-------------------------------------+|
5588 | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
5589 | |+--------------------------------------------------------------+|+-------------------------------------+|
5590 | ||:diagtext:`sending to parameter of different type` || |
5591 | |+--------------------------------------------------------------+| |
5592 | ||:diagtext:`casting between types` || |
5593 | |+--------------------------------------------------------------+| |
5594 +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
5599 Synonym for `-Wint-conversion`_.
5602 -Wint-to-pointer-cast
5603 ---------------------
5604 This diagnostic is enabled by default.
5606 Also controls `-Wint-to-void-pointer-cast`_.
5608 **Diagnostic text:**
5610 +-------------------------------------------------------------------------------------------------------------------------------------------+
5611 |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5612 +-------------------------------------------------------------------------------------------------------------------------------------------+
5615 -Wint-to-void-pointer-cast
5616 --------------------------
5617 This diagnostic is enabled by default.
5619 **Diagnostic text:**
5621 +-------------------------------------------------------------------------------------------------------------------------------------------+
5622 |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
5623 +-------------------------------------------------------------------------------------------------------------------------------------------+
5628 This diagnostic is enabled by default.
5630 **Diagnostic text:**
5632 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
5633 |:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
5634 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
5637 -Winvalid-command-line-argument
5638 -------------------------------
5639 This diagnostic is enabled by default.
5641 Also controls `-Wignored-optimization-argument`_.
5643 **Diagnostic text:**
5645 +-----------------------------------------------------------------------------------------------------------------------------------------+
5646 |:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
5647 +-----------------------------------------------------------------------------------------------------------------------------------------+
5649 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5650 |:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
5651 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5656 This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
5658 **Diagnostic text:**
5660 +----------------------------------------------------+-------------------------+--------------------------------------------------------+
5661 |:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
5662 | ||:diagtext:`function` || |
5663 | |+-----------------------+| |
5664 | ||:diagtext:`constructor`|| |
5665 | |+-----------------------+| |
5666 +----------------------------------------------------+-------------------------+--------------------------------------------------------+
5671 This diagnostic is enabled by default.
5673 **Diagnostic text:**
5675 +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5676 |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
5677 | ||:diagtext:`instance variable`|| |
5678 | |+-----------------------------+| |
5679 | ||:diagtext:`property` || |
5680 | |+-----------------------------+| |
5681 +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
5683 +---------------------------------------------------------------------------------------------------------+
5684 |:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
5685 +---------------------------------------------------------------------------------------------------------+
5688 -Winvalid-initializer-from-system-header
5689 ----------------------------------------
5690 This diagnostic is enabled by default.
5692 **Diagnostic text:**
5694 +--------------------------------------------------------------------------------------------------------------+
5695 |:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
5696 +--------------------------------------------------------------------------------------------------------------+
5699 -Winvalid-ios-deployment-target
5700 -------------------------------
5701 This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
5703 **Diagnostic text:**
5705 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5706 |:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
5707 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5712 This diagnostic is enabled by default.
5714 **Diagnostic text:**
5716 +-------------------------------------------------------------------------------------+
5717 |:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
5718 +-------------------------------------------------------------------------------------+
5720 +--------------------------------------------------------------------------------------------------------------------------------+
5721 |:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
5722 +--------------------------------------------------------------------------------------------------------------------------------+
5727 This diagnostic is enabled by default.
5729 **Diagnostic text:**
5731 +----------------------------------------------------------------------------------------+
5732 |:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
5733 +----------------------------------------------------------------------------------------+
5735 +----------------------------------------------------------------------------------------------------+
5736 |:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
5737 +----------------------------------------------------------------------------------------------------+
5740 -Winvalid-or-nonexistent-directory
5741 ----------------------------------
5742 Some of the diagnostics controlled by this flag are enabled by default.
5744 **Diagnostic text:**
5746 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5747 |:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
5748 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5750 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5751 |:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
5752 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
5755 -Winvalid-partial-specialization
5756 --------------------------------
5757 This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
5759 **Diagnostic text:**
5761 +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
5762 |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
5763 | ||:diagtext:`class` || |
5764 | |+--------------------+| |
5765 | ||:diagtext:`variable`|| |
5766 | |+--------------------+| |
5767 +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
5772 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5776 This diagnostic is enabled by default.
5778 **Diagnostic text:**
5780 +---------------------------------------------------------------+
5781 |:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
5782 +---------------------------------------------------------------+
5784 +------------------------------------------------------------------+-----------------+-----------------------------+
5785 |:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
5786 | ||:diagtext:`'` || |
5787 | |+---------------+| |
5788 | ||:diagtext:`'"'`|| |
5789 | |+---------------+| |
5790 +------------------------------------------------------------------+-----------------+-----------------------------+
5793 -Winvalid-source-encoding
5794 -------------------------
5795 This diagnostic is enabled by default.
5797 **Diagnostic text:**
5799 +--------------------------------------------------------------------------------------+
5800 |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
5801 +--------------------------------------------------------------------------------------+
5803 +-----------------------------------------------------------------------------------+
5804 |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
5805 +-----------------------------------------------------------------------------------+
5808 -Winvalid-token-paste
5809 ---------------------
5810 This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
5812 **Diagnostic text:**
5814 +----------------------------------------------------------------------------------------------------------------+
5815 |:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
5816 +----------------------------------------------------------------------------------------------------------------+
5821 This diagnostic is enabled by default.
5823 **Diagnostic text:**
5825 +-------------------------------------------------------------------------------------------+
5826 |:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
5827 +-------------------------------------------------------------------------------------------+
5832 This diagnostic is enabled by default.
5834 **Diagnostic text:**
5836 +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5837 |:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
5838 | ||:diagtext:`here` ||
5839 | |+-----------------------------------------------------+|
5840 | ||:diagtext:`for the remainder of the translation unit`||
5841 | |+-----------------------------------------------------+|
5842 +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
5847 **Diagnostic text:**
5849 +----------------------------------------------------------------------------+
5850 |:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
5851 +----------------------------------------------------------------------------+
5854 -Wknr-promoted-parameter
5855 ------------------------
5856 This diagnostic is enabled by default.
5858 **Diagnostic text:**
5860 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5861 |:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
5862 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5865 -Wlanguage-extension-token
5866 --------------------------
5867 **Diagnostic text:**
5869 +-----------------------------------------------------+
5870 |:warning:`warning:` |nbsp| :diagtext:`extension used`|
5871 +-----------------------------------------------------+
5874 -Wlarge-by-value-copy
5875 ---------------------
5876 This diagnostic is enabled by default.
5878 **Diagnostic text:**
5880 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5881 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
5882 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5884 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5885 |:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`|
5886 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5891 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
5893 -Wliteral-conversion
5894 --------------------
5895 This diagnostic is enabled by default.
5897 **Diagnostic text:**
5899 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5900 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
5901 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5906 This diagnostic is enabled by default.
5908 **Diagnostic text:**
5910 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5911 |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
5912 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5914 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5915 |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
5916 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5919 -Wlocal-type-template-args
5920 --------------------------
5921 Some of the diagnostics controlled by this flag are enabled by default.
5923 Also controls `-Wc++98-compat-local-type-template-args`_.
5925 **Diagnostic text:**
5927 +------------------------------------------------------------------------------------------------+
5928 |:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
5929 +------------------------------------------------------------------------------------------------+
5932 -Wlogical-not-parentheses
5933 -------------------------
5934 This diagnostic is enabled by default.
5936 **Diagnostic text:**
5938 +--------------------------------------------------------------------------------------------------------+------------------------------+
5939 |:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
5940 | ||:diagtext:`comparison` ||
5941 | |+----------------------------+|
5942 | ||:diagtext:`bitwise operator`||
5943 | |+----------------------------+|
5944 +--------------------------------------------------------------------------------------------------------+------------------------------+
5947 -Wlogical-op-parentheses
5948 ------------------------
5949 This diagnostic is enabled by default.
5951 **Diagnostic text:**
5953 +---------------------------------------------------------+
5954 |:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
5955 +---------------------------------------------------------+
5960 Also controls `-Wc++11-long-long`_.
5962 **Diagnostic text:**
5964 +-----------------------------------------------------------------------------------------------+
5965 |:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
5966 +-----------------------------------------------------------------------------------------------+
5971 Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
5976 This diagnostic is enabled by default.
5978 **Diagnostic text:**
5980 +------------------------------------------------------------------------------+
5981 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
5982 +------------------------------------------------------------------------------+
5987 Some of the diagnostics controlled by this flag are enabled by default.
5989 **Diagnostic text:**
5991 +--------------------------------------------------------------------------------------------+
5992 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
5993 +--------------------------------------------------------------------------------------------+
5995 +--------------------------------------------------------------------------------------+
5996 |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
5997 +--------------------------------------------------------------------------------------+
5999 +------------------------------------------------------------------------------------+
6000 |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
6001 +------------------------------------------------------------------------------------+
6003 +-------------------------------------------------------------------------------+
6004 |:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
6005 +-------------------------------------------------------------------------------+
6007 +---------------------------------------------------------------------------------------------------------+
6008 |:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
6009 +---------------------------------------------------------------------------------------------------------+
6011 +------------------------------------------------------------------------+
6012 |:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
6013 +------------------------------------------------------------------------+
6015 +---------------------------------------------------------------------------+
6016 |:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
6017 +---------------------------------------------------------------------------+
6022 This diagnostic is enabled by default.
6024 **Diagnostic text:**
6026 +-------------------------------------------------------------------------+
6027 |:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
6028 +-------------------------------------------------------------------------+
6031 -Wmalformed-warning-check
6032 -------------------------
6033 This diagnostic is enabled by default.
6035 **Diagnostic text:**
6037 +---------------------------------------------------------------------------------------------+
6038 |:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
6039 +---------------------------------------------------------------------------------------------+
6042 -Wmany-braces-around-scalar-init
6043 --------------------------------
6044 This diagnostic is enabled by default.
6046 **Diagnostic text:**
6048 +--------------------------------------------------------------------------------+
6049 |:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
6050 +--------------------------------------------------------------------------------+
6055 This diagnostic is enabled by default.
6057 **Diagnostic text:**
6059 +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6060 |:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
6061 | ||:diagtext:`a value and unsigned zero`|| |
6062 | |+-------------------------------------+| |
6063 | ||:diagtext:`unsigned zero and a value`|| |
6064 | |+-------------------------------------+| |
6065 +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
6068 -Wmemsize-comparison
6069 --------------------
6070 This diagnostic is enabled by default.
6072 **Diagnostic text:**
6074 +-----------------------------------------------------------------------------------------------------------------------+
6075 |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
6076 +-----------------------------------------------------------------------------------------------------------------------+
6081 **Diagnostic text:**
6083 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6084 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6085 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6087 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6088 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
6089 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6094 Some of the diagnostics controlled by this flag are enabled by default.
6096 Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_.
6099 -Wmicrosoft-anon-tag
6100 --------------------
6101 Some of the diagnostics controlled by this flag are enabled by default.
6103 **Diagnostic text:**
6105 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6106 |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6107 | ||:diagtext:`struct`|| |
6108 | |+------------------+| |
6109 | ||:diagtext:`union` || |
6110 | |+------------------+| |
6111 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
6113 +--------------------------------------------------------+---------------------+---------------------------------------------+
6114 |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
6115 | ||:diagtext:`structs`|| |
6116 | |+-------------------+| |
6117 | ||:diagtext:`unions` || |
6118 | |+-------------------+| |
6119 +--------------------------------------------------------+---------------------+---------------------------------------------+
6124 This diagnostic is enabled by default.
6126 **Diagnostic text:**
6128 +------------------------------------------------------------------------------------------------------------------------------+
6129 |:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
6130 +------------------------------------------------------------------------------------------------------------------------------+
6132 +-------------------------------------------------------------------------------------------------------------------------------------+
6133 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
6134 +-------------------------------------------------------------------------------------------------------------------------------------+
6139 **Diagnostic text:**
6141 +-------------------------------------------------------------------------------------+
6142 |:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
6143 +-------------------------------------------------------------------------------------+
6146 -Wmicrosoft-comment-paste
6147 -------------------------
6148 **Diagnostic text:**
6150 +----------------------------------------------------------------------------------------------------------+
6151 |:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
6152 +----------------------------------------------------------------------------------------------------------+
6155 -Wmicrosoft-const-init
6156 ----------------------
6157 This diagnostic is enabled by default.
6159 **Diagnostic text:**
6161 +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6162 |:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6164 | |+---------------------------------------------------------------+| |
6165 | || |nbsp| :diagtext:`without a user-provided default constructor`|| |
6166 | |+---------------------------------------------------------------+| |
6167 +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
6170 -Wmicrosoft-cpp-macro
6171 ---------------------
6172 **Diagnostic text:**
6174 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6175 |:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
6176 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
6179 -Wmicrosoft-default-arg-redefinition
6180 ------------------------------------
6181 This diagnostic is enabled by default.
6183 **Diagnostic text:**
6185 +-----------------------------------------------------------------------+
6186 |:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
6187 +-----------------------------------------------------------------------+
6190 -Wmicrosoft-end-of-file
6191 -----------------------
6192 **Diagnostic text:**
6194 +----------------------------------------------------------------------------------------------+
6195 |:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
6196 +----------------------------------------------------------------------------------------------+
6199 -Wmicrosoft-enum-forward-reference
6200 ----------------------------------
6201 This diagnostic is enabled by default.
6203 **Diagnostic text:**
6205 +---------------------------------------------------------------------------------------------------+
6206 |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
6207 +---------------------------------------------------------------------------------------------------+
6210 -Wmicrosoft-enum-value
6211 ----------------------
6212 **Diagnostic text:**
6214 +---------------------------------------------------------------------------------------------------------------------------+
6215 |:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
6216 +---------------------------------------------------------------------------------------------------------------------------+
6219 -Wmicrosoft-exception-spec
6220 --------------------------
6221 Some of the diagnostics controlled by this flag are enabled by default.
6223 **Diagnostic text:**
6225 +------------------------------------------------------------------------------------------------+
6226 |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
6227 +------------------------------------------------------------------------------------------------+
6229 +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6230 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
6232 | |+--------------------------------+| |
6233 | ||:diagtext:`pointer to` |nbsp| || |
6234 | |+--------------------------------+| |
6235 | ||:diagtext:`reference to` |nbsp| || |
6236 | |+--------------------------------+| |
6237 +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
6239 +-----------------------------------------------------------------------------------------------------------------+
6240 |:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
6241 +-----------------------------------------------------------------------------------------------------------------+
6243 +------------------------------------------------------------------------------------------------------------------------+
6244 |:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
6245 +------------------------------------------------------------------------------------------------------------------------+
6247 +--------------------------------------------------------------------------------------------------------------------------------+
6248 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6249 +--------------------------------------------------------------------------------------------------------------------------------+
6251 +-------------------------------------------------------------------------------------------------------------------+
6252 |:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
6253 +-------------------------------------------------------------------------------------------------------------------+
6258 This diagnostic is enabled by default.
6260 **Diagnostic text:**
6262 +--------------------------------------------------------+---------------------------------+--------------------------------------------+
6263 |:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
6264 | ||:diagtext:`\_\_if\_not\_exists`|| |
6265 | |+-------------------------------+| |
6266 | ||:diagtext:`\_\_if\_exists` || |
6267 | |+-------------------------------+| |
6268 +--------------------------------------------------------+---------------------------------+--------------------------------------------+
6271 -Wmicrosoft-explicit-constructor-call
6272 -------------------------------------
6273 This diagnostic is enabled by default.
6275 **Diagnostic text:**
6277 +-------------------------------------------------------------------------------------------+
6278 |:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
6279 +-------------------------------------------------------------------------------------------+
6282 -Wmicrosoft-extra-qualification
6283 -------------------------------
6284 This diagnostic is enabled by default.
6286 **Diagnostic text:**
6288 +--------------------------------------------------------------------------------------------+
6289 |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
6290 +--------------------------------------------------------------------------------------------+
6293 -Wmicrosoft-fixed-enum
6294 ----------------------
6295 **Diagnostic text:**
6297 +---------------------------------------------------------------------------------------------------------------+
6298 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
6299 +---------------------------------------------------------------------------------------------------------------+
6302 -Wmicrosoft-flexible-array
6303 --------------------------
6304 **Diagnostic text:**
6306 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6307 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
6308 | ||:diagtext:`struct` || |
6309 | |+---------------------+| |
6310 | ||:diagtext:`interface`|| |
6311 | |+---------------------+| |
6312 | ||:diagtext:`union` || |
6313 | |+---------------------+| |
6314 | ||:diagtext:`class` || |
6315 | |+---------------------+| |
6316 | ||:diagtext:`enum` || |
6317 | |+---------------------+| |
6318 +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
6320 +-------------------------------------------------------------------------------------------------------------------------------------------+
6321 |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
6322 +-------------------------------------------------------------------------------------------------------------------------------------------+
6327 This diagnostic is enabled by default.
6329 **Diagnostic text:**
6331 +----------------------------------------------------------------------------------------------------------+
6332 |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
6333 +----------------------------------------------------------------------------------------------------------+
6338 This diagnostic is enabled by default.
6340 **Diagnostic text:**
6342 +------------------------------------------------------------------------------------------------------------------------------+
6343 |:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
6344 +------------------------------------------------------------------------------------------------------------------------------+
6347 -Wmicrosoft-mutable-reference
6348 -----------------------------
6349 This diagnostic is enabled by default.
6351 **Diagnostic text:**
6353 +---------------------------------------------------------------------------------------------+
6354 |:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
6355 +---------------------------------------------------------------------------------------------+
6358 -Wmicrosoft-pure-definition
6359 ---------------------------
6360 This diagnostic is enabled by default.
6362 **Diagnostic text:**
6364 +-------------------------------------------------------------------------------------------------------+
6365 |:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
6366 +-------------------------------------------------------------------------------------------------------+
6369 -Wmicrosoft-redeclare-static
6370 ----------------------------
6371 **Diagnostic text:**
6373 +-------------------------------------------------------------------------------------------------------------------------------------------+
6374 |:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
6375 +-------------------------------------------------------------------------------------------------------------------------------------------+
6380 This diagnostic is enabled by default.
6382 **Diagnostic text:**
6384 +--------------------------------------------------------------------------------+
6385 |:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
6386 +--------------------------------------------------------------------------------+
6389 -Wmicrosoft-template
6390 --------------------
6391 This diagnostic is enabled by default.
6393 **Diagnostic text:**
6395 +------------------------------------------------------------------------------------------------------------------------------------------------------+
6396 |:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
6397 +------------------------------------------------------------------------------------------------------------------------------------------------------+
6399 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6400 |:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`|
6401 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6403 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
6404 |:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
6405 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
6407 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6408 |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
6409 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6411 +-----------------------------------------------------------------------------------------------------------------------------+
6412 |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
6413 +-----------------------------------------------------------------------------------------------------------------------------+
6415 +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6416 |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
6417 | ||:diagtext:`class template` || |
6418 | |+-------------------------------------+| |
6419 | ||:diagtext:`class template partial` || |
6420 | |+-------------------------------------+| |
6421 | ||:diagtext:`variable template` || |
6422 | |+-------------------------------------+| |
6423 | ||:diagtext:`variable template partial`|| |
6424 | |+-------------------------------------+| |
6425 | ||:diagtext:`function template` || |
6426 | |+-------------------------------------+| |
6427 | ||:diagtext:`member function` || |
6428 | |+-------------------------------------+| |
6429 | ||:diagtext:`static data member` || |
6430 | |+-------------------------------------+| |
6431 | ||:diagtext:`member class` || |
6432 | |+-------------------------------------+| |
6433 | ||:diagtext:`member enumeration` || |
6434 | |+-------------------------------------+| |
6435 +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6437 +------------------------------------------------------------------------------------------------------------------------------------------------+
6438 |:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
6439 +------------------------------------------------------------------------------------------------------------------------------------------------+
6441 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6442 |:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`|
6443 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6446 -Wmicrosoft-union-member-reference
6447 ----------------------------------
6448 This diagnostic is enabled by default.
6450 **Diagnostic text:**
6452 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6453 |:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
6454 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6457 -Wmicrosoft-unqualified-friend
6458 ------------------------------
6459 This diagnostic is enabled by default.
6461 **Diagnostic text:**
6463 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6464 |:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`|
6465 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6468 -Wmicrosoft-using-decl
6469 ----------------------
6470 This diagnostic is enabled by default.
6472 **Diagnostic text:**
6474 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6475 |:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`|
6476 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6479 -Wmicrosoft-void-pseudo-dtor
6480 ----------------------------
6481 This diagnostic is enabled by default.
6483 **Diagnostic text:**
6485 +------------------------------------------------------------------------------------------------+
6486 |:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
6487 +------------------------------------------------------------------------------------------------+
6490 -Wmismatched-new-delete
6491 -----------------------
6492 This diagnostic is enabled by default.
6494 **Diagnostic text:**
6496 +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6497 |:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
6498 | || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| |
6499 | |+----------------+| |+----------------+| |+----------------+| |
6500 | ||:diagtext:`\[\]`|| || || || || |
6501 | |+----------------+| |+----------------+| |+----------------+| |
6502 +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
6505 -Wmismatched-parameter-types
6506 ----------------------------
6507 This diagnostic is enabled by default.
6509 **Diagnostic text:**
6511 +---------------------------------------------------------------------------------------------------------------+
6512 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
6513 +---------------------------------------------------------------------------------------------------------------+
6516 -Wmismatched-return-types
6517 -------------------------
6518 This diagnostic is enabled by default.
6520 **Diagnostic text:**
6522 +-----------------------------------------------------------------------------------------------------------+
6523 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
6524 +-----------------------------------------------------------------------------------------------------------+
6529 **Diagnostic text:**
6531 +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6532 |:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
6533 | ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| ||
6534 | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
6535 | ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
6536 | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
6537 | ||:diagtext:`a class` || | ||:diagtext:`a class` || |
6538 | |+------------------------+| | |+------------------------+| |
6539 +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
6541 +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6542 |:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
6543 | ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| ||
6544 | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
6545 | ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
6546 | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
6547 | ||:diagtext:`class` || | ||:diagtext:`class` || |
6548 | |+---------------------+| | |+---------------------+| |
6549 +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
6554 **Diagnostic text:**
6556 +----------------------------------------------------------------------------------------+
6557 |:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
6558 +----------------------------------------------------------------------------------------+
6561 -Wmissing-declarations
6562 ----------------------
6563 This diagnostic is enabled by default.
6565 **Diagnostic text:**
6567 +----------------------------------------------------------------------------+
6568 |:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
6569 +----------------------------------------------------------------------------+
6571 +-----------------------------------------------------------------------------------------------------------------+
6572 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
6573 +-----------------------------------------------------------------------------------------------------------------+
6575 +--------------------------------------------------------------+
6576 |:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
6577 +--------------------------------------------------------------+
6579 +-------------------------------------------------------------------------------------------------+
6580 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
6581 +-------------------------------------------------------------------------------------------------+
6584 -Wmissing-exception-spec
6585 ------------------------
6586 This diagnostic is enabled by default.
6588 **Diagnostic text:**
6590 +--------------------------------------------------------------------------------------------------------------------------------+
6591 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
6592 +--------------------------------------------------------------------------------------------------------------------------------+
6595 -Wmissing-field-initializers
6596 ----------------------------
6597 **Diagnostic text:**
6599 +-----------------------------------------------------------------------------------------------------------+
6600 |:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
6601 +-----------------------------------------------------------------------------------------------------------+
6604 -Wmissing-format-attribute
6605 --------------------------
6606 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6608 -Wmissing-include-dirs
6609 ----------------------
6610 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6612 -Wmissing-method-return-type
6613 ----------------------------
6614 **Diagnostic text:**
6616 +--------------------------------------------------------------------------------------------+
6617 |:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
6618 +--------------------------------------------------------------------------------------------+
6623 This diagnostic is enabled by default.
6625 **Diagnostic text:**
6627 +----------------------------------------------------------------------------------------------------------------------------+
6628 |:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
6629 +----------------------------------------------------------------------------------------------------------------------------+
6634 **Diagnostic text:**
6636 +----------------------------------------------------------------------------------------+
6637 |:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
6638 +----------------------------------------------------------------------------------------+
6640 +---------------------------+----------------------+---------------------------------------------------------------------------------------+
6641 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
6642 | ||:diagtext:`function`|| |
6643 | |+--------------------+| |
6644 | ||:diagtext:`method` || |
6645 | |+--------------------+| |
6646 +---------------------------+----------------------+---------------------------------------------------------------------------------------+
6649 -Wmissing-prototype-for-cc
6650 --------------------------
6651 This diagnostic is enabled by default.
6653 **Diagnostic text:**
6655 +----------------------------------------------------------------------------------------------------------------------------------------------+
6656 |:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
6657 +----------------------------------------------------------------------------------------------------------------------------------------------+
6660 -Wmissing-prototypes
6661 --------------------
6662 **Diagnostic text:**
6664 +-------------------------------------------------------------------------------------------------+
6665 |:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
6666 +-------------------------------------------------------------------------------------------------+
6669 -Wmissing-selector-name
6670 -----------------------
6671 This diagnostic is enabled by default.
6673 **Diagnostic text:**
6675 +---------------------------------------------------------------------------------------------------------------------------------------------+
6676 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
6677 +---------------------------------------------------------------------------------------------------------------------------------------------+
6682 This diagnostic is enabled by default.
6684 **Diagnostic text:**
6686 +------------------------------------------------------------------------------------------------+
6687 |:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
6688 +------------------------------------------------------------------------------------------------+
6691 -Wmissing-variable-declarations
6692 -------------------------------
6693 **Diagnostic text:**
6695 +---------------------------------------------------------------------------------------------------------------------+
6696 |:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
6697 +---------------------------------------------------------------------------------------------------------------------+
6702 **Diagnostic text:**
6704 +---------------------------------------------------------------------------------------------------------------------+
6705 |:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
6706 +---------------------------------------------------------------------------------------------------------------------+
6708 +--------------------------------------------------------------------------------------------+
6709 |:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
6710 +--------------------------------------------------------------------------------------------+
6712 +-----------------------------------------------------------------------------------------------------------------------------------+
6713 |:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
6714 +-----------------------------------------------------------------------------------------------------------------------------------+
6716 +---------------------------------------------------------------------------------------------------------------------+
6717 |:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
6718 +---------------------------------------------------------------------------------------------------------------------+
6723 This diagnostic is enabled by default.
6725 **Diagnostic text:**
6727 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6728 |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
6729 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6731 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6732 |:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`|
6733 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6736 -Wmodule-file-config-mismatch
6737 -----------------------------
6738 This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
6740 **Diagnostic text:**
6742 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6743 |:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
6744 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6747 -Wmodule-file-extension
6748 -----------------------
6749 This diagnostic is enabled by default.
6751 **Diagnostic text:**
6753 +----------------------------------------------------------------------------------------------------------------+
6754 |:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
6755 +----------------------------------------------------------------------------------------------------------------+
6758 -Wmodule-import-in-extern-c
6759 ---------------------------
6760 This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
6762 **Diagnostic text:**
6764 +-----------------------------------------------------------------------------------------------------------------------------------------------+
6765 |:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
6766 +-----------------------------------------------------------------------------------------------------------------------------------------------+
6769 -Wmodules-ambiguous-internal-linkage
6770 ------------------------------------
6771 This diagnostic is enabled by default.
6773 **Diagnostic text:**
6775 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6776 |:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
6777 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6780 -Wmodules-import-nested-redundant
6781 ---------------------------------
6782 This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
6784 **Diagnostic text:**
6786 +-------------------------------------------------------------------------------------------------------------------------------------+
6787 |:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
6788 +-------------------------------------------------------------------------------------------------------------------------------------+
6793 Some of the diagnostics controlled by this flag are enabled by default.
6795 Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
6800 Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
6805 Synonym for `-Wmicrosoft-include`_.
6810 This diagnostic is enabled by default.
6812 **Diagnostic text:**
6814 +-------------------------------------------------------------------------------------------------------------------------------------+
6815 |:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
6816 +-------------------------------------------------------------------------------------------------------------------------------------+
6821 This diagnostic is enabled by default.
6823 **Diagnostic text:**
6825 +-------------------------------------------------------------------------+
6826 |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
6827 +-------------------------------------------------------------------------+
6830 -Wmultiple-move-vbase
6831 ---------------------
6832 This diagnostic is enabled by default.
6834 **Diagnostic text:**
6836 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6837 |:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`|
6838 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
6843 Synonym for `-Wc++11-narrowing`_.
6848 **Diagnostic text:**
6850 +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6851 |:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
6852 | ||:diagtext:`struct`|| |
6853 | |+------------------+| |
6854 | ||:diagtext:`union` || |
6855 | |+------------------+| |
6856 +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
6861 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
6865 This diagnostic is enabled by default.
6867 **Diagnostic text:**
6869 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6870 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
6872 | |+---------------------------------+|
6873 | || |nbsp| :diagtext:`or 'noexcept'`||
6874 | |+---------------------------------+|
6875 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
6880 **Diagnostic text:**
6882 +----------------------------------------------------------------+
6883 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6884 +----------------------------------------------------------------+
6886 +----------------------------------------------------------------+
6887 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
6888 +----------------------------------------------------------------+
6893 Synonym for `-Wc++17-compat-mangling`_.
6898 Some of the diagnostics controlled by this flag are enabled by default.
6900 Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
6903 -Wnon-literal-null-conversion
6904 -----------------------------
6905 This diagnostic is enabled by default.
6907 **Diagnostic text:**
6909 +--------------------------------------------------------------------------------------------------------------------------------------------+
6910 |:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
6911 +--------------------------------------------------------------------------------------------------------------------------------------------+
6914 -Wnon-modular-include-in-framework-module
6915 -----------------------------------------
6916 **Diagnostic text:**
6918 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6919 |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
6920 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
6923 -Wnon-modular-include-in-module
6924 -------------------------------
6925 Also controls `-Wnon-modular-include-in-framework-module`_.
6927 **Diagnostic text:**
6929 +-------------------------------------------------------------------------------------------------------------------------------------------------+
6930 |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
6931 +-------------------------------------------------------------------------------------------------------------------------------------------------+
6936 This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
6938 **Diagnostic text:**
6940 +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6941 |:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`|
6942 | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
6943 | |+-----------------------+| |+-----------------------+| |
6944 | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
6945 | |+-----------------------+| |+-----------------------+| |
6946 | | | ||:diagtext:`method` || |
6947 | | | |+-----------------------+| |
6948 | | | ||:diagtext:`constructor`|| |
6949 | | | |+-----------------------+| |
6950 +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
6952 +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6953 |:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`|
6954 | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
6955 | |+-----------------------+| |+-----------------------+| |
6956 | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
6957 | |+-----------------------+| |+-----------------------+| |
6958 | | | ||:diagtext:`method` || |
6959 | | | |+-----------------------+| |
6960 | | | ||:diagtext:`constructor`|| |
6961 | | | |+-----------------------+| |
6962 +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
6964 +----------------------------------------------------------------------------------------------------------+
6965 |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
6966 +----------------------------------------------------------------------------------------------------------+
6968 +--------------------------------------------------------------------------------------------------------------------------+
6969 |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
6970 +--------------------------------------------------------------------------------------------------------------------------+
6975 **Diagnostic text:**
6977 +---------------------------------------------------------------------------------------------------------------+
6978 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
6979 +---------------------------------------------------------------------------------------------------------------+
6984 This diagnostic is enabled by default.
6986 **Diagnostic text:**
6988 +------------------------------------------------------------------------------------------------+
6989 |:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
6990 +------------------------------------------------------------------------------------------------+
6992 +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
6993 |:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
6994 | ||:diagtext:`function`|| |
6995 | |+--------------------+| |
6996 | ||:diagtext:`method` || |
6997 | |+--------------------+| |
6998 +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
7001 -Wnonportable-cfstrings
7002 -----------------------
7003 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7005 -Wnonportable-include-path
7006 --------------------------
7007 This diagnostic is enabled by default.
7009 **Diagnostic text:**
7011 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7012 |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7013 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7016 -Wnonportable-system-include-path
7017 ---------------------------------
7018 **Diagnostic text:**
7020 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7021 |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
7022 +------------------------------------------------------------------------------------------------------------------------------------------------------+
7025 -Wnonportable-vector-initialization
7026 -----------------------------------
7027 This diagnostic is enabled by default.
7029 **Diagnostic text:**
7031 +---------------------------------------------------------------------------------------------------------------------+
7032 |:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
7033 +---------------------------------------------------------------------------------------------------------------------+
7036 -Wnsconsumed-mismatch
7037 ---------------------
7038 This diagnostic is enabled by default.
7040 **Diagnostic text:**
7042 +---------------------------------------------------------------------------------------------------------------+
7043 |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
7044 +---------------------------------------------------------------------------------------------------------------+
7047 -Wnsreturns-mismatch
7048 --------------------
7049 This diagnostic is enabled by default.
7051 **Diagnostic text:**
7053 +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7054 |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
7055 | ||:diagtext:`not\_retained`|| |
7056 | |+-------------------------+| |
7057 | ||:diagtext:`retained` || |
7058 | |+-------------------------+| |
7059 +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
7064 This diagnostic is enabled by default.
7066 **Diagnostic text:**
7068 +--------------------------------------------------------------------------+
7069 |:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
7070 +--------------------------------------------------------------------------+
7072 +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7073 |:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
7074 | ||+----------------------------------------------------------+||
7075 | |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
7076 | ||+----------------------------------------------------------+||
7077 | |+------------------------------------------------------------+|
7078 | ||+----------------------------------------------------------+||
7079 | |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
7080 | ||+----------------------------------------------------------+||
7081 | |+------------------------------------------------------------+|
7082 +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
7087 This diagnostic is enabled by default.
7089 **Diagnostic text:**
7091 +-----------------------------------------------------------------------------+--------------------+---------------------------+
7092 |:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
7093 | ||:diagtext:`char` || |
7094 | |+------------------+| |
7095 | ||:diagtext:`string`|| |
7096 | |+------------------+| |
7097 +-----------------------------------------------------------------------------+--------------------+---------------------------+
7099 +-------------------------------------------------------------+
7100 |:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
7101 +-------------------------------------------------------------+
7106 This diagnostic is enabled by default.
7108 **Diagnostic text:**
7110 +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7111 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
7112 | ||:diagtext:`NULL` || |
7113 | |+-------------------+| |
7114 | ||:diagtext:`nullptr`|| |
7115 | |+-------------------+| |
7116 +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
7121 This diagnostic is enabled by default.
7123 **Diagnostic text:**
7125 +------------------------------------------------------------------------------------------------------------+
7126 |:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
7127 +------------------------------------------------------------------------------------------------------------+
7129 +---------------------------------------------------------------------------------------------------------+
7130 |:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
7131 +---------------------------------------------------------------------------------------------------------+
7134 -Wnull-pointer-arithmetic
7135 -------------------------
7136 **Diagnostic text:**
7138 +--------------------------------------------------------------------------------------------------------------------------------+
7139 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
7140 +--------------------------------------------------------------------------------------------------------------------------------+
7142 +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7143 |:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
7145 | |+--------------------------------------------+|
7146 | || |nbsp| :diagtext:`if the offset is nonzero`||
7147 | |+--------------------------------------------+|
7148 +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
7153 This diagnostic is enabled by default.
7155 **Diagnostic text:**
7157 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7158 |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7159 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7161 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7162 |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7163 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7165 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7166 |:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
7167 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
7169 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7170 |:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
7171 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7173 +----------------------------------------------------------------------------------------------+
7174 |:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
7175 +----------------------------------------------------------------------------------------------+
7178 -Wnullability-completeness
7179 --------------------------
7180 This diagnostic is enabled by default.
7182 Also controls `-Wnullability-completeness-on-arrays`_.
7184 **Diagnostic text:**
7186 +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7187 |:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7188 | ||:diagtext:`pointer` || |
7189 | |+--------------------------+| |
7190 | ||:diagtext:`block pointer` || |
7191 | |+--------------------------+| |
7192 | ||:diagtext:`member pointer`|| |
7193 | |+--------------------------+| |
7194 +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
7197 -Wnullability-completeness-on-arrays
7198 ------------------------------------
7199 This diagnostic is enabled by default.
7201 **Diagnostic text:**
7203 +----------------------------------------------------------------------------------------------------------------------------------------------+
7204 |:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
7205 +----------------------------------------------------------------------------------------------------------------------------------------------+
7208 -Wnullability-declspec
7209 ----------------------
7210 This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
7212 **Diagnostic text:**
7214 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7215 |:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`|
7216 | ||:diagtext:`pointer` || |
7217 | |+-----------------------------------+| |
7218 | ||:diagtext:`block pointer` || |
7219 | |+-----------------------------------+| |
7220 | ||:diagtext:`member pointer` || |
7221 | |+-----------------------------------+| |
7222 | ||:diagtext:`function pointer` || |
7223 | |+-----------------------------------+| |
7224 | ||:diagtext:`member function pointer`|| |
7225 | |+-----------------------------------+| |
7226 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
7229 -Wnullability-extension
7230 -----------------------
7231 **Diagnostic text:**
7233 +---------------------------------------------------------------------------------------------------------------------------------+
7234 |:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
7235 +---------------------------------------------------------------------------------------------------------------------------------+
7238 -Wnullability-inferred-on-nested-type
7239 -------------------------------------
7240 This diagnostic is enabled by default.
7242 **Diagnostic text:**
7244 +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7245 |:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
7246 | ||:diagtext:`array` || |
7247 | |+---------------------+| |
7248 | ||:diagtext:`reference`|| |
7249 | |+---------------------+| |
7250 +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
7253 -Wnullable-to-nonnull-conversion
7254 --------------------------------
7255 **Diagnostic text:**
7257 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7258 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
7259 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7262 -Wobjc-autosynthesis-property-ivar-name-match
7263 ---------------------------------------------
7264 This diagnostic is enabled by default.
7266 **Diagnostic text:**
7268 +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7269 |:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`|
7271 | |+-----------------------+| |
7272 | ||:diagtext:`synthesized`|| |
7273 | |+-----------------------+| |
7274 +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
7277 -Wobjc-circular-container
7278 -------------------------
7279 This diagnostic is enabled by default.
7281 **Diagnostic text:**
7283 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7284 |:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
7285 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
7290 Synonym for `-Wobjc-redundant-api-use`_.
7293 -Wobjc-designated-initializers
7294 ------------------------------
7295 This diagnostic is enabled by default.
7297 **Diagnostic text:**
7299 +-----------------------------------------------------------------------------------------------------------------------------------+
7300 |:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
7301 +-----------------------------------------------------------------------------------------------------------------------------------+
7303 +--------------------------------------------------------------------------------------------------+
7304 |:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
7305 +--------------------------------------------------------------------------------------------------+
7307 +--------------------------------------------------------------------------------------------------------------------+
7308 |:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
7309 +--------------------------------------------------------------------------------------------------------------------+
7311 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
7312 |:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
7313 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
7315 +-----------------------------------------------------------------------------------------------------------+
7316 |:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
7317 +-----------------------------------------------------------------------------------------------------------+
7319 +----------------------------------------------------------------------------------------------------------+
7320 |:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
7321 +----------------------------------------------------------------------------------------------------------+
7324 -Wobjc-flexible-array
7325 ---------------------
7326 This diagnostic is enabled by default.
7328 **Diagnostic text:**
7330 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7331 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`|
7332 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7334 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7335 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`|
7336 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7339 -Wobjc-forward-class-redefinition
7340 ---------------------------------
7341 This diagnostic is enabled by default.
7343 **Diagnostic text:**
7345 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7346 |:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
7347 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
7350 -Wobjc-interface-ivars
7351 ----------------------
7352 **Diagnostic text:**
7354 +-------------------------------------------------------------------------------------------------------+
7355 |:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
7356 +-------------------------------------------------------------------------------------------------------+
7359 -Wobjc-literal-compare
7360 ----------------------
7361 This diagnostic is enabled by default.
7363 Also controls `-Wobjc-string-compare`_.
7365 **Diagnostic text:**
7367 +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7368 |:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
7369 | ||:diagtext:`an array literal` || |
7370 | |+--------------------------------+| |
7371 | ||:diagtext:`a dictionary literal`|| |
7372 | |+--------------------------------+| |
7373 | ||:diagtext:`a numeric literal` || |
7374 | |+--------------------------------+| |
7375 | ||:diagtext:`a boxed expression` || |
7376 | |+--------------------------------+| |
7378 | |+--------------------------------+| |
7379 +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
7382 -Wobjc-literal-conversion
7383 -------------------------
7384 This diagnostic is enabled by default.
7386 **Diagnostic text:**
7388 +-------------------------------------------------------------------------------------------------------------------------+
7389 |:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
7390 +-------------------------------------------------------------------------------------------------------------------------+
7392 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7393 |:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
7394 | ||:diagtext:`array element type` || |
7395 | |+---------------------------------+| |
7396 | ||:diagtext:`dictionary key type` || |
7397 | |+---------------------------------+| |
7398 | ||:diagtext:`dictionary value type`|| |
7399 | |+---------------------------------+| |
7400 +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
7403 -Wobjc-macro-redefinition
7404 -------------------------
7405 This diagnostic is enabled by default.
7407 **Diagnostic text:**
7409 +-------------------------------------------------------------------------------------------+
7410 |:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
7411 +-------------------------------------------------------------------------------------------+
7416 **Diagnostic text:**
7418 +---------------------------------------------------------------+
7419 |:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
7420 +---------------------------------------------------------------+
7423 -Wobjc-method-access
7424 --------------------
7425 This diagnostic is enabled by default.
7427 **Diagnostic text:**
7429 +---------------------------------------------------------------------------------------------------------------------------------------+
7430 |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7431 +---------------------------------------------------------------------------------------------------------------------------------------+
7433 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7434 |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
7435 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7437 +------------------------------------------------------------------------------------------------------------------------------------------+
7438 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
7439 +------------------------------------------------------------------------------------------------------------------------------------------+
7441 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7442 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`|
7443 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7445 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
7446 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
7447 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
7449 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
7450 |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
7451 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
7454 -Wobjc-missing-property-synthesis
7455 ---------------------------------
7456 **Diagnostic text:**
7458 +------------------------------------------------------------------------------------------------------------------+
7459 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
7460 +------------------------------------------------------------------------------------------------------------------+
7463 -Wobjc-missing-super-calls
7464 --------------------------
7465 This diagnostic is enabled by default.
7467 **Diagnostic text:**
7469 +-------------------------------------------------------------------------------------------------------------------+
7470 |:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
7471 +-------------------------------------------------------------------------------------------------------------------+
7474 -Wobjc-multiple-method-names
7475 ----------------------------
7476 This diagnostic is enabled by default.
7478 **Diagnostic text:**
7480 +--------------------------------------------------------------------------------------------------------------+
7481 |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
7482 +--------------------------------------------------------------------------------------------------------------+
7485 -Wobjc-noncopy-retain-block-property
7486 ------------------------------------
7487 This diagnostic is enabled by default.
7489 **Diagnostic text:**
7491 +--------------------------------------------------------------------------------------------------------------------+
7492 |:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
7493 +--------------------------------------------------------------------------------------------------------------------+
7496 -Wobjc-nonunified-exceptions
7497 ----------------------------
7498 This diagnostic is enabled by default.
7500 **Diagnostic text:**
7502 +-----------------------------------------------------------------------------------------------------------------------------+
7503 |:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
7504 +-----------------------------------------------------------------------------------------------------------------------------+
7507 -Wobjc-property-implementation
7508 ------------------------------
7509 This diagnostic is enabled by default.
7511 **Diagnostic text:**
7513 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7514 |:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`|
7515 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7517 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7518 |:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
7519 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7521 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7522 |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`|
7523 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7525 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7526 |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`|
7527 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7530 -Wobjc-property-implicit-mismatch
7531 ---------------------------------
7532 This diagnostic is enabled by default.
7534 **Diagnostic text:**
7536 +---------------------------------------------------------------------------------------------------------------------------------------+
7537 |:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
7538 +---------------------------------------------------------------------------------------------------------------------------------------+
7541 -Wobjc-property-matches-cocoa-ownership-rule
7542 --------------------------------------------
7543 This diagnostic is enabled by default.
7545 **Diagnostic text:**
7547 +-------------------------------------------------------------------------------------------------------------+
7548 |:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
7549 +-------------------------------------------------------------------------------------------------------------+
7552 -Wobjc-property-no-attribute
7553 ----------------------------
7554 This diagnostic is enabled by default.
7556 **Diagnostic text:**
7558 +-----------------------------------------------------------------------------------------------------+
7559 |:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
7560 +-----------------------------------------------------------------------------------------------------+
7562 +--------------------------------------------------------------------------------------------------------------------+
7563 |:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
7564 +--------------------------------------------------------------------------------------------------------------------+
7567 -Wobjc-property-synthesis
7568 -------------------------
7569 This diagnostic is enabled by default.
7571 **Diagnostic text:**
7573 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7574 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`|
7575 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7577 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7578 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`|
7579 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7581 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7582 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`|
7583 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7586 -Wobjc-protocol-method-implementation
7587 -------------------------------------
7588 This diagnostic is enabled by default.
7590 **Diagnostic text:**
7592 +----------------------------------------------------------------------------------------------------------------------------+
7593 |:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
7594 +----------------------------------------------------------------------------------------------------------------------------+
7597 -Wobjc-protocol-property-synthesis
7598 ----------------------------------
7599 This diagnostic is enabled by default.
7601 **Diagnostic text:**
7603 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7604 |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
7605 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7608 -Wobjc-protocol-qualifiers
7609 --------------------------
7610 This diagnostic is enabled by default.
7612 **Diagnostic text:**
7614 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7615 |:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
7616 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7619 -Wobjc-readonly-with-setter-property
7620 ------------------------------------
7621 This diagnostic is enabled by default.
7623 **Diagnostic text:**
7625 +-----------------------------------------------------------------------------------------+
7626 |:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
7627 +-----------------------------------------------------------------------------------------+
7630 -Wobjc-redundant-api-use
7631 ------------------------
7632 Synonym for `-Wobjc-redundant-literal-use`_.
7635 -Wobjc-redundant-literal-use
7636 ----------------------------
7637 This diagnostic is enabled by default.
7639 **Diagnostic text:**
7641 +-------------------------------------------------------------------------------------------------------------------+
7642 |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
7643 +-------------------------------------------------------------------------------------------------------------------+
7648 This diagnostic is enabled by default.
7650 **Diagnostic text:**
7652 +-------------------------------------------------------------------------------------------------------------------------------+
7653 |:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
7654 +-------------------------------------------------------------------------------------------------------------------------------+
7657 -Wobjc-string-compare
7658 ---------------------
7659 This diagnostic is enabled by default.
7661 **Diagnostic text:**
7663 +---------------------------------------------------------------------------------------------------+
7664 |:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
7665 +---------------------------------------------------------------------------------------------------+
7668 -Wobjc-string-concatenation
7669 ---------------------------
7670 This diagnostic is enabled by default.
7672 **Diagnostic text:**
7674 +-------------------------------------------------------------------------------------------------------------------------+
7675 |:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
7676 +-------------------------------------------------------------------------------------------------------------------------+
7679 -Wobjc-unsafe-perform-selector
7680 ------------------------------
7681 This diagnostic is enabled by default.
7683 **Diagnostic text:**
7685 +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
7686 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
7687 | ||:diagtext:`struct`|| |
7688 | |+------------------+| |
7689 | ||:diagtext:`union` || |
7690 | |+------------------+| |
7691 | ||:diagtext:`vector`|| |
7692 | |+------------------+| |
7693 +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
7698 This diagnostic is enabled by default.
7700 **Diagnostic text:**
7702 +--------------------------------------------------------------------------------------------------------------------------------------------------+
7703 |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
7704 +--------------------------------------------------------------------------------------------------------------------------------------------------+
7709 **Diagnostic text:**
7711 +------------------------------------------------------------+
7712 |:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
7713 +------------------------------------------------------------+
7716 -Wold-style-definition
7717 ----------------------
7718 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7720 -Wopencl-unsupported-rgba
7721 -------------------------
7722 This diagnostic is enabled by default.
7724 **Diagnostic text:**
7726 +----------------------------------------------------------------------------------------------------------------------------+
7727 |:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
7728 +----------------------------------------------------------------------------------------------------------------------------+
7733 This diagnostic is enabled by default.
7735 **Diagnostic text:**
7737 +-------------------------------------------------------------------------------------------------------------------------+
7738 |:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
7739 +-------------------------------------------------------------------------------------------------------------------------+
7741 +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7742 |:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
7744 | |+-------------------------------------------------+| |
7745 | ||:diagtext:`and other variables in clause` |nbsp| || |
7746 | |+-------------------------------------------------+| |
7747 +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
7752 This diagnostic is enabled by default.
7754 **Diagnostic text:**
7756 +-----------------------------------------------------------------------------------------------------------------------------------------+
7757 |:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
7758 +-----------------------------------------------------------------------------------------------------------------------------------------+
7760 +-----------------------------------------------------------------------------------------------------------------------------+
7761 |:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
7762 +-----------------------------------------------------------------------------------------------------------------------------+
7767 This diagnostic is enabled by default.
7769 **Diagnostic text:**
7771 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7772 |:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
7773 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7775 +-----------------------------------------------------------------------------------------------+
7776 |:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
7777 +-----------------------------------------------------------------------------------------------+
7782 This diagnostic is enabled by default.
7784 **Diagnostic text:**
7786 +------------------------------------------------------------------------------------------------------------------------------------------+
7787 |:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
7788 +------------------------------------------------------------------------------------------------------------------------------------------+
7790 +----------------------------------------------------------------------------------------------------------------------------+
7791 |:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
7792 +----------------------------------------------------------------------------------------------------------------------------+
7794 +-------------------------------------------------------------------------------------------------------------------------------------------+
7795 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`|
7796 +-------------------------------------------------------------------------------------------------------------------------------------------+
7798 +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
7799 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
7801 | |+-----------------------------------------+| |
7802 | ||:diagtext:`the implicit usage of` |nbsp| || |
7803 | |+-----------------------------------------+| |
7804 +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
7807 -Wout-of-line-declaration
7808 -------------------------
7809 This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
7811 **Diagnostic text:**
7813 +-------------------------------------------------------------------------------------------+
7814 |:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
7815 +-------------------------------------------------------------------------------------------+
7818 -Wout-of-scope-function
7819 -----------------------
7820 This diagnostic is enabled by default.
7822 **Diagnostic text:**
7824 +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
7825 |:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
7827 | |+-------------------------------------------------------------------------------------+|
7828 | || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
7829 | |+-------------------------------------------------------------------------------------+|
7830 +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
7835 **Diagnostic text:**
7837 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7838 |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`|
7839 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7844 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
7846 -Woverlength-strings
7847 --------------------
7848 **Diagnostic text:**
7850 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7851 |:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`|
7852 | ||:diagtext:`C90` || |
7853 | |+-------------------+| |
7854 | ||:diagtext:`ISO C99`|| |
7855 | |+-------------------+| |
7856 | ||:diagtext:`C++` || |
7857 | |+-------------------+| |
7858 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
7861 -Woverloaded-shift-op-parentheses
7862 ---------------------------------
7863 This diagnostic is enabled by default.
7865 **Diagnostic text:**
7867 +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7868 |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
7869 | ||:diagtext:`>>`|| |
7870 | |+--------------+| |
7871 | ||:diagtext:`<<`|| |
7872 | |+--------------+| |
7873 +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
7876 -Woverloaded-virtual
7877 --------------------
7878 **Diagnostic text:**
7880 +-----------------------------------------------------------------------------------------------+-----------------------+
7881 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
7882 | ||:diagtext:`function` ||
7883 | |+---------------------+|
7884 | ||:diagtext:`functions`||
7885 | |+---------------------+|
7886 +-----------------------------------------------------------------------------------------------+-----------------------+
7890 Synonym for `-Winitializer-overrides`_.
7895 This diagnostic is enabled by default.
7897 **Diagnostic text:**
7899 +-------------------------------------------------------------------------------------------------------+
7900 |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
7901 +-------------------------------------------------------------------------------------------------------+
7904 -Woverriding-method-mismatch
7905 ----------------------------
7906 **Diagnostic text:**
7908 +-------------------------------------------------------------------------------------------------------------------------------------------+
7909 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
7910 +-------------------------------------------------------------------------------------------------------------------------------------------+
7912 +------------------------------------------------------------------------------------------------------------+
7913 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
7914 +------------------------------------------------------------------------------------------------------------+
7916 +----------------------------------------------------------------------------------------------------------------------------------------+
7917 |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
7918 +----------------------------------------------------------------------------------------------------------------------------------------+
7920 +--------------------------------------------------------------------------------------------------------+
7921 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
7922 +--------------------------------------------------------------------------------------------------------+
7924 +--------------------------------------------------------------------------------------------------------+
7925 |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
7926 +--------------------------------------------------------------------------------------------------------+
7928 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7929 |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7930 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7932 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7933 |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
7934 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7937 -Woverriding-t-option
7938 ---------------------
7939 This diagnostic is enabled by default.
7941 **Diagnostic text:**
7943 +---------------------------------------------------------------------------------------------------------------------------+
7944 |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
7945 +---------------------------------------------------------------------------------------------------------------------------+
7950 **Diagnostic text:**
7952 +--------------------------------------------------------------------------------------------------+
7953 |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
7954 +--------------------------------------------------------------------------------------------------+
7959 **Diagnostic text:**
7961 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7962 |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
7963 | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
7964 | |+---------------------+| |+----------------+|+-------------+| |
7965 | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
7966 | |+---------------------+| |+----------------+|+-------------+| |
7967 | ||:diagtext:`class` || | | | |
7968 | |+---------------------+| | | | |
7969 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
7971 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7972 |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
7973 | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
7974 | |+---------------------+| |+----------------+|+-------------+| |
7975 | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
7976 | |+---------------------+| |+----------------+|+-------------+| |
7977 | ||:diagtext:`class` || | | | |
7978 | |+---------------------+| | | | |
7979 +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
7981 +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7982 |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
7983 | ||:diagtext:`byte`||| || |
7984 | |+----------------+|+-------------+| |
7985 | ||:diagtext:`bit` |||:diagtext:`s`|| |
7986 | |+----------------+|+-------------+| |
7987 +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
7992 This diagnostic is enabled by default.
7994 Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
7996 **Diagnostic text:**
7998 +-----------------------------------------------------------------------------------------------------------+
7999 |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
8000 +-----------------------------------------------------------------------------------------------------------+
8002 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8003 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
8004 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8006 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8007 |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
8008 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8011 -Wparentheses-equality
8012 ----------------------
8013 This diagnostic is enabled by default.
8015 **Diagnostic text:**
8017 +--------------------------------------------------------------------------------------+
8018 |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
8019 +--------------------------------------------------------------------------------------+
8022 -Wpartial-availability
8023 ----------------------
8024 Synonym for `-Wunguarded-availability`_.
8029 **Diagnostic text:**
8031 The text of this diagnostic is not controlled by Clang.
8036 **Diagnostic text:**
8038 The text of this diagnostic is not controlled by Clang.
8040 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8041 |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`|
8042 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8044 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8045 |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`|
8046 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8051 This diagnostic is enabled by default.
8053 **Diagnostic text:**
8055 The text of this diagnostic is not controlled by Clang.
8060 **Diagnostic text:**
8062 The text of this diagnostic is not controlled by Clang.
8067 This diagnostic is enabled by default.
8069 **Diagnostic text:**
8071 +---------------------------+--------------------------------+-----------------------------------------------------+
8072 |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
8073 | ||:diagtext:`precompiled header`|| |
8074 | |+------------------------------+| |
8075 | ||:diagtext:`module` || |
8076 | |+------------------------------+| |
8077 +---------------------------+--------------------------------+-----------------------------------------------------+
8082 Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
8084 **Diagnostic text:**
8086 +------------------------------------------------------------------------+
8087 |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
8088 +------------------------------------------------------------------------+
8090 +--------------------------------------------------------------------------+
8091 |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
8092 +--------------------------------------------------------------------------+
8094 +--------------------------------------------------------------------------------+
8095 |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
8096 +--------------------------------------------------------------------------------+
8098 +--------------------------------------------------------------------------------------------+
8099 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
8100 +--------------------------------------------------------------------------------------------+
8102 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8103 |:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+|
8104 | ||:diagtext:`private` ||
8105 | |+---------------------+|
8106 | ||:diagtext:`protected`||
8107 | |+---------------------+|
8108 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
8110 +--------------------------------------------------------+--------------------+------------------------------------------------------------+
8111 |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
8112 | ||:diagtext:`struct`|| |
8113 | |+------------------+| |
8114 | ||:diagtext:`union` || |
8115 | |+------------------+| |
8116 +--------------------------------------------------------+--------------------+------------------------------------------------------------+
8118 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8119 |:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`|
8120 | ||:diagtext:`copying variable` || |
8121 | |+---------------------------------------+| |
8122 | ||:diagtext:`copying parameter` || |
8123 | |+---------------------------------------+| |
8124 | ||:diagtext:`returning object` || |
8125 | |+---------------------------------------+| |
8126 | ||:diagtext:`throwing object` || |
8127 | |+---------------------------------------+| |
8128 | ||:diagtext:`copying member subobject` || |
8129 | |+---------------------------------------+| |
8130 | ||:diagtext:`copying array element` || |
8131 | |+---------------------------------------+| |
8132 | ||:diagtext:`allocating object` || |
8133 | |+---------------------------------------+| |
8134 | ||:diagtext:`copying temporary` || |
8135 | |+---------------------------------------+| |
8136 | ||:diagtext:`initializing base subobject`|| |
8137 | |+---------------------------------------+| |
8138 | ||:diagtext:`initializing vector element`|| |
8139 | |+---------------------------------------+| |
8140 | ||:diagtext:`capturing value` || |
8141 | |+---------------------------------------+| |
8142 +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
8144 +--------------------------------------------------------------------------------------------------------------------------------------+
8145 |:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
8146 +--------------------------------------------------------------------------------------------------------------------------------------+
8148 +--------------------------------------------------------------------------------------------------------------------------+
8149 |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
8150 +--------------------------------------------------------------------------------------------------------------------------+
8152 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8153 |:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
8154 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8156 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8157 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
8158 | ||:diagtext:`function`|| |
8159 | |+--------------------+| |
8160 | ||:diagtext:`variable`|| |
8161 | |+--------------------+| |
8162 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
8164 +---------------------------------------------------------------------------------------+
8165 |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
8166 +---------------------------------------------------------------------------------------+
8168 +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8169 |:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
8170 | ||:diagtext:`small`|| |
8171 | |+-----------------+| |
8172 | ||:diagtext:`large`|| |
8173 | |+-----------------+| |
8174 +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
8176 +--------------------------------------------------------------------------------------------------+
8177 |:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
8178 +--------------------------------------------------------------------------------------------------+
8180 +-----------------------------------------------------------------------------------------------+
8181 |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
8182 +-----------------------------------------------------------------------------------------------+
8184 +-------------------------------------------------------------------------------+
8185 |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
8186 +-------------------------------------------------------------------------------+
8188 +---------------------------------------------------------------+-----------------------+--------------------------------+
8189 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
8190 | ||:diagtext:`sizeof` || |
8191 | |+---------------------+| |
8192 | ||:diagtext:`alignof` || |
8193 | |+---------------------+| |
8194 | ||:diagtext:`vec\_step`|| |
8195 | |+---------------------+| |
8196 +---------------------------------------------------------------+-----------------------+--------------------------------+
8198 +---------------------------------------------------------------+-----------------------+----------------------------+
8199 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
8200 | ||:diagtext:`sizeof` || |
8201 | |+---------------------+| |
8202 | ||:diagtext:`alignof` || |
8203 | |+---------------------+| |
8204 | ||:diagtext:`vec\_step`|| |
8205 | |+---------------------+| |
8206 +---------------------------------------------------------------+-----------------------+----------------------------+
8208 +-------------------------------------------------------------------------------------------+
8209 |:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
8210 +-------------------------------------------------------------------------------------------+
8212 +----------------------------------------------------------------------------------------+
8213 |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
8214 +----------------------------------------------------------------------------------------+
8216 +-------------------------------------------------------------------------------------------------------+
8217 |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
8218 +-------------------------------------------------------------------------------------------------------+
8220 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8221 |:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
8222 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8224 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8225 |:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
8226 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8228 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8229 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
8230 | || |nbsp| :diagtext:`a`|| || || |
8231 | |+---------------------+| |+-------------+| |
8232 | || || ||:diagtext:`s`|| |
8233 | |+---------------------+| |+-------------+| |
8234 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8236 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8237 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`|
8238 | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
8239 | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
8240 | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
8241 | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
8242 | | | | | | | | | ||+-----------------------------------------------+|| |
8243 | | | | | | | | | |+-------------------------------------------------+| |
8244 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8246 +-----------------------------------------------------------------------------------------------------------------------+
8247 |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
8248 +-----------------------------------------------------------------------------------------------------------------------+
8250 +--------------------------------------------------------------------------------------------------------------------+
8251 |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
8252 +--------------------------------------------------------------------------------------------------------------------+
8254 +------------------------------------------------------------------------------------------------------------+
8255 |:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
8256 +------------------------------------------------------------------------------------------------------------+
8258 +-------------------------------------------------------------------------------------------------------------+
8259 |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
8260 +-------------------------------------------------------------------------------------------------------------+
8262 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8263 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
8264 | ||:diagtext:`integral` || |
8265 | |+-----------------------+| |
8266 | ||:diagtext:`enumeration`|| |
8267 | |+-----------------------+| |
8268 +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
8270 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8271 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
8272 | ||:diagtext:`assigning to different types` || |
8273 | |+--------------------------------------------------------------+| |
8274 | ||:diagtext:`passing to parameter of different type` || |
8275 | |+--------------------------------------------------------------+| |
8276 | ||:diagtext:`returning from function with different return type`|| |
8277 | |+--------------------------------------------------------------+| |
8278 | ||:diagtext:`converting between types` || |
8279 | |+--------------------------------------------------------------+| |
8280 | ||:diagtext:`initializing with expression of different type` || |
8281 | |+--------------------------------------------------------------+| |
8282 | ||:diagtext:`sending to parameter of different type` || |
8283 | |+--------------------------------------------------------------+| |
8284 | ||:diagtext:`casting between types` || |
8285 | |+--------------------------------------------------------------+| |
8286 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
8288 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8289 |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
8290 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8292 +--------------------------------------------------------------------------------------------------+
8293 |:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
8294 +--------------------------------------------------------------------------------------------------+
8296 +-------------------------------------------------------------------------------------------------------------------------------------+
8297 |:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
8298 +-------------------------------------------------------------------------------------------------------------------------------------+
8300 +---------------------------------------------------------------------------------------------------------------------------+
8301 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
8302 +---------------------------------------------------------------------------------------------------------------------------+
8304 +---------------------------------------------------------------------------------------------------------------------------+
8305 |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
8306 +---------------------------------------------------------------------------------------------------------------------------+
8308 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8309 |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
8310 | ||:diagtext:`struct`|| |
8311 | |+------------------+| |
8312 | ||:diagtext:`union` || |
8313 | |+------------------+| |
8314 +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
8316 +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8317 |:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
8318 | ||:diagtext:`function`|| |
8319 | |+--------------------+| |
8320 | ||:diagtext:`method` || |
8321 | |+--------------------+| |
8322 | ||:diagtext:`block` || |
8323 | |+--------------------+| |
8324 +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
8326 +--------------------------------------------------------------------------------------------------+
8327 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
8328 +--------------------------------------------------------------------------------------------------+
8330 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8331 |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
8332 | ||:diagtext:`qualifier in` |nbsp| || || || |
8333 | |+--------------------------------+| |+---------------------+| |
8334 | ||:diagtext:`static` |nbsp| || || || |
8335 | |+--------------------------------+| |+---------------------+| |
8336 | || || ||:diagtext:`'\[\*\] '`|| |
8337 | |+--------------------------------+| |+---------------------+| |
8338 +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
8340 +--------------------------------------------------------+------------------------------------------------+
8341 |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
8342 | ||:diagtext:`outside of a function` ||
8343 | |+----------------------------------------------+|
8344 | ||+--------------------------------------------+||
8345 | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
8346 | ||+--------------------------------------------+||
8347 | |+----------------------------------------------+|
8348 | ||:diagtext:`inside instance variable list` ||
8349 | |+----------------------------------------------+|
8350 | ||:diagtext:`after member function definition` ||
8351 | |+----------------------------------------------+|
8352 +--------------------------------------------------------+------------------------------------------------+
8354 +-----------------------------------------------------------------------------------------+
8355 |:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
8356 +-----------------------------------------------------------------------------------------+
8358 +----------------------------------------------------------------------------------------+
8359 |:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
8360 +----------------------------------------------------------------------------------------+
8362 +-------------------------------------------------------------------------------------------------+
8363 |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
8364 +-------------------------------------------------------------------------------------------------+
8366 +-----------------------------------------------------------------------------------+
8367 |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
8368 +-----------------------------------------------------------------------------------+
8370 +-------------------------------------------------------------------------------------------------------+
8371 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
8372 +-------------------------------------------------------------------------------------------------------+
8374 +--------------------------------------------------------------------------------------------------+
8375 |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
8376 +--------------------------------------------------------------------------------------------------+
8378 +-----------------------------------------------------------------------------------------------------------+
8379 |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
8380 +-----------------------------------------------------------------------------------------------------------+
8382 +-----------------------------------------------------------------------+
8383 |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
8384 +-----------------------------------------------------------------------+
8386 +------------------------------------------------------------------------------------------------+
8387 |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
8388 +------------------------------------------------------------------------------------------------+
8390 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8391 |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
8392 | ||:diagtext:`a namespace` || |
8393 | |+-------------------------+| |
8394 | ||:diagtext:`an enumerator`|| |
8395 | |+-------------------------+| |
8396 +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
8398 +-----------------------------------------------------------------------------+
8399 |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
8400 +-----------------------------------------------------------------------------+
8402 +------------------------------------------------------------+
8403 |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
8404 +------------------------------------------------------------+
8406 +-----------------------------------------------------------------------------------+
8407 |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
8408 +-----------------------------------------------------------------------------------+
8410 +----------------------------------------------------------------+
8411 |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
8412 +----------------------------------------------------------------+
8414 +------------------------------------------------------------------------------------------------------------+
8415 |:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
8416 +------------------------------------------------------------------------------------------------------------+
8418 +---------------------------------------------------------------------------------------+
8419 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
8420 +---------------------------------------------------------------------------------------+
8422 +----------------------------------------------------------------------------------------+
8423 |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
8424 +----------------------------------------------------------------------------------------+
8426 +---------------------------------------------------------------------+
8427 |:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
8428 +---------------------------------------------------------------------+
8430 +-----------------------------------------------------------------------+
8431 |:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
8432 +-----------------------------------------------------------------------+
8434 +-----------------------------------------------------------------------+
8435 |:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
8436 +-----------------------------------------------------------------------+
8438 +----------------------------------------------------------------------------------------------------------------+
8439 |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
8440 +----------------------------------------------------------------------------------------------------------------+
8442 +------------------------------------------------------------------------+
8443 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
8444 +------------------------------------------------------------------------+
8446 +--------------------------------------------------------------------------------+
8447 |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
8448 +--------------------------------------------------------------------------------+
8450 +------------------------------------------------------------------------------+
8451 |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
8452 +------------------------------------------------------------------------------+
8454 +----------------------------------------------------------------------------------------------------------------------------------------+
8455 |:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
8456 +----------------------------------------------------------------------------------------------------------------------------------------+
8458 +-------------------------------------------------------------------------------------------------+
8459 |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
8460 +-------------------------------------------------------------------------------------------------+
8463 -Wpedantic-core-features
8464 ------------------------
8465 **Diagnostic text:**
8467 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8468 |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
8469 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
8474 **Diagnostic text:**
8476 +--------------------------------------------------------------------------------------+
8477 |:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
8478 +--------------------------------------------------------------------------------------+
8480 +--------------------------------------------------------------------------------------------------------+
8481 |:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
8482 +--------------------------------------------------------------------------------------------------------+
8487 Some of the diagnostics controlled by this flag are enabled by default.
8489 **Diagnostic text:**
8491 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8492 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`|
8493 | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
8494 | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
8495 | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
8496 | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
8497 | | | | | | | | | ||+-----------------------------------------------+|| |
8498 | | | | | | | | | |+-------------------------------------------------+| |
8499 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
8501 +----------------------------------------------------------------------------------------+
8502 |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
8503 +----------------------------------------------------------------------------------------+
8505 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8506 |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
8507 | || |nbsp| :diagtext:`a`|| || || |
8508 | |+---------------------+| |+-------------+| |
8509 | || || ||:diagtext:`s`|| |
8510 | |+---------------------+| |+-------------+| |
8511 +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
8513 +---------------------------------------------------------------+-----------------------+--------------------------------+
8514 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
8515 | ||:diagtext:`sizeof` || |
8516 | |+---------------------+| |
8517 | ||:diagtext:`alignof` || |
8518 | |+---------------------+| |
8519 | ||:diagtext:`vec\_step`|| |
8520 | |+---------------------+| |
8521 +---------------------------------------------------------------+-----------------------+--------------------------------+
8523 +---------------------------------------------------------------+-----------------------+----------------------------+
8524 |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
8525 | ||:diagtext:`sizeof` || |
8526 | |+---------------------+| |
8527 | ||:diagtext:`alignof` || |
8528 | |+---------------------+| |
8529 | ||:diagtext:`vec\_step`|| |
8530 | |+---------------------+| |
8531 +---------------------------------------------------------------+-----------------------+----------------------------+
8533 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
8534 |:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
8535 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
8538 -Wpointer-bool-conversion
8539 -------------------------
8540 This diagnostic is enabled by default.
8542 **Diagnostic text:**
8544 +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
8545 |:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
8546 | ||:diagtext:`function call`|| |
8547 | |+-------------------------+| |
8548 | ||:diagtext:`parameter` || |
8549 | |+-------------------------+| |
8550 +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
8552 +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
8553 |:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
8555 | |+----------------------------+| |
8556 | || |nbsp| :diagtext:`function`|| |
8557 | |+----------------------------+| |
8558 | || |nbsp| :diagtext:`array` || |
8559 | |+----------------------------+| |
8560 +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
8565 This diagnostic is enabled by default.
8567 **Diagnostic text:**
8569 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
8570 |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
8571 | ||:diagtext:`assigning to different types` || |
8572 | |+--------------------------------------------------------------+| |
8573 | ||:diagtext:`passing to parameter of different type` || |
8574 | |+--------------------------------------------------------------+| |
8575 | ||:diagtext:`returning from function with different return type`|| |
8576 | |+--------------------------------------------------------------+| |
8577 | ||:diagtext:`converting between types` || |
8578 | |+--------------------------------------------------------------+| |
8579 | ||:diagtext:`initializing with expression of different type` || |
8580 | |+--------------------------------------------------------------+| |
8581 | ||:diagtext:`sending to parameter of different type` || |
8582 | |+--------------------------------------------------------------+| |
8583 | ||:diagtext:`casting between types` || |
8584 | |+--------------------------------------------------------------+| |
8585 +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
8588 -Wpointer-to-int-cast
8589 ---------------------
8590 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8592 -Wpointer-type-mismatch
8593 -----------------------
8594 This diagnostic is enabled by default.
8596 **Diagnostic text:**
8598 +------------------------------------------------------------+
8599 |:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
8600 +------------------------------------------------------------+
8603 -Wpotentially-evaluated-expression
8604 ----------------------------------
8605 This diagnostic is enabled by default.
8607 **Diagnostic text:**
8609 +----------------------------------------------------------------------------------------------------------------------------------+
8610 |:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
8611 +----------------------------------------------------------------------------------------------------------------------------------+
8614 -Wpragma-clang-attribute
8615 ------------------------
8616 This diagnostic is enabled by default.
8618 **Diagnostic text:**
8620 +-------------------------------------------------------------------------------------------------------------------------------------------+
8621 |:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
8622 +-------------------------------------------------------------------------------------------------------------------------------------------+
8625 -Wpragma-once-outside-header
8626 ----------------------------
8627 This diagnostic is enabled by default.
8629 **Diagnostic text:**
8631 +----------------------------------------------------------------+
8632 |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
8633 +----------------------------------------------------------------+
8638 Some of the diagnostics controlled by this flag are enabled by default.
8640 Also controls `-Wpragma-pack-suspicious-include`_.
8642 **Diagnostic text:**
8644 +----------------------------------------------------------------------------------------------------------------+
8645 |:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
8646 +----------------------------------------------------------------------------------------------------------------+
8648 +---------------------------------------------------------------------------------------------+
8649 |:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
8650 +---------------------------------------------------------------------------------------------+
8653 -Wpragma-pack-suspicious-include
8654 --------------------------------
8655 **Diagnostic text:**
8657 +-------------------------------------------------------------------------------------------------------------------------------------------+
8658 |:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
8659 +-------------------------------------------------------------------------------------------------------------------------------------------+
8662 -Wpragma-system-header-outside-header
8663 -------------------------------------
8664 This diagnostic is enabled by default.
8666 **Diagnostic text:**
8668 +----------------------------------------------------------------------------------+
8669 |:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
8670 +----------------------------------------------------------------------------------+
8675 Some of the diagnostics controlled by this flag are enabled by default.
8677 Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
8679 **Diagnostic text:**
8681 +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
8682 |:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
8683 | ||:diagtext:`function`|| |
8684 | |+--------------------+| |
8685 | ||:diagtext:`variable`|| |
8686 | |+--------------------+| |
8687 +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
8690 -Wpredefined-identifier-outside-function
8691 ----------------------------------------
8692 This diagnostic is enabled by default.
8694 **Diagnostic text:**
8696 +------------------------------------------------------------------------------------------+
8697 |:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
8698 +------------------------------------------------------------------------------------------+
8703 This diagnostic is enabled by default.
8705 **Diagnostic text:**
8707 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8708 |:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
8709 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8714 This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
8716 **Diagnostic text:**
8718 +----------------------------------------------------------------------------------------------------------------+
8719 |:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
8720 +----------------------------------------------------------------------------------------------------------------+
8725 This diagnostic is enabled by default.
8727 **Diagnostic text:**
8729 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8730 |:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`|
8731 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8733 +----------------------------------------------------------------------------------------------------------------------------------+
8734 |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
8735 +----------------------------------------------------------------------------------------------------------------------------------+
8738 -Wprofile-instr-missing
8739 -----------------------
8740 **Diagnostic text:**
8742 +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
8743 |:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`no data`|
8744 | || || ||:diagtext:`:has` || |
8745 | |+-------------+| |+-----------------+| |
8746 | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
8747 | |+-------------+| |+-----------------+| |
8748 +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
8751 -Wprofile-instr-out-of-date
8752 ---------------------------
8753 This diagnostic is enabled by default.
8755 **Diagnostic text:**
8757 +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
8758 |:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`|
8759 | || || ||:diagtext:`:has` || |
8760 | |+-------------+| |+-----------------+| |
8761 | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
8762 | |+-------------+| |+-----------------+| |
8763 +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
8766 -Wprofile-instr-unprofiled
8767 --------------------------
8768 This diagnostic is enabled by default.
8770 **Diagnostic text:**
8772 +--------------------------------------------------------------------------------------------------------+
8773 |:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
8774 +--------------------------------------------------------------------------------------------------------+
8777 -Wproperty-access-dot-syntax
8778 ----------------------------
8779 This diagnostic is enabled by default.
8781 **Diagnostic text:**
8783 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8784 |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`|
8785 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8788 -Wproperty-attribute-mismatch
8789 -----------------------------
8790 This diagnostic is enabled by default.
8792 **Diagnostic text:**
8794 +-------------------------------------------------------------------------------------------------------------+
8795 |:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
8796 +-------------------------------------------------------------------------------------------------------------+
8798 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8799 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`|
8800 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8802 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8803 |:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
8804 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8806 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8807 |:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
8808 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8813 This diagnostic is enabled by default.
8815 **Diagnostic text:**
8817 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8818 |:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
8819 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
8822 -Wprotocol-property-synthesis-ambiguity
8823 ---------------------------------------
8824 This diagnostic is enabled by default.
8826 **Diagnostic text:**
8828 +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
8829 |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
8830 | ||+-------------------------------------------+ || |
8831 | |||:diagtext:`of type` |nbsp| :placeholder:`B`| || |
8832 | ||+-------------------------------------------+ || |
8833 | |+--------------------------------------------------------------+| |
8834 | ||+---------------------------------------------------------+ || |
8835 | |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || |
8836 | ||+---------------------------------------------------------+ || |
8837 | |+--------------------------------------------------------------+| |
8838 | ||+------------------------------------------------------------+|| |
8839 | |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| |
8840 | ||+------------------------------------------------------------+|| |
8841 | |+--------------------------------------------------------------+| |
8842 | ||+-----------------------------------------------+ || |
8843 | |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || |
8844 | ||+-----------------------------------------------+ || |
8845 | |+--------------------------------------------------------------+| |
8846 | ||+-----------------------------------------------+ || |
8847 | |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || |
8848 | ||+-----------------------------------------------+ || |
8849 | |+--------------------------------------------------------------+| |
8850 +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
8853 -Wqualified-void-return-type
8854 ----------------------------
8855 This diagnostic is enabled by default.
8857 **Diagnostic text:**
8859 +---------------------------------------------------------------------------------------------------------+
8860 |:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
8861 +---------------------------------------------------------------------------------------------------------+
8864 -Wrange-loop-analysis
8865 ---------------------
8866 **Diagnostic text:**
8868 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8869 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`|
8870 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8872 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8873 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`|
8874 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8876 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8877 |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`|
8878 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8881 -Wreadonly-iboutlet-property
8882 ----------------------------
8883 This diagnostic is enabled by default.
8885 **Diagnostic text:**
8887 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8888 |:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
8889 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
8894 This diagnostic is enabled by default.
8896 **Diagnostic text:**
8898 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8899 |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
8900 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
8903 -Wreceiver-forward-class
8904 ------------------------
8905 Some of the diagnostics controlled by this flag are enabled by default.
8907 **Diagnostic text:**
8909 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8910 |:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
8911 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
8913 +---------------------------------------------------------------------------------------------------------------------------------------------+
8914 |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
8915 +---------------------------------------------------------------------------------------------------------------------------------------------+
8918 -Wredeclared-class-member
8919 -------------------------
8920 This diagnostic is enabled by default.
8922 **Diagnostic text:**
8924 +------------------------------------------------------------------------+
8925 |:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
8926 +------------------------------------------------------------------------+
8931 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
8935 **Diagnostic text:**
8937 +-------------------------------------------------------------------------+
8938 |:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
8939 +-------------------------------------------------------------------------+
8944 **Diagnostic text:**
8946 +-----------------------------------------------------------------------------------+
8947 |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
8948 +-----------------------------------------------------------------------------------+
8953 This diagnostic is enabled by default.
8955 Also controls `-Wdeprecated-register`_.
8957 **Diagnostic text:**
8959 +----------------------------------------------------------------------------------------------+
8960 |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
8961 +----------------------------------------------------------------------------------------------+
8964 -Wreinterpret-base-class
8965 ------------------------
8966 This diagnostic is enabled by default.
8968 **Diagnostic text:**
8970 +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8971 |:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`|
8972 | ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
8973 | |+----------------+| |+----------------+| |+-----------------------------------+| |
8974 | ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
8975 | |+----------------+| |+----------------+| |+-----------------------------------+| |
8976 +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
8979 -Rremark-backend-plugin
8980 -----------------------
8981 **Diagnostic text:**
8983 The text of this diagnostic is not controlled by Clang.
8988 **Diagnostic text:**
8990 +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8991 |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
8992 | ||:diagtext:`field` || ||:diagtext:`field`|| |
8993 | |+----------------------+| |+-----------------+| |
8994 | ||:diagtext:`base class`|| ||:diagtext:`base` || |
8995 | |+----------------------+| |+-----------------+| |
8996 +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
8999 -Wrequires-super-attribute
9000 --------------------------
9001 This diagnostic is enabled by default.
9003 **Diagnostic text:**
9005 +-----------------------------------------------------------------------------------------------------+----------------------------------+
9006 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
9007 | ||:diagtext:`methods in protocols`||
9008 | |+--------------------------------+|
9009 | ||:diagtext:`dealloc` ||
9010 | |+--------------------------------+|
9011 +-----------------------------------------------------------------------------------------------------+----------------------------------+
9016 **Diagnostic text:**
9018 +--------------------------------------------------------------------------+
9019 |:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
9020 +--------------------------------------------------------------------------+
9023 -Wreserved-user-defined-literal
9024 -------------------------------
9025 Some of the diagnostics controlled by this flag are enabled by default.
9027 Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
9029 **Diagnostic text:**
9031 +-----------------------------------------------------------------------------------------------------------------------+
9032 |:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9033 +-----------------------------------------------------------------------------------------------------------------------+
9035 +-------------------------------------------------------------------------------------------------------------------+
9036 |:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
9037 +-------------------------------------------------------------------------------------------------------------------+
9040 -Wretained-language-linkage
9041 ---------------------------
9042 **Diagnostic text:**
9044 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
9045 |:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
9046 +-----------------------------------------------------------------------------------------------------------------------------------------------------+
9049 -Wreturn-stack-address
9050 ----------------------
9051 This diagnostic is enabled by default.
9053 **Diagnostic text:**
9055 +---------------------------------------------------------------------------------+
9056 |:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
9057 +---------------------------------------------------------------------------------+
9059 +--------------------------------------------------------+--------------------------+------------------------------------------+
9060 |:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
9061 | ||:diagtext:`address of` || |
9062 | |+------------------------+| |
9063 | ||:diagtext:`reference to`|| |
9064 | |+------------------------+| |
9065 +--------------------------------------------------------+--------------------------+------------------------------------------+
9067 +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
9068 |:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
9069 | ||:diagtext:`address of` || |
9070 | |+------------------------+| |
9071 | ||:diagtext:`reference to`|| |
9072 | |+------------------------+| |
9073 +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
9078 This diagnostic is enabled by default.
9080 Also controls `-Wreturn-type-c-linkage`_.
9082 **Diagnostic text:**
9084 +-----------------------+---------------------------+---------------------------------------------------------------------+
9085 |:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
9086 | ||:diagtext:`void function`|| |
9087 | |+-------------------------+| |
9088 | ||:diagtext:`void method` || |
9089 | |+-------------------------+| |
9090 | ||:diagtext:`constructor` || |
9091 | |+-------------------------+| |
9092 | ||:diagtext:`destructor` || |
9093 | |+-------------------------+| |
9094 +-----------------------+---------------------------+---------------------------------------------------------------------+
9096 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9097 |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9098 | ||:diagtext:`function`|| |
9099 | |+--------------------+| |
9100 | ||:diagtext:`method` || |
9101 | |+--------------------+| |
9102 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9104 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9105 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
9106 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9108 +-------------------------------------------------------------------------------+
9109 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
9110 +-------------------------------------------------------------------------------+
9112 +-----------------------------------------------------------------------------+
9113 |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
9114 +-----------------------------------------------------------------------------+
9116 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9117 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
9118 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9120 +---------------------------------------------------------------------------------+
9121 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
9122 +---------------------------------------------------------------------------------+
9124 +-------------------------------------------------------------------------------+
9125 |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
9126 +-------------------------------------------------------------------------------+
9128 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9129 |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
9130 | ||:diagtext:`function`|| |
9131 | |+--------------------+| |
9132 | ||:diagtext:`method` || |
9133 | |+--------------------+| |
9134 +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
9137 -Wreturn-type-c-linkage
9138 -----------------------
9139 This diagnostic is enabled by default.
9141 **Diagnostic text:**
9143 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9144 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`|
9145 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9147 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9148 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`|
9149 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9152 -Wrtti-for-exceptions
9153 ---------------------
9154 This diagnostic is enabled by default.
9156 **Diagnostic text:**
9158 +--------------------------------------------------------------------------------------+
9159 |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
9160 +--------------------------------------------------------------------------------------+
9165 **Diagnostic text:**
9167 +--------------------------------------------------------------------------------------------------------+
9168 |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
9169 +--------------------------------------------------------------------------------------------------------+
9171 +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9172 |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
9173 | ||:diagtext:`is not C++` ||
9174 | |+------------------------------------+|
9175 | ||:diagtext:`is packed` ||
9176 | |+------------------------------------+|
9177 | ||:diagtext:`is a union` ||
9178 | |+------------------------------------+|
9179 | ||:diagtext:`is trivially copyable` ||
9180 | |+------------------------------------+|
9181 | ||:diagtext:`has trivial destructor` ||
9182 | |+------------------------------------+|
9183 | ||:diagtext:`is standard layout` ||
9184 | |+------------------------------------+|
9185 | ||:diagtext:`is in a blacklisted file`||
9186 | |+------------------------------------+|
9187 | ||:diagtext:`is blacklisted` ||
9188 | |+------------------------------------+|
9189 +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
9194 This diagnostic is enabled by default.
9196 **Diagnostic text:**
9198 +--------------------------------------------------------------------------------------------+
9199 |:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
9200 +--------------------------------------------------------------------------------------------+
9202 +----------------------------------------------------------------------------------+
9203 |:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
9204 +----------------------------------------------------------------------------------+
9209 Also controls `-Wselector-type-mismatch`_.
9211 **Diagnostic text:**
9213 +-------------------------------------------------------------------------------------------------------------------------------------------------+
9214 |:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
9215 +-------------------------------------------------------------------------------------------------------------------------------------------------+
9218 -Wselector-type-mismatch
9219 ------------------------
9220 **Diagnostic text:**
9222 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9223 |:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
9224 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9229 Some of the diagnostics controlled by this flag are enabled by default.
9231 Also controls `-Wself-assign-field`_.
9233 **Diagnostic text:**
9235 +------------------------------------------------------------------------------------------------------------------------------------------+
9236 |:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9237 +------------------------------------------------------------------------------------------------------------------------------------------+
9242 This diagnostic is enabled by default.
9244 **Diagnostic text:**
9246 +--------------------------------------------------------+-------------------------------+-----------------------------+
9247 |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
9248 | ||:diagtext:`field` || |
9249 | |+-----------------------------+| |
9250 | ||:diagtext:`instance variable`|| |
9251 | |+-----------------------------+| |
9252 +--------------------------------------------------------+-------------------------------+-----------------------------+
9257 **Diagnostic text:**
9259 +------------------------------------------------------------------------------------------------------------------------------+
9260 |:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
9261 +------------------------------------------------------------------------------------------------------------------------------+
9264 -Wsemicolon-before-method-body
9265 ------------------------------
9266 **Diagnostic text:**
9268 +------------------------------------------------------------------------------+
9269 |:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
9270 +------------------------------------------------------------------------------+
9275 This diagnostic is enabled by default.
9277 **Diagnostic text:**
9279 +------------------------------------------------------------------+-----------------------------+
9280 |:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
9281 | ||:diagtext:`function call` ||
9282 | |+---------------------------+|
9283 | ||:diagtext:`method dispatch`||
9284 | |+---------------------------+|
9285 | ||:diagtext:`block call` ||
9286 | |+---------------------------+|
9287 +------------------------------------------------------------------+-----------------------------+
9289 +------------------------------------------------------------------------------------------------------------------------------------------------+
9290 |:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
9291 +------------------------------------------------------------------------------------------------------------------------------------------------+
9296 Synonym for `-Wunsequenced`_.
9299 -Wserialized-diagnostics
9300 ------------------------
9301 This diagnostic is enabled by default.
9303 **Diagnostic text:**
9305 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9306 |:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
9307 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9309 +--------------------------------------------------------------------------------------------+
9310 |:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
9311 +--------------------------------------------------------------------------------------------+
9316 Some of the diagnostics controlled by this flag are enabled by default.
9318 Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
9320 **Diagnostic text:**
9322 +--------------------------------------------------------------------+-------------------------------------------------------------+
9323 |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
9324 | ||:diagtext:`local variable` ||
9325 | |+-----------------------------------------------------------+|
9326 | ||+-----------------------------------------------+ ||
9327 | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
9328 | ||+-----------------------------------------------+ ||
9329 | |+-----------------------------------------------------------+|
9330 | ||+---------------------------------------------------------+||
9331 | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
9332 | ||+---------------------------------------------------------+||
9333 | |+-----------------------------------------------------------+|
9334 | ||+--------------------------------------------+ ||
9335 | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
9336 | ||+--------------------------------------------+ ||
9337 | |+-----------------------------------------------------------+|
9338 | ||+----------------------------------------------+ ||
9339 | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
9340 | ||+----------------------------------------------+ ||
9341 | |+-----------------------------------------------------------+|
9342 | ||+-------------------------------------------------+ ||
9343 | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
9344 | ||+-------------------------------------------------+ ||
9345 | |+-----------------------------------------------------------+|
9346 +--------------------------------------------------------------------+-------------------------------------------------------------+
9351 Some of the diagnostics controlled by this flag are enabled by default.
9353 Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
9358 **Diagnostic text:**
9360 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9361 |:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`|
9362 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9365 -Wshadow-field-in-constructor
9366 -----------------------------
9367 Also controls `-Wshadow-field-in-constructor-modified`_.
9369 **Diagnostic text:**
9371 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9372 |:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
9373 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9376 -Wshadow-field-in-constructor-modified
9377 --------------------------------------
9378 **Diagnostic text:**
9380 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9381 |:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
9382 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9387 This diagnostic is enabled by default.
9389 **Diagnostic text:**
9391 +------------------------------------------------------------------------------------------------------------------------------+
9392 |:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
9393 +------------------------------------------------------------------------------------------------------------------------------+
9396 -Wshadow-uncaptured-local
9397 -------------------------
9398 **Diagnostic text:**
9400 +--------------------------------------------------------------------+-------------------------------------------------------------+
9401 |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
9402 | ||:diagtext:`local variable` ||
9403 | |+-----------------------------------------------------------+|
9404 | ||+-----------------------------------------------+ ||
9405 | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
9406 | ||+-----------------------------------------------+ ||
9407 | |+-----------------------------------------------------------+|
9408 | ||+---------------------------------------------------------+||
9409 | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
9410 | ||+---------------------------------------------------------+||
9411 | |+-----------------------------------------------------------+|
9412 | ||+--------------------------------------------+ ||
9413 | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
9414 | ||+--------------------------------------------+ ||
9415 | |+-----------------------------------------------------------+|
9416 | ||+----------------------------------------------+ ||
9417 | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
9418 | ||+----------------------------------------------+ ||
9419 | |+-----------------------------------------------------------+|
9420 | ||+-------------------------------------------------+ ||
9421 | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
9422 | ||+-------------------------------------------------+ ||
9423 | |+-----------------------------------------------------------+|
9424 +--------------------------------------------------------------------+-------------------------------------------------------------+
9427 -Wshift-count-negative
9428 ----------------------
9429 This diagnostic is enabled by default.
9431 **Diagnostic text:**
9433 +--------------------------------------------------------------+
9434 |:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
9435 +--------------------------------------------------------------+
9438 -Wshift-count-overflow
9439 ----------------------
9440 This diagnostic is enabled by default.
9442 **Diagnostic text:**
9444 +-------------------------------------------------------------------+
9445 |:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
9446 +-------------------------------------------------------------------+
9449 -Wshift-negative-value
9450 ----------------------
9451 This diagnostic is enabled by default.
9453 **Diagnostic text:**
9455 +------------------------------------------------------------------------------------+
9456 |:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
9457 +------------------------------------------------------------------------------------+
9460 -Wshift-op-parentheses
9461 ----------------------
9462 This diagnostic is enabled by default.
9464 **Diagnostic text:**
9466 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9467 |:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
9468 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9473 This diagnostic is enabled by default.
9475 **Diagnostic text:**
9477 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9478 |:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`|
9479 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9482 -Wshift-sign-overflow
9483 ---------------------
9484 **Diagnostic text:**
9486 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9487 |:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`|
9488 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9493 **Diagnostic text:**
9495 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
9496 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9497 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
9502 **Diagnostic text:**
9504 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
9505 |:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
9506 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
9511 **Diagnostic text:**
9513 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9514 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9515 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9517 +---------------------------------------------------------------------------------------------------------------------------------------------+
9518 |:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9519 +---------------------------------------------------------------------------------------------------------------------------------------------+
9524 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9526 -Wsigned-enum-bitfield
9527 ----------------------
9528 **Diagnostic text:**
9530 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9531 |:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`|
9532 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9535 -Wsizeof-array-argument
9536 -----------------------
9537 This diagnostic is enabled by default.
9539 **Diagnostic text:**
9541 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9542 |:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
9543 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9546 -Wsizeof-array-decay
9547 --------------------
9548 This diagnostic is enabled by default.
9550 **Diagnostic text:**
9552 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9553 |:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
9554 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9557 -Wsizeof-pointer-memaccess
9558 --------------------------
9559 This diagnostic is enabled by default.
9561 **Diagnostic text:**
9563 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9564 |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`|
9565 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9567 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
9568 |:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`|
9569 | ||:diagtext:`destination`|| |
9570 | |+-----------------------+| |
9571 | ||:diagtext:`source` || |
9572 | |+-----------------------+| |
9573 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
9578 This diagnostic is enabled by default.
9580 **Diagnostic text:**
9582 +--------------------------------------------------------------------------------------------------+
9583 |:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
9584 +--------------------------------------------------------------------------------------------------+
9587 -Wsometimes-uninitialized
9588 -------------------------
9589 **Diagnostic text:**
9591 +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
9592 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
9593 | ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ ||
9594 | |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| ||
9595 | ||:diagtext:`captured`|| ||| ||:diagtext:`true` || ||
9596 | |+--------------------+| ||| |+-----------------+| ||
9597 | | | ||| ||:diagtext:`false`|| ||
9598 | | | ||| |+-----------------+| ||
9599 | | | ||+---------------------------------------------------------------+-------------------+ ||
9600 | | | |+------------------------------------------------------------------------------------------------------------+|
9601 | | | ||+-------------------------------------------------------+--------------------------------------------------+||
9602 | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
9603 | | | ||| ||:diagtext:`is entered` ||||
9604 | | | ||| |+------------------------------------------------+|||
9605 | | | ||| ||:diagtext:`exits because its condition is false`||||
9606 | | | ||| |+------------------------------------------------+|||
9607 | | | ||+-------------------------------------------------------+--------------------------------------------------+||
9608 | | | |+------------------------------------------------------------------------------------------------------------+|
9609 | | | ||+-------------------------------------------------------+--------------------------------------------------+||
9610 | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
9611 | | | ||| ||:diagtext:`condition is true` ||||
9612 | | | ||| |+------------------------------------------------+|||
9613 | | | ||| ||:diagtext:`exits because its condition is false`||||
9614 | | | ||| |+------------------------------------------------+|||
9615 | | | ||+-------------------------------------------------------+--------------------------------------------------+||
9616 | | | |+------------------------------------------------------------------------------------------------------------+|
9617 | | | ||+----------------------------------------------------------------------+ ||
9618 | | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| ||
9619 | | | ||+----------------------------------------------------------------------+ ||
9620 | | | |+------------------------------------------------------------------------------------------------------------+|
9621 | | | ||:diagtext:`its declaration is reached` ||
9622 | | | |+------------------------------------------------------------------------------------------------------------+|
9623 | | | ||+---------------------------------------------+ ||
9624 | | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| ||
9625 | | | ||+---------------------------------------------+ ||
9626 | | | |+------------------------------------------------------------------------------------------------------------+|
9627 +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
9630 -Wsource-uses-openmp
9631 --------------------
9632 Some of the diagnostics controlled by this flag are enabled by default.
9634 **Diagnostic text:**
9636 +------------------------------------------------------------------------------------------------------------------------------+
9637 |:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
9638 +------------------------------------------------------------------------------------------------------------------------------+
9640 +------------------------------------------------------------------------------+
9641 |:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
9642 +------------------------------------------------------------------------------+
9647 **Diagnostic text:**
9649 +----------------------------------------------------------------------------------------------------------------------+
9650 |:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
9651 +----------------------------------------------------------------------------------------------------------------------+
9656 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9660 This diagnostic is enabled by default.
9662 Also controls `-Wgnu-static-float-init`_.
9664 **Diagnostic text:**
9666 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9667 |:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
9668 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9673 Some of the diagnostics controlled by this flag are enabled by default.
9675 **Diagnostic text:**
9677 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9678 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
9679 | ||:diagtext:`function`|| |
9680 | |+--------------------+| |
9681 | ||:diagtext:`variable`|| |
9682 | |+--------------------+| |
9683 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9685 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9686 |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
9687 | ||:diagtext:`function`|| |
9688 | |+--------------------+| |
9689 | ||:diagtext:`variable`|| |
9690 | |+--------------------+| |
9691 +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
9694 -Wstatic-inline-explicit-instantiation
9695 --------------------------------------
9696 This diagnostic is enabled by default.
9698 **Diagnostic text:**
9700 +-------------------------------------------------+--------------------+--------------------------------------------------------+
9701 |:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
9702 | ||:diagtext:`static`|| |
9703 | |+------------------+| |
9704 | ||:diagtext:`inline`|| |
9705 | |+------------------+| |
9706 +-------------------------------------------------+--------------------+--------------------------------------------------------+
9709 -Wstatic-local-in-inline
9710 ------------------------
9711 This diagnostic is enabled by default.
9713 **Diagnostic text:**
9715 +--------------------------------------------------------------------------------------------------------------------------------+
9716 |:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
9717 +--------------------------------------------------------------------------------------------------------------------------------+
9722 This diagnostic is enabled by default.
9724 **Diagnostic text:**
9726 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9727 |:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
9728 +----------------------------------------------------------------------------------------------------------------------------------------------------+
9733 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9737 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9741 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9745 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9749 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9753 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9757 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9761 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9765 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9769 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9773 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9777 **Diagnostic text:**
9779 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9780 |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
9781 | ||:diagtext:`function declaration is not` || |
9782 | |+------------------------------------------------------------+| |
9783 | ||:diagtext:`block declaration is not` || |
9784 | |+------------------------------------------------------------+| |
9785 | ||:diagtext:`old-style function definition is not preceded by`|| |
9786 | |+------------------------------------------------------------+| |
9787 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9792 **Diagnostic text:**
9794 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9795 |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
9796 | ||:diagtext:`function declaration is not` || |
9797 | |+------------------------------------------------------------+| |
9798 | ||:diagtext:`block declaration is not` || |
9799 | |+------------------------------------------------------------+| |
9800 | ||:diagtext:`old-style function definition is not preceded by`|| |
9801 | |+------------------------------------------------------------+| |
9802 +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
9805 -Wstrict-selector-match
9806 -----------------------
9807 **Diagnostic text:**
9809 +--------------------------------------------------------------------------------------------------------------+
9810 |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
9811 +--------------------------------------------------------------------------------------------------------------+
9816 This diagnostic is enabled by default.
9818 **Diagnostic text:**
9820 +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
9821 |:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
9822 | ||:diagtext:`a string literal`|| |
9823 | |+----------------------------+| |
9824 | ||:diagtext:`@encode` || |
9825 | |+----------------------------+| |
9826 +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
9831 **Diagnostic text:**
9833 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9834 |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
9835 +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
9840 This diagnostic is enabled by default.
9842 **Diagnostic text:**
9844 +------------------------------------------------------------------------------------------------------------------------------------------+
9845 |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
9846 +------------------------------------------------------------------------------------------------------------------------------------------+
9851 This diagnostic is enabled by default.
9853 **Diagnostic text:**
9855 +----------------------------------------------------------------------------------------------------------------------------------+
9856 |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
9857 +----------------------------------------------------------------------------------------------------------------------------------+
9860 -Wstrlcpy-strlcat-size
9861 ----------------------
9862 This diagnostic is enabled by default.
9864 **Diagnostic text:**
9866 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9867 |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`|
9868 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9873 This diagnostic is enabled by default.
9875 **Diagnostic text:**
9877 +--------------------------------------------------------------------------------------------------------------------------------+
9878 |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
9879 +--------------------------------------------------------------------------------------------------------------------------------+
9881 +-------------------------------------------------------------------------------------------------------+
9882 |:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
9883 +-------------------------------------------------------------------------------------------------------+
9885 +-------------------------------------------------------------------------------------------+
9886 |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
9887 +-------------------------------------------------------------------------------------------+
9890 -Wsuper-class-method-mismatch
9891 -----------------------------
9892 **Diagnostic text:**
9894 +--------------------------------------------------------------------------------------------------------------------------------+
9895 |:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
9896 +--------------------------------------------------------------------------------------------------------------------------------+
9901 This diagnostic is enabled by default.
9903 **Diagnostic text:**
9905 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9906 |:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
9907 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9909 +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9910 |:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9911 | ||+-----------------------------------------------------------------------------------------------+ ||
9912 | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
9913 | ||+-----------------------------------------------------------------------------------------------+ ||
9914 | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9915 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
9916 | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
9917 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
9918 | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9919 | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9920 | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
9921 | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9922 | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9923 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9924 | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9925 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9926 | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9927 +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9929 +------------------------------------------------------------------------------------------------+
9930 |:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
9931 +------------------------------------------------------------------------------------------------+
9936 This diagnostic is enabled by default.
9938 **Diagnostic text:**
9940 +-------------------------------------------------------------------------+
9941 |:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
9942 +-------------------------------------------------------------------------+
9947 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9951 **Diagnostic text:**
9953 +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9954 |:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9955 | ||+----------------------------------------------------------------------------------------------------------+ ||
9956 | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9957 | ||+----------------------------------------------------------------------------------------------------------+ ||
9958 | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9959 | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9960 | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9961 | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9962 | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9963 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9964 | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
9965 | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
9966 | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9967 | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9968 | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
9969 | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
9970 | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
9971 +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9974 -Wsync-fetch-and-nand-semantics-changed
9975 ---------------------------------------
9976 This diagnostic is enabled by default.
9978 **Diagnostic text:**
9980 +-------------------------------------------------------------------------------------------------------------------------------------------+
9981 |:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
9982 +-------------------------------------------------------------------------------------------------------------------------------------------+
9987 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
9989 -Wtautological-compare
9990 ----------------------
9991 Some of the diagnostics controlled by this flag are enabled by default.
9993 Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
9995 **Diagnostic text:**
9997 +---------------------------+---------------------------+--------------------------------------------------+------------------------+
9998 |:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
9999 | ||:diagtext:`self-` || ||:diagtext:`false` ||
10000 | |+-------------------------+| |+----------------------+|
10001 | ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
10002 | |+-------------------------+| |+----------------------+|
10003 | | | ||:diagtext:`a constant`||
10004 | | | |+----------------------+|
10005 +---------------------------+---------------------------+--------------------------------------------------+------------------------+
10007 +-------------------------------------------------------------------------------------+-------------------+
10008 |:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
10009 | ||:diagtext:`false`||
10010 | |+-----------------+|
10011 | ||:diagtext:`true` ||
10012 | |+-----------------+|
10013 +-------------------------------------------------------------------------------------+-------------------+
10016 -Wtautological-constant-compare
10017 -------------------------------
10018 This diagnostic is enabled by default.
10020 Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
10022 **Diagnostic text:**
10024 +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
10025 |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10026 | ||:placeholder:`D`|| ||:placeholder:`B`|| ||:diagtext:`false`||
10027 | |+----------------+| |+----------------+| |+-----------------+|
10028 | ||:placeholder:`B`|| ||:placeholder:`D`|| ||:diagtext:`true` ||
10029 | |+----------------+| |+----------------+| |+-----------------+|
10030 +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
10033 -Wtautological-constant-out-of-range-compare
10034 --------------------------------------------
10035 This diagnostic is enabled by default.
10037 **Diagnostic text:**
10039 +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
10040 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10041 | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`||
10042 | |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+|
10043 | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` ||
10044 | |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+|
10045 | ||:diagtext:`true` || ||:diagtext:`boolean expression` || | |
10046 | |+----------------------------------------------+| |+--------------------------------------------------------+| | |
10047 | ||:diagtext:`false` || | | | |
10048 | |+----------------------------------------------+| | | | |
10049 +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
10052 -Wtautological-overlap-compare
10053 ------------------------------
10054 **Diagnostic text:**
10056 +-----------------------------------------------------------------------------------------+-------------------+
10057 |:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
10058 | ||:diagtext:`false`||
10059 | |+-----------------+|
10060 | ||:diagtext:`true` ||
10061 | |+-----------------+|
10062 +-----------------------------------------------------------------------------------------+-------------------+
10065 -Wtautological-pointer-compare
10066 ------------------------------
10067 This diagnostic is enabled by default.
10069 **Diagnostic text:**
10071 +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10072 |:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`|
10073 | ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
10074 | |+-------------------------+| |+-----------------------+| |+-----------------+| |
10075 | ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
10076 | |+-------------------------+| |+-----------------------+| |+-----------------+| |
10077 +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
10079 +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10080 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
10081 | ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
10082 | |+----------------------+| |+-----------------------+| |+-----------------+|
10083 | ||:diagtext:`function` || || || ||:diagtext:`false`||
10084 | |+----------------------+| |+-----------------------+| |+-----------------+|
10085 | ||:diagtext:`array` || | | | |
10086 | |+----------------------+| | | | |
10087 +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
10090 -Wtautological-undefined-compare
10091 --------------------------------
10092 This diagnostic is enabled by default.
10094 **Diagnostic text:**
10096 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10097 |:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
10098 | ||:diagtext:`true` ||
10099 | |+-----------------+|
10100 | ||:diagtext:`false`||
10101 | |+-----------------+|
10102 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10104 +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10105 |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
10106 | ||:diagtext:`true` ||
10107 | |+-----------------+|
10108 | ||:diagtext:`false`||
10109 | |+-----------------+|
10110 +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
10113 -Wtautological-unsigned-enum-zero-compare
10114 -----------------------------------------
10115 This diagnostic is enabled by default.
10117 **Diagnostic text:**
10119 +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
10120 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10121 | ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| ||:diagtext:`false`||
10122 | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
10123 | ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
10124 | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
10125 +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
10128 -Wtautological-unsigned-zero-compare
10129 ------------------------------------
10130 This diagnostic is enabled by default.
10132 **Diagnostic text:**
10134 +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
10135 |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
10136 | ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| ||:diagtext:`false`||
10137 | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
10138 | ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
10139 | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
10140 +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
10143 -Wtentative-definition-incomplete-type
10144 --------------------------------------
10145 This diagnostic is enabled by default.
10147 **Diagnostic text:**
10149 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10150 |:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
10151 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10156 Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
10159 -Wthread-safety-analysis
10160 ------------------------
10161 **Diagnostic text:**
10163 +----------------------------------------------------------------------------------------------------------------------------------------------------+
10164 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
10165 +----------------------------------------------------------------------------------------------------------------------------------------------------+
10167 +---------------------------------------------------------------------------------------------------------------------------------+
10168 |:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
10169 +---------------------------------------------------------------------------------------------------------------------------------+
10171 +---------------------------------------------------------------------+
10172 |:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
10173 +---------------------------------------------------------------------+
10175 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10176 |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
10177 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10179 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10180 |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
10181 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
10183 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
10184 |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
10185 +------------------------------------------------------------------------------------------------------------------------------------------------------------+
10187 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10188 |:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
10189 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10191 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10192 |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10193 | ||+------------------------------------------+ ||
10194 | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10195 | ||+------------------------------------------+ ||
10196 | |+--------------------------------------------------------+|
10197 | ||+------------------------------------------------------+||
10198 | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10199 | ||+------------------------------------------------------+||
10200 | |+--------------------------------------------------------+|
10201 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10203 +--------------------------------------------------------------------------------------------------------------------------------------------------+
10204 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
10205 +--------------------------------------------------------------------------------------------------------------------------------------------------+
10207 +------------------------------------------------------------------------------------------------------------------------------------+
10208 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
10209 +------------------------------------------------------------------------------------------------------------------------------------+
10211 +----------------------------------------------------------------------------------------------------------------------------------+
10212 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
10213 +----------------------------------------------------------------------------------------------------------------------------------+
10215 +--------------------------------------------------------------------------------------------------------------------------------------------+
10216 |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
10217 +--------------------------------------------------------------------------------------------------------------------------------------------+
10219 +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10220 |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
10221 | ||:diagtext:`shared` || ||:diagtext:`shared` || |
10222 | |+---------------------+| |+---------------------+| |
10223 | ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
10224 | |+---------------------+| |+---------------------+| |
10225 +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
10227 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
10228 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
10229 | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
10230 | |+-------------------+| |+---------------------------------+|
10231 | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
10232 | |+-------------------+| |+---------------------------------+|
10233 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
10235 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10236 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10237 | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
10238 | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10239 | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
10240 | |+-------------------+| |+--------------------------------------------------------+|
10241 | | | ||+------------------------------------------------------+||
10242 | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10243 | | | ||+------------------------------------------------------+||
10244 | | | |+--------------------------------------------------------+|
10245 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10247 +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
10248 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
10249 | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
10250 | |+-------------------+| |+---------------------------------+|
10251 | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
10252 | |+-------------------+| |+---------------------------------+|
10253 +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
10255 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10256 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10257 | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
10258 | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10259 | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
10260 | |+-------------------+| |+--------------------------------------------------------+|
10261 | | | ||+------------------------------------------------------+||
10262 | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10263 | | | ||+------------------------------------------------------+||
10264 | | | |+--------------------------------------------------------+|
10265 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10268 -Wthread-safety-attributes
10269 --------------------------
10270 **Diagnostic text:**
10272 +----------------------------------------------------------------------------------------------------------------------------------------+
10273 |:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
10274 +----------------------------------------------------------------------------------------------------------------------------------------+
10276 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10277 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
10278 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10280 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10281 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
10282 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10284 +----------------------------------------------------------------------------------------------------------------------------------+
10285 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
10286 +----------------------------------------------------------------------------------------------------------------------------------+
10288 +------------------------------------------------------------------------------------------------------------------------------------+
10289 |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
10290 +------------------------------------------------------------------------------------------------------------------------------------+
10293 -Wthread-safety-beta
10294 --------------------
10295 **Diagnostic text:**
10297 +------------------------------------------------------------------+
10298 |:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
10299 +------------------------------------------------------------------+
10302 -Wthread-safety-negative
10303 ------------------------
10304 **Diagnostic text:**
10306 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10307 |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
10308 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10311 -Wthread-safety-precise
10312 -----------------------
10313 **Diagnostic text:**
10315 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10316 |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10317 | ||+------------------------------------------+ ||
10318 | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10319 | ||+------------------------------------------+ ||
10320 | |+--------------------------------------------------------+|
10321 | ||+------------------------------------------------------+||
10322 | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10323 | ||+------------------------------------------------------+||
10324 | |+--------------------------------------------------------+|
10325 +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10327 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10328 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10329 | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
10330 | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10331 | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
10332 | |+-------------------+| |+--------------------------------------------------------+|
10333 | | | ||+------------------------------------------------------+||
10334 | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10335 | | | ||+------------------------------------------------------+||
10336 | | | |+--------------------------------------------------------+|
10337 +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10339 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10340 |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10341 | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
10342 | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10343 | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
10344 | |+-------------------+| |+--------------------------------------------------------+|
10345 | | | ||+------------------------------------------------------+||
10346 | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10347 | | | ||+------------------------------------------------------+||
10348 | | | |+--------------------------------------------------------+|
10349 +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10352 -Wthread-safety-reference
10353 -------------------------
10354 **Diagnostic text:**
10356 +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10357 |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10358 | ||+------------------------------------------+ ||
10359 | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10360 | ||+------------------------------------------+ ||
10361 | |+--------------------------------------------------------+|
10362 | ||+------------------------------------------------------+||
10363 | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10364 | ||+------------------------------------------------------+||
10365 | |+--------------------------------------------------------+|
10366 +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10368 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10369 |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
10370 | ||+------------------------------------------+ ||
10371 | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
10372 | ||+------------------------------------------+ ||
10373 | |+--------------------------------------------------------+|
10374 | ||+------------------------------------------------------+||
10375 | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
10376 | ||+------------------------------------------------------+||
10377 | |+--------------------------------------------------------+|
10378 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
10381 -Wthread-safety-verbose
10382 -----------------------
10383 **Diagnostic text:**
10385 +---------------------------------------------------------------------+
10386 |:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
10387 +---------------------------------------------------------------------+
10392 This diagnostic is enabled by default.
10394 **Diagnostic text:**
10396 +-----------------------------------------------------------------------------------------------------+
10397 |:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
10398 +-----------------------------------------------------------------------------------------------------+
10400 +------------------------------------------------------------------+
10401 |:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
10402 +------------------------------------------------------------------+
10404 +-------------------------------------------------------+
10405 |:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
10406 +-------------------------------------------------------+
10408 +-------------------------------------------------------------------------------+
10409 |:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
10410 +-------------------------------------------------------------------------------+
10415 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
10419 This diagnostic is enabled by default.
10421 **Diagnostic text:**
10423 +----------------------------------------------------------------------------------------------------------------------------+
10424 |:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
10425 +----------------------------------------------------------------------------------------------------------------------------+
10427 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
10428 |:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
10429 | ||+-------------------------------------------------+||
10430 | |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
10431 | ||+-------------------------------------------------+||
10432 | |+---------------------------------------------------+|
10434 | |+---------------------------------------------------+|
10435 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
10437 +---------------------------------------------------------------------------------------------------+
10438 |:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
10439 +---------------------------------------------------------------------------------------------------+
10442 -Wtypedef-redefinition
10443 ----------------------
10444 This diagnostic is enabled by default.
10446 **Diagnostic text:**
10448 +--------------------------------------------------------------------------------------------------------------------------+
10449 |:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
10450 +--------------------------------------------------------------------------------------------------------------------------+
10455 This diagnostic is enabled by default.
10457 **Diagnostic text:**
10459 +-------------------------------------------------------------------------------------------------------------------------------------+
10460 |:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
10461 +-------------------------------------------------------------------------------------------------------------------------------------+
10464 -Wunable-to-open-stats-file
10465 ---------------------------
10466 This diagnostic is enabled by default.
10468 **Diagnostic text:**
10470 +-------------------------------------------------------------------------------------------------------------------------------------------+
10471 |:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
10472 +-------------------------------------------------------------------------------------------------------------------------------------------+
10475 -Wunavailable-declarations
10476 --------------------------
10477 This diagnostic is enabled by default.
10479 **Diagnostic text:**
10481 +----------------------------------------------------------------------------------------------------------------------+
10482 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
10483 +----------------------------------------------------------------------------------------------------------------------+
10486 -Wundeclared-selector
10487 ---------------------
10488 **Diagnostic text:**
10490 +----------------------------------------------------------------------------------+
10491 |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
10492 +----------------------------------------------------------------------------------+
10494 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10495 |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
10496 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10501 **Diagnostic text:**
10503 +---------------------------------------------------------------------------------------------+
10504 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
10505 +---------------------------------------------------------------------------------------------+
10508 -Wundefined-bool-conversion
10509 ---------------------------
10510 This diagnostic is enabled by default.
10512 **Diagnostic text:**
10514 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10515 |:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`|
10516 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10518 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10519 |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
10520 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10523 -Wundefined-func-template
10524 -------------------------
10525 **Diagnostic text:**
10527 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10528 |:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
10529 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10534 This diagnostic is enabled by default.
10536 **Diagnostic text:**
10538 +----------------------------------------------------------------------------------------------------------------+
10539 |:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
10540 +----------------------------------------------------------------------------------------------------------------+
10543 -Wundefined-internal
10544 --------------------
10545 This diagnostic is enabled by default.
10547 **Diagnostic text:**
10549 +---------------------------+----------------------+-----------------------------------------------------------------------------------+
10550 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
10551 | ||:diagtext:`function`|| |
10552 | |+--------------------+| |
10553 | ||:diagtext:`variable`|| |
10554 | |+--------------------+| |
10555 +---------------------------+----------------------+-----------------------------------------------------------------------------------+
10558 -Wundefined-internal-type
10559 -------------------------
10560 **Diagnostic text:**
10562 +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
10563 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`|
10564 | ||:diagtext:`function`|| |
10565 | |+--------------------+| |
10566 | ||:diagtext:`variable`|| |
10567 | |+--------------------+| |
10568 +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
10571 -Wundefined-reinterpret-cast
10572 ----------------------------
10573 **Diagnostic text:**
10575 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10576 |:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`|
10577 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10579 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10580 |:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
10581 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10584 -Wundefined-var-template
10585 ------------------------
10586 This diagnostic is enabled by default.
10588 **Diagnostic text:**
10590 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10591 |:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
10592 +---------------------------------------------------------------------------------------------------------------------------------------------------------+
10595 -Wunevaluated-expression
10596 ------------------------
10597 This diagnostic is enabled by default.
10599 Also controls `-Wpotentially-evaluated-expression`_.
10601 **Diagnostic text:**
10603 +-----------------------------------------------------------------------------------------------------------+
10604 |:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
10605 +-----------------------------------------------------------------------------------------------------------+
10608 -Wunguarded-availability
10609 ------------------------
10610 Some of the diagnostics controlled by this flag are enabled by default.
10612 Also controls `-Wunguarded-availability-new`_.
10614 **Diagnostic text:**
10616 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10617 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
10618 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10621 -Wunguarded-availability-new
10622 ----------------------------
10623 This diagnostic is enabled by default.
10625 **Diagnostic text:**
10627 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10628 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
10629 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10634 This diagnostic is enabled by default.
10636 **Diagnostic text:**
10638 +-------------------------------------------------------------------------------------------------------------------+
10639 |:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
10640 +-------------------------------------------------------------------------------------------------------------------+
10642 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
10643 |:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
10644 +-------------------------------------------------------------------------------------------------------------------------------------------------------+
10646 +-----------------------------------------------------------------------------------------------+
10647 |:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
10648 +-----------------------------------------------------------------------------------------------+
10650 +--------------------------------------------------------------------------------------------------------------------------------------+
10651 |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
10652 +--------------------------------------------------------------------------------------------------------------------------------------+
10654 +---------------------------------------------------------------------------------------------+
10655 |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
10656 +---------------------------------------------------------------------------------------------+
10659 -Wunicode-whitespace
10660 --------------------
10661 This diagnostic is enabled by default.
10663 **Diagnostic text:**
10665 +-------------------------------------------------------------------------------+
10666 |:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
10667 +-------------------------------------------------------------------------------+
10672 Some of the diagnostics controlled by this flag are enabled by default.
10674 Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
10676 **Diagnostic text:**
10678 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10679 |:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
10680 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10682 +-----------------------------------------------------------------------------------------------------------------------+
10683 |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
10684 +-----------------------------------------------------------------------------------------------------------------------+
10686 +--------------------------------------------------------------------------------------------------------------------------------------+
10687 |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
10688 +--------------------------------------------------------------------------------------------------------------------------------------+
10690 +------------------------------------------------------------------------------------------------------------------------------------------------+
10691 |:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
10692 +------------------------------------------------------------------------------------------------------------------------------------------------+
10694 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10695 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
10696 +---------------------------------------------------------------------------------------------------------------------------------------------------+
10698 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10699 |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
10700 +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
10702 +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
10703 |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
10704 | ||:diagtext:`used here` ||
10705 | |+-----------------------------+|
10706 | ||:diagtext:`captured by block`||
10707 | |+-----------------------------+|
10708 +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
10713 This diagnostic is enabled by default.
10715 **Diagnostic text:**
10717 +-----------------------------------------------------------------------------------------------------------+
10718 |:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
10719 +-----------------------------------------------------------------------------------------------------------+
10722 -Wunknown-attributes
10723 --------------------
10724 This diagnostic is enabled by default.
10726 **Diagnostic text:**
10728 +-----------------------------------------------------------------------------------------------------------+
10729 |:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
10730 +-----------------------------------------------------------------------------------------------------------+
10733 -Wunknown-escape-sequence
10734 -------------------------
10735 This diagnostic is enabled by default.
10737 **Diagnostic text:**
10739 +-----------------------------------------------------------------------------------------------+
10740 |:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
10741 +-----------------------------------------------------------------------------------------------+
10746 Some of the diagnostics controlled by this flag are enabled by default.
10748 **Diagnostic text:**
10750 +------------------------------------------------------------------------------------+
10751 |:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
10752 +------------------------------------------------------------------------------------+
10754 +--------------------------------------------------------------------------+
10755 |:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
10756 +--------------------------------------------------------------------------+
10758 +-----------------------------------------------------------------------+
10759 |:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
10760 +-----------------------------------------------------------------------+
10762 +--------------------------------------------------------------------------------------------+
10763 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
10764 +--------------------------------------------------------------------------------------------+
10766 +--------------------------------------------------------------------------------------------------------------------------+
10767 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
10768 +--------------------------------------------------------------------------------------------------------------------------+
10770 +----------------------------------------------------------------------------------------------+
10771 |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
10772 +----------------------------------------------------------------------------------------------+
10774 +----------------------------------------------------------------------------+
10775 |:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
10776 +----------------------------------------------------------------------------+
10778 +-------------------------------------------------------------+
10779 |:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
10780 +-------------------------------------------------------------+
10782 +----------------------------------------------------------------------------------------------------+
10783 |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
10784 +----------------------------------------------------------------------------------------------------+
10786 +--------------------------------------------------------------------------------------+
10787 |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
10788 +--------------------------------------------------------------------------------------+
10790 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10791 |:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
10792 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10794 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10795 |:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
10796 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
10798 +----------------------------------------------------------------------------------------------+
10799 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
10800 +----------------------------------------------------------------------------------------------+
10802 +--------------------------------------------------------------------------------+
10803 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
10804 +--------------------------------------------------------------------------------+
10806 +----------------------------------------------------------------------------------------------------+
10807 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
10808 +----------------------------------------------------------------------------------------------------+
10810 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10811 |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
10812 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10814 +----------------------------------------------------------------------------------------------------+
10815 |:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
10816 +----------------------------------------------------------------------------------------------------+
10819 -Wunknown-sanitizers
10820 --------------------
10821 This diagnostic is enabled by default.
10823 **Diagnostic text:**
10825 +-----------------------------------------------------------------------------------------------+
10826 |:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
10827 +-----------------------------------------------------------------------------------------------+
10830 -Wunknown-warning-option
10831 ------------------------
10832 This diagnostic is enabled by default.
10834 **Diagnostic text:**
10836 +----------------------------------------------------------------------------------------------------+
10837 |:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
10838 +----------------------------------------------------------------------------------------------------+
10840 +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
10841 |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
10842 | ||:diagtext:`warning`|| || ||
10843 | |+-------------------+| |+------------------------------------------------------------+|
10844 | ||:diagtext:`remark` || ||+----------------------------------------------------------+||
10845 | |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
10846 | | | ||+----------------------------------------------------------+||
10847 | | | |+------------------------------------------------------------+|
10848 +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
10850 +-------------------------------------------------------------------------------------------------------------------------------------------+
10851 |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
10852 +-------------------------------------------------------------------------------------------------------------------------------------------+
10855 -Wunnamed-type-template-args
10856 ----------------------------
10857 Some of the diagnostics controlled by this flag are enabled by default.
10859 Also controls `-Wc++98-compat-unnamed-type-template-args`_.
10861 **Diagnostic text:**
10863 +--------------------------------------------------------------------------+
10864 |:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
10865 +--------------------------------------------------------------------------+
10868 -Wunneeded-internal-declaration
10869 -------------------------------
10870 **Diagnostic text:**
10872 +---------------------------+----------------------+---------------------------------------------------------------------------------+
10873 |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
10874 | ||:diagtext:`function`|| |
10875 | |+--------------------+| |
10876 | ||:diagtext:`variable`|| |
10877 | |+--------------------+| |
10878 +---------------------------+----------------------+---------------------------------------------------------------------------------+
10880 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10881 |:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
10882 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
10885 -Wunneeded-member-function
10886 --------------------------
10887 **Diagnostic text:**
10889 +---------------------------------------------------------------------------------------------------------------------------------------+
10890 |:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
10891 +---------------------------------------------------------------------------------------------------------------------------------------+
10896 Also controls `-Wunreachable-code-loop-increment`_.
10898 **Diagnostic text:**
10900 +------------------------------------------------------------------+
10901 |:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
10902 +------------------------------------------------------------------+
10905 -Wunreachable-code-aggressive
10906 -----------------------------
10907 Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
10910 -Wunreachable-code-break
10911 ------------------------
10912 **Diagnostic text:**
10914 +---------------------------------------------------------------------+
10915 |:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
10916 +---------------------------------------------------------------------+
10919 -Wunreachable-code-loop-increment
10920 ---------------------------------
10921 **Diagnostic text:**
10923 +-------------------------------------------------------------------------------------------------+
10924 |:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
10925 +-------------------------------------------------------------------------------------------------+
10928 -Wunreachable-code-return
10929 -------------------------
10930 **Diagnostic text:**
10932 +----------------------------------------------------------------------+
10933 |:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
10934 +----------------------------------------------------------------------+
10939 This diagnostic is enabled by default.
10941 **Diagnostic text:**
10943 +----------------------------------------------------------------------------------------------------+
10944 |:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
10945 +----------------------------------------------------------------------------------------------------+
10947 +-----------------------------------------------------------------------------------------------------+
10948 |:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
10949 +-----------------------------------------------------------------------------------------------------+
10954 This diagnostic is enabled by default.
10956 **Diagnostic text:**
10958 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10959 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10960 +-----------------------------------------------------------------------------------------------------------------------------------------------+
10962 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10963 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10964 +-------------------------------------------------------------------------------------------------------------------------------------------------+
10967 -Wunsupported-availability-guard
10968 --------------------------------
10969 This diagnostic is enabled by default.
10971 **Diagnostic text:**
10973 +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
10974 |:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
10975 | ||:diagtext:`@available` || ||:diagtext:`@available` || |
10976 | |+----------------------------------+| |+----------------------------------+| |
10977 | ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| |
10978 | |+----------------------------------+| |+----------------------------------+| |
10979 +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
10984 This diagnostic is enabled by default.
10986 **Diagnostic text:**
10988 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10989 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
10990 +--------------------------------------------------------------------------------------------------------------------------------------------------------+
10993 -Wunsupported-dll-base-class-template
10994 -------------------------------------
10995 **Diagnostic text:**
10997 +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
10998 |:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
10999 | ||:diagtext:`already instantiated` || |
11000 | |+----------------------------------+| |
11001 | ||:diagtext:`explicitly specialized`|| |
11002 | |+----------------------------------+| |
11003 +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
11006 -Wunsupported-friend
11007 --------------------
11008 This diagnostic is enabled by default.
11010 **Diagnostic text:**
11012 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11013 |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
11014 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11016 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11017 |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`|
11018 +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11021 -Wunsupported-gpopt
11022 -------------------
11023 This diagnostic is enabled by default.
11025 **Diagnostic text:**
11027 +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11028 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
11030 | |+-----------------------------------------+| |
11031 | ||:diagtext:`the implicit usage of` |nbsp| || |
11032 | |+-----------------------------------------+| |
11033 +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
11038 This diagnostic is enabled by default.
11040 **Diagnostic text:**
11042 +-----------------------------------------------------------------------------------------------------------------------------------------------+
11043 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11044 +-----------------------------------------------------------------------------------------------------------------------------------------------+
11046 +-------------------------------------------------------------------------------------------------------------------------------------------------+
11047 |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
11048 +-------------------------------------------------------------------------------------------------------------------------------------------------+
11051 -Wunsupported-visibility
11052 ------------------------
11053 This diagnostic is enabled by default.
11055 **Diagnostic text:**
11057 +------------------------------------------------------------------------------------------------------+
11058 |:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
11059 +------------------------------------------------------------------------------------------------------+
11062 -Wunusable-partial-specialization
11063 ---------------------------------
11064 This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
11066 **Diagnostic text:**
11068 +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11069 |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
11070 | ||:diagtext:`class` || ||:diagtext:`a template parameter`|| |
11071 | |+--------------------+| |+--------------------------------+| |
11072 | ||:diagtext:`variable`|| ||:diagtext:`template parameters` || |
11073 | |+--------------------+| |+--------------------------------+| |
11074 +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
11079 Some of the diagnostics controlled by this flag are enabled by default.
11081 Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
11086 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11088 -Wunused-command-line-argument
11089 ------------------------------
11090 This diagnostic is enabled by default.
11092 **Diagnostic text:**
11094 +-------------------------------------------------------------------------------------------------------------------------------+
11095 |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
11096 +-------------------------------------------------------------------------------------------------------------------------------+
11098 +---------------------------------------------------------------------------------------------------------------+
11099 |:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
11100 +---------------------------------------------------------------------------------------------------------------+
11102 +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11103 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
11104 | ||+------------------------------------------------------------------+||
11105 | ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
11106 | ||+------------------------------------------------------------------+||
11107 | |+--------------------------------------------------------------------+|
11109 | |+--------------------------------------------------------------------+|
11110 +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
11112 +----------------------------------------------------------------------------------------------------------------+
11113 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
11114 +----------------------------------------------------------------------------------------------------------------+
11116 +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11117 |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
11118 | ||+-------------------------------------------------------------------------+||
11119 | ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
11120 | ||+-------------------------------------------------------------------------+||
11121 | |+---------------------------------------------------------------------------+|
11123 | |+---------------------------------------------------------------------------+|
11124 +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
11126 +---------------------------------------------------------------------------------------------------------+
11127 |:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
11128 +---------------------------------------------------------------------------------------------------------+
11130 +----------------------------------------------------------------------------------------------------------------------+
11131 |:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
11132 +----------------------------------------------------------------------------------------------------------------------+
11135 -Wunused-comparison
11136 -------------------
11137 This diagnostic is enabled by default.
11139 **Diagnostic text:**
11141 +---------------------------+-----------------------------------------+--------------------------------------------+
11142 |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
11143 | ||+----------------+--------------------+|| |
11144 | |||+--------------+|:diagtext:`equality`||| |
11146 | |||+--------------+| ||| |
11147 | ||||:diagtext:`in`|| ||| |
11148 | |||+--------------+| ||| |
11149 | ||+----------------+--------------------+|| |
11150 | |+---------------------------------------+| |
11151 | ||:diagtext:`relational` || |
11152 | |+---------------------------------------+| |
11153 +---------------------------+-----------------------------------------+--------------------------------------------+
11156 -Wunused-const-variable
11157 -----------------------
11158 **Diagnostic text:**
11160 +------------------------------------------------------------------------------+
11161 |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
11162 +------------------------------------------------------------------------------+
11165 -Wunused-exception-parameter
11166 ----------------------------
11167 **Diagnostic text:**
11169 +-----------------------------------------------------------------------------------------+
11170 |:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
11171 +-----------------------------------------------------------------------------------------+
11176 Also controls `-Wunneeded-internal-declaration`_.
11178 **Diagnostic text:**
11180 +------------------------------------------------------------------------------+
11181 |:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
11182 +------------------------------------------------------------------------------+
11185 -Wunused-getter-return-value
11186 ----------------------------
11187 This diagnostic is enabled by default.
11189 **Diagnostic text:**
11191 +------------------------------------------------------------------------------------------------------------------+
11192 |:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
11193 +------------------------------------------------------------------------------------------------------------------+
11198 **Diagnostic text:**
11200 +---------------------------------------------------------------------------+
11201 |:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
11202 +---------------------------------------------------------------------------+
11205 -Wunused-lambda-capture
11206 -----------------------
11207 **Diagnostic text:**
11209 +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11210 |:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
11211 | ||:diagtext:`used` ||
11212 | |+------------------------------------------------+|
11213 | ||:diagtext:`required to be captured for this use`||
11214 | |+------------------------------------------------+|
11215 +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
11218 -Wunused-local-typedef
11219 ----------------------
11220 **Diagnostic text:**
11222 +-----------------------------------------------------+------------------------+------------------------+
11223 |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
11224 | ||:diagtext:`typedef` || |
11225 | |+----------------------+| |
11226 | ||:diagtext:`type alias`|| |
11227 | |+----------------------+| |
11228 +-----------------------------------------------------+------------------------+------------------------+
11231 -Wunused-local-typedefs
11232 -----------------------
11233 Synonym for `-Wunused-local-typedef`_.
11238 **Diagnostic text:**
11240 +--------------------------------------------------------+
11241 |:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
11242 +--------------------------------------------------------+
11245 -Wunused-member-function
11246 ------------------------
11247 Also controls `-Wunneeded-member-function`_.
11249 **Diagnostic text:**
11251 +-------------------------------------------------------------------------------------+
11252 |:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
11253 +-------------------------------------------------------------------------------------+
11258 **Diagnostic text:**
11260 +-------------------------------------------------------------------------------+
11261 |:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
11262 +-------------------------------------------------------------------------------+
11265 -Wunused-private-field
11266 ----------------------
11267 **Diagnostic text:**
11269 +-----------------------------------------------------------------------------------------------------------+
11270 |:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
11271 +-----------------------------------------------------------------------------------------------------------+
11274 -Wunused-property-ivar
11275 ----------------------
11276 **Diagnostic text:**
11278 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
11279 |:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
11280 +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
11285 This diagnostic is enabled by default.
11287 **Diagnostic text:**
11289 +-------------------------------------------------------------------------------------------------------------------------------------------+
11290 |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
11291 +-------------------------------------------------------------------------------------------------------------------------------------------+
11296 Also controls `-Wunneeded-internal-declaration`_.
11298 **Diagnostic text:**
11300 +-----------------------------------------------------+----------------------+----------------------------------------------------+
11301 |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
11302 | ||:diagtext:`function`|| |
11303 | |+--------------------+| |
11304 | ||:diagtext:`variable`|| |
11305 | |+--------------------+| |
11306 +-----------------------------------------------------+----------------------+----------------------------------------------------+
11311 This diagnostic is enabled by default.
11313 Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
11315 **Diagnostic text:**
11317 +-------------------------------------------------------------------------------------------------------------------------------------------+
11318 |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
11319 +-------------------------------------------------------------------------------------------------------------------------------------------+
11321 +----------------------------------------------------------------------------------------------------------------------------+
11322 |:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
11323 +----------------------------------------------------------------------------------------------------------------------------+
11325 +---------------------------------------------------------------+
11326 |:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
11327 +---------------------------------------------------------------+
11329 +-----------------------------------------------------------------------------------------------+
11330 |:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
11331 +-----------------------------------------------------------------------------------------------+
11336 Also controls `-Wunused-const-variable`_.
11338 **Diagnostic text:**
11340 +------------------------------------------------------------------------------+
11341 |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
11342 +------------------------------------------------------------------------------+
11345 -Wunused-volatile-lvalue
11346 ------------------------
11347 This diagnostic is enabled by default.
11349 **Diagnostic text:**
11351 +----------------------------------------------------------------------------------------------------------------+
11352 |:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
11353 +----------------------------------------------------------------------------------------------------------------+
11356 -Wused-but-marked-unused
11357 ------------------------
11358 **Diagnostic text:**
11360 +---------------------------------------------------------------------------------------------+
11361 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
11362 +---------------------------------------------------------------------------------------------+
11365 -Wuser-defined-literals
11366 -----------------------
11367 This diagnostic is enabled by default.
11369 **Diagnostic text:**
11371 +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
11372 |:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
11373 | ||:diagtext:`; no literal will invoke this operator`||
11374 | |+--------------------------------------------------+|
11376 | |+--------------------------------------------------+|
11377 +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
11380 -Wuser-defined-warnings
11381 -----------------------
11382 This diagnostic is enabled by default.
11384 **Diagnostic text:**
11386 The text of this diagnostic is not controlled by Clang.
11391 This diagnostic is enabled by default.
11393 **Diagnostic text:**
11395 +-----------------------------------------------------------------------------------------------------+
11396 |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
11397 +-----------------------------------------------------------------------------------------------------+
11399 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11400 |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`|
11401 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11403 +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
11404 |:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
11405 | ||:diagtext:`an object that undergoes default argument promotion`|| |
11406 | |+---------------------------------------------------------------+| |
11407 | ||:diagtext:`an object of reference type` || |
11408 | |+---------------------------------------------------------------+| |
11409 | ||:diagtext:`a parameter declared with the 'register' keyword` || |
11410 | |+---------------------------------------------------------------+| |
11411 +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
11416 Some of the diagnostics controlled by this flag are enabled by default.
11418 **Diagnostic text:**
11420 +--------------------------------------------------------------------------------+
11421 |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
11422 +--------------------------------------------------------------------------------+
11424 +-----------------------------------------------------------------------------------------------------------+
11425 |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
11426 +-----------------------------------------------------------------------------------------------------------+
11428 +------------------------------------------------------------------------+
11429 |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
11430 +------------------------------------------------------------------------+
11435 This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
11437 **Diagnostic text:**
11439 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11440 |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
11441 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11444 -Wvector-conversion
11445 -------------------
11446 **Diagnostic text:**
11448 +------------------------------------------------------------------------+----------------------------------------------------------------+
11449 |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
11450 | ||:diagtext:`assigning to different types` ||
11451 | |+--------------------------------------------------------------+|
11452 | ||:diagtext:`passing to parameter of different type` ||
11453 | |+--------------------------------------------------------------+|
11454 | ||:diagtext:`returning from function with different return type`||
11455 | |+--------------------------------------------------------------+|
11456 | ||:diagtext:`converting between types` ||
11457 | |+--------------------------------------------------------------+|
11458 | ||:diagtext:`initializing with expression of different type` ||
11459 | |+--------------------------------------------------------------+|
11460 | ||:diagtext:`sending to parameter of different type` ||
11461 | |+--------------------------------------------------------------+|
11462 | ||:diagtext:`casting between types` ||
11463 | |+--------------------------------------------------------------+|
11464 +------------------------------------------------------------------------+----------------------------------------------------------------+
11467 -Wvector-conversions
11468 --------------------
11469 Synonym for `-Wvector-conversion`_.
11474 This diagnostic is enabled by default.
11476 **Diagnostic text:**
11478 +----------------------------------------------------------------------------------------------+
11479 |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
11480 +----------------------------------------------------------------------------------------------+
11482 +-----------------------------------------------------------------------------------------------+
11483 |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
11484 +-----------------------------------------------------------------------------------------------+
11486 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11487 |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
11488 +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
11493 This diagnostic is enabled by default.
11495 **Diagnostic text:**
11497 +---------------------------------------------------------------------------------------------------------------------------------------------+
11498 |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
11499 +---------------------------------------------------------------------------------------------------------------------------------------------+
11501 +----------------------------------------------------------------------------------------------------------------------------------------------+
11502 |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
11503 +----------------------------------------------------------------------------------------------------------------------------------------------+
11508 **Diagnostic text:**
11510 +-----------------------------------------------------------------+
11511 |:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
11512 +-----------------------------------------------------------------+
11517 **Diagnostic text:**
11519 +-------------------------------------------------------------------------------+
11520 |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
11521 +-------------------------------------------------------------------------------+
11524 -Wvoid-ptr-dereference
11525 ----------------------
11526 This diagnostic is enabled by default.
11528 **Diagnostic text:**
11530 +--------------------------------------------------------------------------------------------------------------------+
11531 |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
11532 +--------------------------------------------------------------------------------------------------------------------+
11535 -Wvolatile-register-var
11536 -----------------------
11537 This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
11539 -Wweak-template-vtables
11540 -----------------------
11541 **Diagnostic text:**
11543 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11544 |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
11545 +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
11550 **Diagnostic text:**
11552 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11553 |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
11554 +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
11559 This diagnostic is enabled by default.
11561 Also controls `-Wdeprecated-writable-strings`_.
11563 **Diagnostic text:**
11565 +-------------------------------------------------------------------------------------------------------------------------+
11566 |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
11567 +-------------------------------------------------------------------------------------------------------------------------+
11572 Synonym for `-Wwritable-strings`_.
11575 -Wzero-as-null-pointer-constant
11576 -------------------------------
11577 **Diagnostic text:**
11579 +--------------------------------------------------------------------+
11580 |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
11581 +--------------------------------------------------------------------+
11584 -Wzero-length-array
11585 -------------------
11586 **Diagnostic text:**
11588 +------------------------------------------------------------------------+
11589 |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
11590 +------------------------------------------------------------------------+