1.. 2 ------------------------------------------------------------------- 3 NOTE: This file is automatically generated by running clang-tblgen 4 -gen-diag-docs. Do not edit this file by hand!! 5 ------------------------------------------------------------------- 6 7.. Add custom CSS to output. FIXME: This should be put into <head> rather 8 than the start of <body>. 9.. raw:: html 10 11 <style> 12 table.docutils { 13 width: 1px; 14 } 15 table.docutils td { 16 border: none; 17 padding: 0 0 0 0.2em; 18 vertical-align: middle; 19 white-space: nowrap; 20 width: 1px; 21 font-family: monospace; 22 } 23 table.docutils tr + tr { 24 border-top: 0.2em solid #aaa; 25 } 26 .error { 27 font-family: monospace; 28 font-weight: bold; 29 color: #c00; 30 } 31 .warning { 32 font-family: monospace; 33 font-weight: bold; 34 color: #80a; 35 } 36 .remark { 37 font-family: monospace; 38 font-weight: bold; 39 color: #00c; 40 } 41 .diagtext { 42 font-family: monospace; 43 font-weight: bold; 44 } 45 </style> 46 47.. FIXME: rST doesn't support formatting this, so we format all <td> elements 48 as monospace font face instead. 49.. |nbsp| unicode:: 0xA0 50 :trim: 51 52.. Roles generated by clang-tblgen. 53.. role:: error 54.. role:: warning 55.. role:: remark 56.. role:: diagtext 57.. role:: placeholder(emphasis) 58 59========================= 60Diagnostic flags in Clang 61========================= 62.. contents:: 63 :local: 64 65Introduction 66============ 67 68This page lists the diagnostic flags currently supported by Clang. 69 70Diagnostic flags 71================ 72 73-W 74-- 75Synonym for `-Wextra`_. 76 77 78-W#pragma-messages 79------------------ 80This diagnostic is enabled by default. 81 82**Diagnostic text:** 83 84The text of this diagnostic is not controlled by Clang. 85 86 87-W#warnings 88----------- 89This diagnostic is enabled by default. 90 91**Diagnostic text:** 92 93The text of this diagnostic is not controlled by Clang. 94 95 96-WCFString-literal 97------------------ 98This diagnostic is enabled by default. 99 100**Diagnostic text:** 101 102+------------------------------------------------------------------------------------------------------------------------------------+ 103|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`| 104+------------------------------------------------------------------------------------------------------------------------------------+ 105 106 107-WCL4 108----- 109Some of the diagnostics controlled by this flag are enabled by default. 110 111Controls `-Wall`_, `-Wextra`_. 112 113 114-WIndependentClass-attribute 115---------------------------- 116This diagnostic is enabled by default. 117 118**Diagnostic text:** 119 120+------------------------------------------------------------------------------------------------------------------------------+ 121|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`| 122+------------------------------------------------------------------------------------------------------------------------------+ 123 124+----------------------------------------------------------------------------------------------------------------------------------------------------+ 125|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`| 126+----------------------------------------------------------------------------------------------------------------------------------------------------+ 127 128 129-WNSObject-attribute 130-------------------- 131This diagnostic is enabled by default. 132 133**Diagnostic text:** 134 135+--------------------------------------------------------------------------------------------------------------+ 136|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`| 137+--------------------------------------------------------------------------------------------------------------+ 138 139 140-Wabi 141----- 142This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 143 144-Wabsolute-value 145---------------- 146This diagnostic is enabled by default. 147 148**Diagnostic text:** 149 150+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 151|:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`| 152+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 153 154+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 155|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`| 156| ||:diagtext:`pointer` || | 157| |+--------------------+| | 158| ||:diagtext:`function`|| | 159| |+--------------------+| | 160| ||:diagtext:`array` || | 161| |+--------------------+| | 162+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 163 164+------------------------------------------------------------------------------------------------------------------------------------------+ 165|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`| 166+------------------------------------------------------------------------------------------------------------------------------------------+ 167 168+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 169|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`| 170| ||:diagtext:`integer` || ||:diagtext:`integer` || | 171| |+--------------------------+| |+--------------------------+| | 172| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| | 173| |+--------------------------+| |+--------------------------+| | 174| ||:diagtext:`complex` || ||:diagtext:`complex` || | 175| |+--------------------------+| |+--------------------------+| | 176+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 177 178 179-Wabstract-final-class 180---------------------- 181This diagnostic is enabled by default. 182 183**Diagnostic text:** 184 185+-----------------------------------------------------------------+--------------------+-------------+ 186|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`| 187| ||:diagtext:`final` || | 188| |+------------------+| | 189| ||:diagtext:`sealed`|| | 190| |+------------------+| | 191+-----------------------------------------------------------------+--------------------+-------------+ 192 193 194-Wabstract-vbase-init 195--------------------- 196**Diagnostic text:** 197 198+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 199|:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`| 200+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 201 202 203-Waddress 204--------- 205This diagnostic is enabled by default. 206 207Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_. 208 209 210-Waddress-of-packed-member 211-------------------------- 212This diagnostic is enabled by default. 213 214**Diagnostic text:** 215 216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 217|:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`| 218+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 219 220 221-Waddress-of-temporary 222---------------------- 223This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error. 224 225**Diagnostic text:** 226 227+-----------------------------------------------------------------------------------------------------------+ 228|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`| 229+-----------------------------------------------------------------------------------------------------------+ 230 231 232-Waggregate-return 233------------------ 234This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 235 236-Wall 237----- 238Some of the diagnostics controlled by this flag are enabled by default. 239 240Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_. 241 242 243-Walloca-with-align-alignof 244--------------------------- 245This diagnostic is enabled by default. 246 247**Diagnostic text:** 248 249+--------------------------------------------------------------------------------------------------------------------+ 250|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`| 251+--------------------------------------------------------------------------------------------------------------------+ 252 253 254-Wambiguous-delete 255------------------ 256This diagnostic is enabled by default. 257 258**Diagnostic text:** 259 260+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 261|:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`| 262+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 263 264 265-Wambiguous-ellipsis 266-------------------- 267This diagnostic is enabled by default. 268 269**Diagnostic text:** 270 271+------------------------------------------------------------------------------------------------+---------------------------------------------+ 272|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+| 273| ||:diagtext:`, not a function parameter pack`|| 274| |+-------------------------------------------+| 275| || || 276| |+-------------------------------------------+| 277+------------------------------------------------------------------------------------------------+---------------------------------------------+ 278 279 280-Wambiguous-macro 281----------------- 282This diagnostic is enabled by default. 283 284**Diagnostic text:** 285 286+-------------------------------------------------------------------------------------------+ 287|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`| 288+-------------------------------------------------------------------------------------------+ 289 290 291-Wambiguous-member-template 292--------------------------- 293This diagnostic is enabled by default. 294 295**Diagnostic text:** 296 297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 298|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`| 299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 300 301 302-Wanalyzer-incompatible-plugin 303------------------------------ 304This diagnostic is enabled by default. 305 306**Diagnostic text:** 307 308+----------------------------------------------------------------------------------------------------------------------------------------+ 309|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`| 310+----------------------------------------------------------------------------------------------------------------------------------------+ 311 312 313-Wanonymous-pack-parens 314----------------------- 315This diagnostic is enabled by default. 316 317**Diagnostic text:** 318 319+---------------------------------------------------------------------------------------------------------+ 320|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`| 321+---------------------------------------------------------------------------------------------------------+ 322 323 324-Warc 325----- 326This diagnostic is enabled by default. 327 328Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_. 329 330 331-Warc-bridge-casts-disallowed-in-nonarc 332--------------------------------------- 333This diagnostic is enabled by default. 334 335**Diagnostic text:** 336 337+-------------------------------------------------------------------------------------------------------------+ 338|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`| 339+-------------------------------------------------------------------------------------------------------------+ 340 341 342-Warc-maybe-repeated-use-of-weak 343-------------------------------- 344**Diagnostic text:** 345 346+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 347|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 348| ||:diagtext:`variable` || ||:diagtext:`function`|| | 349| |+-----------------------------+| |+--------------------+| | 350| ||:diagtext:`property` || ||:diagtext:`method` || | 351| |+-----------------------------+| |+--------------------+| | 352| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 353| |+-----------------------------+| |+--------------------+| | 354| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 355| |+-----------------------------+| |+--------------------+| | 356+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 357 358 359-Warc-non-pod-memaccess 360----------------------- 361This diagnostic is enabled by default. 362 363**Diagnostic text:** 364 365+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 366|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`| 367| ||:diagtext:`destination for`|| | 368| |+---------------------------+| | 369| ||:diagtext:`source of` || | 370| |+---------------------------+| | 371+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 372 373 374-Warc-performSelector-leaks 375--------------------------- 376This diagnostic is enabled by default. 377 378**Diagnostic text:** 379 380+-------------------------------------------------------------------------------------------------------+ 381|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`| 382+-------------------------------------------------------------------------------------------------------+ 383 384 385-Warc-repeated-use-of-weak 386-------------------------- 387Also controls `-Warc-maybe-repeated-use-of-weak`_. 388 389**Diagnostic text:** 390 391+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 392|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 393| ||:diagtext:`variable` || ||:diagtext:`function`|| | 394| |+-----------------------------+| |+--------------------+| | 395| ||:diagtext:`property` || ||:diagtext:`method` || | 396| |+-----------------------------+| |+--------------------+| | 397| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 398| |+-----------------------------+| |+--------------------+| | 399| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 400| |+-----------------------------+| |+--------------------+| | 401+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 402 403 404-Warc-retain-cycles 405------------------- 406This diagnostic is enabled by default. 407 408**Diagnostic text:** 409 410+------------------------------------------------------------------------------------------------------------------------------------------------------+ 411|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`| 412+------------------------------------------------------------------------------------------------------------------------------------------------------+ 413 414 415-Warc-unsafe-retained-assign 416---------------------------- 417This diagnostic is enabled by default. 418 419**Diagnostic text:** 420 421+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 422|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 423| ||:diagtext:`array literal` || ||:diagtext:`property`|| | 424| |+-------------------------------+| |+--------------------+| | 425| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| | 426| |+-------------------------------+| |+--------------------+| | 427| ||:diagtext:`numeric literal` || | | | 428| |+-------------------------------+| | | | 429| ||:diagtext:`boxed expression` || | | | 430| |+-------------------------------+| | | | 431| ||:diagtext:`<should not happen>`|| | | | 432| |+-------------------------------+| | | | 433| ||:diagtext:`block literal` || | | | 434| |+-------------------------------+| | | | 435+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 436 437+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 438|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 439| ||:diagtext:`weak` || ||:diagtext:`property`|| | 440| |+------------------------------+| |+--------------------+| | 441| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| | 442| |+------------------------------+| |+--------------------+| | 443+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 444 445+-----------------------------------------------------------------------------------------------------------------------------+ 446|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`| 447+-----------------------------------------------------------------------------------------------------------------------------+ 448 449 450-Wargument-outside-range 451------------------------ 452This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error. 453 454**Diagnostic text:** 455 456+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 457|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`| 458+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 459 460 461-Warray-bounds 462-------------- 463This diagnostic is enabled by default. 464 465**Diagnostic text:** 466 467+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 468|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 469| || || | 470| |+-------------+| | 471| ||:diagtext:`s`|| | 472| |+-------------+| | 473+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 474 475+----------------------------------------------------------------------------------------------------------------------------------+ 476|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`| 477+----------------------------------------------------------------------------------------------------------------------------------+ 478 479+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 480|:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`| 481+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 482 483+-----------------------------------------------------------------------------------+ 484|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`| 485+-----------------------------------------------------------------------------------+ 486 487 488-Warray-bounds-pointer-arithmetic 489--------------------------------- 490**Diagnostic text:** 491 492+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 493|:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 494| || || | 495| |+-------------+| | 496| ||:diagtext:`s`|| | 497| |+-------------+| | 498+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 499 500+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 501|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`| 502+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 503 504 505-Wasm 506----- 507This diagnostic is enabled by default. 508 509Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_. 510 511 512-Wasm-ignored-qualifier 513----------------------- 514This diagnostic is enabled by default. 515 516**Diagnostic text:** 517 518+----------------------------------------------------------------------------------------------------------+ 519|:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`| 520+----------------------------------------------------------------------------------------------------------+ 521 522+-------------------------------------------------------------------------------------+ 523|:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`| 524+-------------------------------------------------------------------------------------+ 525 526 527-Wasm-operand-widths 528-------------------- 529This diagnostic is enabled by default. 530 531**Diagnostic text:** 532 533+-----------------------------------------------------------------------------------------------------------------------+ 534|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`| 535+-----------------------------------------------------------------------------------------------------------------------+ 536 537 538-Wassign-enum 539------------- 540**Diagnostic text:** 541 542+---------------------------------------------------------------------------------------------------------------+ 543|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`| 544+---------------------------------------------------------------------------------------------------------------+ 545 546 547-Wassume 548-------- 549This diagnostic is enabled by default. 550 551**Diagnostic text:** 552 553+-----------------------------------------------------------------------------------------------------------------------------------------+ 554|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`| 555+-----------------------------------------------------------------------------------------------------------------------------------------+ 556 557 558-Wat-protocol 559------------- 560This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 561 562-Watimport-in-framework-header 563------------------------------ 564This diagnostic is enabled by default. 565 566**Diagnostic text:** 567 568+------------------------------------------------------------------------------------------------------------------------------------+ 569|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`| 570+------------------------------------------------------------------------------------------------------------------------------------+ 571 572 573-Watomic-alignment 574------------------ 575This diagnostic is enabled by default. 576 577**Diagnostic text:** 578 579+---------------------------+------------------------+------------------------------------------------------------------------------+ 580|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`| 581| ||:diagtext:`large` || | 582| |+----------------------+| | 583| ||:diagtext:`misaligned`|| | 584| |+----------------------+| | 585+---------------------------+------------------------+------------------------------------------------------------------------------+ 586 587 588-Watomic-implicit-seq-cst 589------------------------- 590**Diagnostic text:** 591 592+---------------------------------------------------------------------------------------------------------------------------------------+ 593|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`| 594+---------------------------------------------------------------------------------------------------------------------------------------+ 595 596 597-Watomic-memory-ordering 598------------------------ 599This diagnostic is enabled by default. 600 601**Diagnostic text:** 602 603+-------------------------------------------------------------------------------------------+ 604|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`| 605+-------------------------------------------------------------------------------------------+ 606 607 608-Watomic-properties 609------------------- 610Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_. 611 612 613-Watomic-property-with-user-defined-accessor 614-------------------------------------------- 615This diagnostic is enabled by default. 616 617**Diagnostic text:** 618 619+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 620|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+| 621| ||:diagtext:`getter`|| ||:diagtext:`getter`|| 622| |+------------------+| |+------------------+| 623| ||:diagtext:`setter`|| ||:diagtext:`setter`|| 624| |+------------------+| |+------------------+| 625+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 626 627 628-Wattribute-packed-for-bitfield 629------------------------------- 630This diagnostic is enabled by default. 631 632**Diagnostic text:** 633 634+-------------------------------------------------------------------------------------------------------------------------------------------------+ 635|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`| 636+-------------------------------------------------------------------------------------------------------------------------------------------------+ 637 638 639-Wattributes 640------------ 641This diagnostic is enabled by default. 642 643Controls `-Wignored-attributes`_, `-Wunknown-attributes`_. 644 645 646-Wauto-disable-vptr-sanitizer 647----------------------------- 648This diagnostic is enabled by default. 649 650**Diagnostic text:** 651 652+------------------------------------------------------------------------------------------------------+ 653|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`| 654+------------------------------------------------------------------------------------------------------+ 655 656 657-Wauto-import 658------------- 659**Diagnostic text:** 660 661+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 662|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`| 663| ||:diagtext:`include` || | 664| |+-------------------------------+| | 665| ||:diagtext:`import` || | 666| |+-------------------------------+| | 667| ||:diagtext:`include\_next` || | 668| |+-------------------------------+| | 669| ||:diagtext:`\_\_include\_macros`|| | 670| |+-------------------------------+| | 671+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 672 673 674-Wauto-storage-class 675-------------------- 676This diagnostic is enabled by default. 677 678**Diagnostic text:** 679 680+---------------------------------------------------------------------------------------------------------------------------------------------+ 681|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`| 682+---------------------------------------------------------------------------------------------------------------------------------------------+ 683 684 685-Wauto-var-id 686------------- 687This diagnostic is enabled by default. 688 689**Diagnostic text:** 690 691+-------------------------------------------------------------------------------------------------------+ 692|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`| 693+-------------------------------------------------------------------------------------------------------+ 694 695 696-Wavailability 697-------------- 698This diagnostic is enabled by default. 699 700**Diagnostic text:** 701 702+--------------------------------------------------------------------------------------------------------------+ 703|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`| 704+--------------------------------------------------------------------------------------------------------------+ 705 706+------------------------------------------------------------------------------+----------------------------------------+ 707|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+| 708| ||:diagtext:`on '+load' method` || 709| |+--------------------------------------+| 710| ||:diagtext:`with constructor attribute`|| 711| |+--------------------------------------+| 712| ||:diagtext:`with destructor attribute` || 713| |+--------------------------------------+| 714+------------------------------------------------------------------------------+----------------------------------------+ 715 716+---------------------------------------------------------------------------------------------------------------+ 717|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`| 718+---------------------------------------------------------------------------------------------------------------+ 719 720+------------------------------------------------------------------------------------------------------------------------+ 721|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`| 722+------------------------------------------------------------------------------------------------------------------------+ 723 724+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 725|:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`| 726| ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| | 727| |+----------------------+| |+----------------------+| | 728| ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| | 729| |+----------------------+| |+----------------------+| | 730| ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || | 731| |+----------------------+| |+----------------------+| | 732+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 733 734+---------------------------------------------------------------------------------------------------------------------------+ 735|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`| 736+---------------------------------------------------------------------------------------------------------------------------+ 737 738+---------------------------------------------------------------------------------------+ 739|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`| 740+---------------------------------------------------------------------------------------+ 741 742+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 743|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 744| || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| | 745| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 746| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || | 747| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 748| | | ||:diagtext:`obsoleted before` || | | | 749| | | |+-----------------------------+| | | | 750+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 751 752+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 753|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`| 754| || || ||:diagtext:`the protocol method it implements`|| | 755| |+------------------------------+| |+---------------------------------------------+| | 756| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || | 757| |+------------------------------+| |+---------------------------------------------+| | 758+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 759 760 761-Wbackend-plugin 762---------------- 763This diagnostic is enabled by default. 764 765**Diagnostic text:** 766 767The text of this diagnostic is not controlled by Clang. 768 769 770-Wbackslash-newline-escape 771-------------------------- 772This diagnostic is enabled by default. 773 774**Diagnostic text:** 775 776+-------------------------------------------------------------------------------+ 777|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`| 778+-------------------------------------------------------------------------------+ 779 780 781-Wbad-function-cast 782------------------- 783**Diagnostic text:** 784 785+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 786|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`| 787+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 788 789 790-Wbinary-literal 791---------------- 792Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_. 793 794 795-Wbind-to-temporary-copy 796------------------------ 797Also controls `-Wc++98-compat-bind-to-temporary-copy`_. 798 799**Diagnostic text:** 800 801+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 802|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 803| ||:diagtext:`private` || 804| |+---------------------+| 805| ||:diagtext:`protected`|| 806| |+---------------------+| 807+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 808 809+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 810|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 811| ||:diagtext:`copying variable` || | 812| |+----------------------------------------------------+| | 813| ||:diagtext:`copying parameter` || | 814| |+----------------------------------------------------+| | 815| ||:diagtext:`returning object` || | 816| |+----------------------------------------------------+| | 817| ||:diagtext:`initializing statement expression result`|| | 818| |+----------------------------------------------------+| | 819| ||:diagtext:`throwing object` || | 820| |+----------------------------------------------------+| | 821| ||:diagtext:`copying member subobject` || | 822| |+----------------------------------------------------+| | 823| ||:diagtext:`copying array element` || | 824| |+----------------------------------------------------+| | 825| ||:diagtext:`allocating object` || | 826| |+----------------------------------------------------+| | 827| ||:diagtext:`copying temporary` || | 828| |+----------------------------------------------------+| | 829| ||:diagtext:`initializing base subobject` || | 830| |+----------------------------------------------------+| | 831| ||:diagtext:`initializing vector element` || | 832| |+----------------------------------------------------+| | 833| ||:diagtext:`capturing value` || | 834| |+----------------------------------------------------+| | 835+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 836 837 838-Wbinding-in-condition 839---------------------- 840This diagnostic is enabled by default. 841 842**Diagnostic text:** 843 844+--------------------------------------------------------------------------------------------------------------+ 845|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`| 846+--------------------------------------------------------------------------------------------------------------+ 847 848 849-Wbitfield-constant-conversion 850------------------------------ 851This diagnostic is enabled by default. 852 853**Diagnostic text:** 854 855+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 856|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 857+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 858 859 860-Wbitfield-enum-conversion 861-------------------------- 862**Diagnostic text:** 863 864+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 865|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`| 866+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 867 868+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 869|:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`| 870+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 871 872+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 873|:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`| 874+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 875 876 877-Wbitfield-width 878---------------- 879This diagnostic is enabled by default. 880 881**Diagnostic text:** 882 883+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 884|:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+| 885| || || 886| |+-------------+| 887| ||:diagtext:`s`|| 888| |+-------------+| 889+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 890 891+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 892|:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+| 893| || || 894| |+-------------+| 895| ||:diagtext:`s`|| 896| |+-------------+| 897+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 898 899 900-Wbitwise-op-parentheses 901------------------------ 902This diagnostic is enabled by default. 903 904**Diagnostic text:** 905 906+-----------------------------------------------------------------------------------------------------------+ 907|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`| 908+-----------------------------------------------------------------------------------------------------------+ 909 910 911-Wblock-capture-autoreleasing 912----------------------------- 913This diagnostic is enabled by default. 914 915**Diagnostic text:** 916 917+-----------------------------------------------------------------------------------------------------------------------------+ 918|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`| 919+-----------------------------------------------------------------------------------------------------------------------------+ 920 921 922-Wbool-conversion 923----------------- 924This diagnostic is enabled by default. 925 926Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_. 927 928**Diagnostic text:** 929 930+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 931|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`| 932+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 933 934 935-Wbool-conversions 936------------------ 937Synonym for `-Wbool-conversion`_. 938 939 940-Wbraced-scalar-init 941-------------------- 942This diagnostic is enabled by default. 943 944**Diagnostic text:** 945 946+-----------------------------------------------------------------------+ 947|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`| 948+-----------------------------------------------------------------------+ 949 950 951-Wbridge-cast 952------------- 953This diagnostic is enabled by default. 954 955**Diagnostic text:** 956 957+------------------------------------------------------------------------------------------------------------------------------------------+ 958|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`| 959+------------------------------------------------------------------------------------------------------------------------------------------+ 960 961+-------------------------------------------------------------------------------------------------------+ 962|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`| 963+-------------------------------------------------------------------------------------------------------+ 964 965 966-Wbuiltin-macro-redefined 967------------------------- 968This diagnostic is enabled by default. 969 970**Diagnostic text:** 971 972+---------------------------------------------------------------+ 973|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`| 974+---------------------------------------------------------------+ 975 976+---------------------------------------------------------------+ 977|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`| 978+---------------------------------------------------------------+ 979 980 981-Wbuiltin-memcpy-chk-size 982------------------------- 983This diagnostic is enabled by default. 984 985**Diagnostic text:** 986 987+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 988|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 989+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 990 991 992-Wbuiltin-requires-header 993------------------------- 994This diagnostic is enabled by default. 995 996**Diagnostic text:** 997 998+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 999|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`| 1000+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1001 1002 1003-Wc++-compat 1004------------ 1005**Diagnostic text:** 1006 1007+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1008|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 1009| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 1010| |+-------------------------+|+------------------+| |+-------------------------+| | 1011| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 1012| |+-------------------------+|+------------------+| |+-------------------------+| | 1013+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1014 1015 1016-Wc++0x-compat 1017-------------- 1018Synonym for `-Wc++11-compat`_. 1019 1020 1021-Wc++0x-extensions 1022------------------ 1023Synonym for `-Wc++11-extensions`_. 1024 1025 1026-Wc++0x-narrowing 1027----------------- 1028Synonym for `-Wc++11-narrowing`_. 1029 1030 1031-Wc++11-compat 1032-------------- 1033Some of the diagnostics controlled by this flag are enabled by default. 1034 1035Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_. 1036 1037**Diagnostic text:** 1038 1039+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1040|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1041| ||:diagtext:`have type 'long long'`|| | 1042| |+---------------------------------+| | 1043| ||:diagtext:`be ill-formed` || | 1044| |+---------------------------------+| | 1045+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1046 1047+--------------------------------------------------------------------------------------------------------------+ 1048|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`| 1049+--------------------------------------------------------------------------------------------------------------+ 1050 1051+-------------------------------------------------------------------------------------------------------------------------+ 1052|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`| 1053+-------------------------------------------------------------------------------------------------------------------------+ 1054 1055+-------------------------------------------------------------------------------------------+ 1056|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`| 1057+-------------------------------------------------------------------------------------------+ 1058 1059+--------------------------------------------------------------------------------------------------------------------------------+ 1060|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`| 1061+--------------------------------------------------------------------------------------------------------------------------------+ 1062 1063+--------------------------------------------------------------------------------+ 1064|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`| 1065+--------------------------------------------------------------------------------+ 1066 1067+--------------------------------------------------------------------------------------------------------------------------------------+ 1068|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`| 1069+--------------------------------------------------------------------------------------------------------------------------------------+ 1070 1071+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1072|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`| 1073+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1074 1075+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1076|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`| 1077+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1078 1079+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1080|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1081| ||:diagtext:`have type 'long long'`|| | 1082| |+---------------------------------+| | 1083| ||:diagtext:`be ill-formed` || | 1084| |+---------------------------------+| | 1085+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1086 1087 1088-Wc++11-compat-deprecated-writable-strings 1089------------------------------------------ 1090This diagnostic is enabled by default. 1091 1092**Diagnostic text:** 1093 1094+---------------------------------------------------------------------------------------------------------------------------------+ 1095|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 1096+---------------------------------------------------------------------------------------------------------------------------------+ 1097 1098 1099-Wc++11-compat-pedantic 1100----------------------- 1101Some of the diagnostics controlled by this flag are enabled by default. 1102 1103Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_. 1104 1105 1106-Wc++11-compat-reserved-user-defined-literal 1107-------------------------------------------- 1108**Diagnostic text:** 1109 1110+----------------------------------------------------------------------------------------------------------------------------------+ 1111|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`| 1112+----------------------------------------------------------------------------------------------------------------------------------+ 1113 1114 1115-Wc++11-extensions 1116------------------ 1117Some of the diagnostics controlled by this flag are enabled by default. 1118 1119Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_. 1120 1121**Diagnostic text:** 1122 1123+-------------------------------------------------------------------------------+ 1124|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`| 1125+-------------------------------------------------------------------------------+ 1126 1127+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1128|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 1129| ||:diagtext:`integral` || | 1130| |+-----------------------+| | 1131| ||:diagtext:`enumeration`|| | 1132| |+-----------------------+| | 1133+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1134 1135+---------------------------------------------------------------------------------+ 1136|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`| 1137+---------------------------------------------------------------------------------+ 1138 1139+-----------------------------------------------------------------------------------------------------------+ 1140|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 1141+-----------------------------------------------------------------------------------------------------------+ 1142 1143+---------------------------+-----------------------+--------------------------------------------------------------+ 1144|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`| 1145| ||:diagtext:`defaulted`|| | 1146| |+---------------------+| | 1147| ||:diagtext:`deleted` || | 1148| |+---------------------+| | 1149+---------------------------+-----------------------+--------------------------------------------------------------+ 1150 1151+-----------------------------------------------------------------------------------------------------------------------------------+ 1152|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1153+-----------------------------------------------------------------------------------------------------------------------------------+ 1154 1155+--------------------------------------------------------------------------------------------------+ 1156|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 1157+--------------------------------------------------------------------------------------------------+ 1158 1159+------------------------------------------------------------------------------------------+ 1160|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`| 1161+------------------------------------------------------------------------------------------+ 1162 1163+-----------------------------------------------------------------------------+ 1164|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 1165+-----------------------------------------------------------------------------+ 1166 1167+--------------------------------------------------------------------------------+ 1168|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`| 1169+--------------------------------------------------------------------------------+ 1170 1171+------------------------------------------------------------------------------------------+ 1172|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`| 1173+------------------------------------------------------------------------------------------+ 1174 1175+---------------------------------------------------------------------------------------------------------+ 1176|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`| 1177+---------------------------------------------------------------------------------------------------------+ 1178 1179+----------------------------------------------------------------------------------------------------------------------------+ 1180|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1181+----------------------------------------------------------------------------------------------------------------------------+ 1182 1183+-------------------------------------------------------------------------------------------------------------+ 1184|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`| 1185+-------------------------------------------------------------------------------------------------------------+ 1186 1187+--------------------------------------------------------------------------------------------------+ 1188|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`| 1189+--------------------------------------------------------------------------------------------------+ 1190 1191+----------------------------------------------------------------------------------------------+ 1192|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`| 1193+----------------------------------------------------------------------------------------------+ 1194 1195+------------------------------------------------------------------------------+ 1196|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`| 1197+------------------------------------------------------------------------------+ 1198 1199+--------------------------------------------------------------------------------+ 1200|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`| 1201+--------------------------------------------------------------------------------+ 1202 1203+----------------------------------------------------------------------------------------------------------------------------------+ 1204|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`| 1205+----------------------------------------------------------------------------------------------------------------------------------+ 1206 1207+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1208|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`| 1209| ||:diagtext:`function`|| | 1210| |+--------------------+| | 1211| ||:diagtext:`object` || | 1212| |+--------------------+| | 1213+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1214 1215+-------------------------------------------------------------------------------+ 1216|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`| 1217+-------------------------------------------------------------------------------+ 1218 1219+---------------------------------------------------------------------------------------------------------------+ 1220|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`| 1221+---------------------------------------------------------------------------------------------------------------+ 1222 1223+------------------------------------------------------------------------------+ 1224|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`| 1225+------------------------------------------------------------------------------+ 1226 1227+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1228|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`| 1229| ||:diagtext:`struct` || | 1230| |+---------------------+| | 1231| ||:diagtext:`interface`|| | 1232| |+---------------------+| | 1233| ||:diagtext:`union` || | 1234| |+---------------------+| | 1235| ||:diagtext:`class` || | 1236| |+---------------------+| | 1237| ||:diagtext:`enum` || | 1238| |+---------------------+| | 1239+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1240 1241+-------------------------------------------------------------------------------+ 1242|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`| 1243+-------------------------------------------------------------------------------+ 1244 1245 1246-Wc++11-extra-semi 1247------------------ 1248**Diagnostic text:** 1249 1250+-------------------------------------------------------------------------------------------+ 1251|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`| 1252+-------------------------------------------------------------------------------------------+ 1253 1254 1255-Wc++11-inline-namespace 1256------------------------ 1257This diagnostic is enabled by default. 1258 1259**Diagnostic text:** 1260 1261+----------------------------------------------------------------------------+ 1262|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`| 1263+----------------------------------------------------------------------------+ 1264 1265 1266-Wc++11-long-long 1267----------------- 1268**Diagnostic text:** 1269 1270+-----------------------------------------------------------------------+ 1271|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`| 1272+-----------------------------------------------------------------------+ 1273 1274 1275-Wc++11-narrowing 1276----------------- 1277Some of the diagnostics controlled by this flag are enabled by default. 1278 1279**Diagnostic text:** 1280 1281+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1282|:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+| 1283| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1284| |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| || 1285| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1286| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1287| ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+|| 1288| |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`||| 1289| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+|| 1290| |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1291| ||:diagtext:`constexpr if condition` || | | 1292| |+--------------------------------------+| | | 1293+-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1294 1295+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1296|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`| 1297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1298 1299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1300|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1301+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1302 1303+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1304|:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1305+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1306 1307+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1308|:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`| 1309+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1310 1311+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1312|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1313+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1314 1315+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1316|:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1317+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1318 1319 1320-Wc++14-binary-literal 1321---------------------- 1322**Diagnostic text:** 1323 1324+------------------------------------------------------------------------------------+ 1325|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`| 1326+------------------------------------------------------------------------------------+ 1327 1328 1329-Wc++14-compat 1330-------------- 1331Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_. 1332 1333 1334-Wc++14-compat-pedantic 1335----------------------- 1336Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_. 1337 1338 1339-Wc++14-extensions 1340------------------ 1341Some of the diagnostics controlled by this flag are enabled by default. 1342 1343Also controls `-Wc++14-binary-literal`_. 1344 1345**Diagnostic text:** 1346 1347+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1348|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1349| ||:diagtext:`function` || | 1350| |+-----------------------+| | 1351| ||:diagtext:`constructor`|| | 1352| |+-----------------------+| | 1353+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1354 1355+------------------------------------------------------------------------------------------------------------+ 1356|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`| 1357+------------------------------------------------------------------------------------------------------------+ 1358 1359+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1360|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1361| ||:diagtext:`function` || | 1362| |+-----------------------+| | 1363| ||:diagtext:`constructor`|| | 1364| |+-----------------------+| | 1365+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1366 1367+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1368|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1369| ||:diagtext:`function` || | 1370| |+-----------------------+| | 1371| ||:diagtext:`constructor`|| | 1372| |+-----------------------+| | 1373+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1374 1375+---------------------------------------------------------------------------------------------------------------------------+ 1376|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 1377+---------------------------------------------------------------------------------------------------------------------------+ 1378 1379+-------------------------------------------------------------------------------------------+ 1380|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`| 1381+-------------------------------------------------------------------------------------------+ 1382 1383+----------------------------------------------------------------------------------------+ 1384|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`| 1385+----------------------------------------------------------------------------------------+ 1386 1387+-------------------------------------------------------------------------------+ 1388|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`| 1389+-------------------------------------------------------------------------------+ 1390 1391 1392-Wc++17-compat 1393-------------- 1394Some of the diagnostics controlled by this flag are enabled by default. 1395 1396Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_. 1397 1398 1399-Wc++17-compat-mangling 1400----------------------- 1401This diagnostic is enabled by default. 1402 1403**Diagnostic text:** 1404 1405+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1406|:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`| 1407+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1408 1409 1410-Wc++17-compat-pedantic 1411----------------------- 1412Some of the diagnostics controlled by this flag are enabled by default. 1413 1414Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_. 1415 1416 1417-Wc++17-extensions 1418------------------ 1419Some of the diagnostics controlled by this flag are enabled by default. 1420 1421**Diagnostic text:** 1422 1423+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1424|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 1425+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1426 1427+------------------------------------------------------------------------+ 1428|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`| 1429+------------------------------------------------------------------------+ 1430 1431+---------------------------------------------------------------------------------------------+ 1432|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`| 1433+---------------------------------------------------------------------------------------------+ 1434 1435+---------------------------------------------------------------------------------------------------------------------------+ 1436|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 1437+---------------------------------------------------------------------------------------------------------------------------+ 1438 1439+---------------------------------------------------------------------------------------+ 1440|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`| 1441+---------------------------------------------------------------------------------------+ 1442 1443+--------------------------------------------------------------------------------+ 1444|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`| 1445+--------------------------------------------------------------------------------+ 1446 1447+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1448|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`| 1449+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1450 1451+----------------------------------------------------------------------------------------+ 1452|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 1453+----------------------------------------------------------------------------------------+ 1454 1455+----------------------------------------+--------------------+-------------------------------------------------------------+ 1456|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`| 1457| ||:diagtext:`if` || | 1458| |+------------------+| | 1459| ||:diagtext:`switch`|| | 1460| |+------------------+| | 1461+----------------------------------------+--------------------+-------------------------------------------------------------+ 1462 1463+-----------------------------------------------------------------------------+ 1464|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`| 1465+-----------------------------------------------------------------------------+ 1466 1467+---------------------------------------------------------------------------------------------------------------------+ 1468|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`| 1469+---------------------------------------------------------------------------------------------------------------------+ 1470 1471+-------------------------------------------------------------------------------------------------------------------------+ 1472|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`| 1473+-------------------------------------------------------------------------------------------------------------------------+ 1474 1475+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1476|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 1477| ||:diagtext:`a namespace` || | 1478| |+-------------------------+| | 1479| ||:diagtext:`an enumerator`|| | 1480| |+-------------------------+| | 1481+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1482 1483+---------------------------------------------------------------------------------------+ 1484|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`| 1485+---------------------------------------------------------------------------------------+ 1486 1487+------------------------------------------------------------------------------------------+ 1488|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`| 1489+------------------------------------------------------------------------------------------+ 1490 1491+--------------------------------------------------------------------------------------------------------+ 1492|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`| 1493+--------------------------------------------------------------------------------------------------------+ 1494 1495+--------------------------------------------------------------------------------------------------+ 1496|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`| 1497+--------------------------------------------------------------------------------------------------+ 1498 1499+-----------------------------------------------------------------------------------------------+ 1500|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`| 1501+-----------------------------------------------------------------------------------------------+ 1502 1503 1504-Wc++1y-extensions 1505------------------ 1506Synonym for `-Wc++14-extensions`_. 1507 1508 1509-Wc++1z-compat 1510-------------- 1511Synonym for `-Wc++17-compat`_. 1512 1513 1514-Wc++1z-compat-mangling 1515----------------------- 1516Synonym for `-Wc++17-compat-mangling`_. 1517 1518 1519-Wc++1z-extensions 1520------------------ 1521Synonym for `-Wc++17-extensions`_. 1522 1523 1524-Wc++2a-compat 1525-------------- 1526Some of the diagnostics controlled by this flag are enabled by default. 1527 1528**Diagnostic text:** 1529 1530+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1531|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++2a`| 1532+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1533 1534+------------------------------------------------------------------------------------------------------------------+ 1535|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`| 1536+------------------------------------------------------------------------------------------------------------------+ 1537 1538+--------------------------------------------------------------------------------------------------------------------------------------------+ 1539|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++2a`| 1540+--------------------------------------------------------------------------------------------------------------------------------------------+ 1541 1542+-------------------------------------------------------------------------------------------+ 1543|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`| 1544+-------------------------------------------------------------------------------------------+ 1545 1546 1547-Wc++2a-compat-pedantic 1548----------------------- 1549Synonym for `-Wc++2a-compat`_. 1550 1551 1552-Wc++2a-extensions 1553------------------ 1554Some of the diagnostics controlled by this flag are enabled by default. 1555 1556**Diagnostic text:** 1557 1558+----------------------------------------------------------------------------------------------------+ 1559|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`| 1560+----------------------------------------------------------------------------------------------------+ 1561 1562+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1563|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`| 1564| ||:diagtext:`function` || | 1565| |+-----------------------+| | 1566| ||:diagtext:`constructor`|| | 1567| |+-----------------------+| | 1568+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1569 1570+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1571|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`| 1572| ||:diagtext:`function` || | 1573| |+-----------------------+| | 1574| ||:diagtext:`constructor`|| | 1575| |+-----------------------+| | 1576+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1577 1578+--------------------------------------------------------------------------------------------------------------------+ 1579|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`| 1580+--------------------------------------------------------------------------------------------------------------------+ 1581 1582+-----------------------------------------------------------------------------------------------------------+ 1583|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++2a extension`| 1584+-----------------------------------------------------------------------------------------------------------+ 1585 1586+----------------------------------------------------------------------------------------------+ 1587|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++2a extension`| 1588+----------------------------------------------------------------------------------------------+ 1589 1590+--------------------------------------------------------------------------------------------------------------------------+ 1591|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| 1592+--------------------------------------------------------------------------------------------------------------------------+ 1593 1594 1595-Wc++98-c++11-c++14-c++17-compat 1596-------------------------------- 1597**Diagnostic text:** 1598 1599+-------------------------------------------------------------------------------------------------------------------------------+ 1600|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`| 1601+-------------------------------------------------------------------------------------------------------------------------------+ 1602 1603+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1604|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`| 1605| ||:diagtext:`function` || | 1606| |+-----------------------+| | 1607| ||:diagtext:`constructor`|| | 1608| |+-----------------------+| | 1609+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1610 1611+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1612|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`| 1613| ||:diagtext:`function` || | 1614| |+-----------------------+| | 1615| ||:diagtext:`constructor`|| | 1616| |+-----------------------+| | 1617+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1618 1619+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1620|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++2a`| 1621| ||:diagtext:`default constructor` || | 1622| |+------------------------------------+| | 1623| ||:diagtext:`copy constructor` || | 1624| |+------------------------------------+| | 1625| ||:diagtext:`move constructor` || | 1626| |+------------------------------------+| | 1627| ||:diagtext:`copy assignment operator`|| | 1628| |+------------------------------------+| | 1629| ||:diagtext:`move assignment operator`|| | 1630| |+------------------------------------+| | 1631| ||:diagtext:`destructor` || | 1632| |+------------------------------------+| | 1633+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1634 1635+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1636|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`| 1637+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1638 1639+--------------------------------------------------------------------------------------------------------------------------------------+ 1640|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++2a`| 1641+--------------------------------------------------------------------------------------------------------------------------------------+ 1642 1643+-------------------------------------------------------------------------------------------------------------------------+ 1644|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++2a`| 1645+-------------------------------------------------------------------------------------------------------------------------+ 1646 1647+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1648|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++2a`| 1649| ||:diagtext:`default construction`|| | 1650| |+--------------------------------+| | 1651| ||:diagtext:`assignment` || | 1652| |+--------------------------------+| | 1653+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1654 1655+-----------------------------------------------------------------------------------------------------+ 1656|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++2a`| 1657+-----------------------------------------------------------------------------------------------------+ 1658 1659+----------------------------------------------------------------------------------------------------------------+ 1660|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`| 1661+----------------------------------------------------------------------------------------------------------------+ 1662 1663 1664-Wc++98-c++11-c++14-c++17-compat-pedantic 1665----------------------------------------- 1666Also controls `-Wc++98-c++11-c++14-c++17-compat`_. 1667 1668**Diagnostic text:** 1669 1670+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1671|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`| 1672+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1673 1674 1675-Wc++98-c++11-c++14-compat 1676-------------------------- 1677**Diagnostic text:** 1678 1679+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1680|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+| 1681| || || 1682| |+---------------------------------------------------------------------------------+| 1683| ||+-------------------------------------------------------------------------------+|| 1684| |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`||| 1685| ||+-------------------------------------------------------------------------------+|| 1686| |+---------------------------------------------------------------------------------+| 1687+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1688 1689+---------------------------------------------------------------------------------------------------+ 1690|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`| 1691+---------------------------------------------------------------------------------------------------+ 1692 1693+----------------------------------------------------------------------------------------------------------------------+ 1694|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`| 1695+----------------------------------------------------------------------------------------------------------------------+ 1696 1697+------------------------------------------------------------------------------------------------------------------+ 1698|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`| 1699+------------------------------------------------------------------------------------------------------------------+ 1700 1701+-----------------------------------------------------------------------------------------------------------+ 1702|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`| 1703+-----------------------------------------------------------------------------------------------------------+ 1704 1705+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1706|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`| 1707| ||:diagtext:`if` || | 1708| |+------------------+| | 1709| ||:diagtext:`switch`|| | 1710| |+------------------+| | 1711+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1712 1713+--------------------------------------------------------------------------------------------------------+ 1714|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`| 1715+--------------------------------------------------------------------------------------------------------+ 1716 1717+------------------------------------------------------------------------------------------------------------------+ 1718|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`| 1719+------------------------------------------------------------------------------------------------------------------+ 1720 1721+-------------------------------------------------------------------------------------------------------------------+ 1722|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`| 1723+-------------------------------------------------------------------------------------------------------------------+ 1724 1725+---------------------------------------------------------------------------------------------------------------------+ 1726|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`| 1727+---------------------------------------------------------------------------------------------------------------------+ 1728 1729+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1730|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`| 1731+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1732 1733+-----------------------------------------------------------------------------------------------------------------------------------+ 1734|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`| 1735+-----------------------------------------------------------------------------------------------------------------------------------+ 1736 1737+--------------------------------------------------------------------------------------------------------+ 1738|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`| 1739+--------------------------------------------------------------------------------------------------------+ 1740 1741+-----------------------------------------------------------------------------------------------------------------------------+ 1742|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`| 1743+-----------------------------------------------------------------------------------------------------------------------------+ 1744 1745+------------------------------------------------------------------------------------------------------------------------------------------------+ 1746|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`| 1747+------------------------------------------------------------------------------------------------------------------------------------------------+ 1748 1749+-----------------------------------------------------------------------------------------------------------------------+ 1750|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`| 1751+-----------------------------------------------------------------------------------------------------------------------+ 1752 1753+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1754|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`| 1755+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1756 1757 1758-Wc++98-c++11-c++14-compat-pedantic 1759----------------------------------- 1760Also controls `-Wc++98-c++11-c++14-compat`_. 1761 1762**Diagnostic text:** 1763 1764+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 1765|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`| 1766| ||:diagtext:`a namespace` || | 1767| |+-------------------------+| | 1768| ||:diagtext:`an enumerator`|| | 1769| |+-------------------------+| | 1770+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 1771 1772+---------------------------------------------------------------------------------------------------------------------+ 1773|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`| 1774+---------------------------------------------------------------------------------------------------------------------+ 1775 1776 1777-Wc++98-c++11-compat 1778-------------------- 1779**Diagnostic text:** 1780 1781+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1782|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1783| ||:diagtext:`function` || | 1784| |+-----------------------+| | 1785| ||:diagtext:`constructor`|| | 1786| |+-----------------------+| | 1787+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1788 1789+---------------------------------------------------------------------------------------------------------------------------------------+ 1790|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`| 1791+---------------------------------------------------------------------------------------------------------------------------------------+ 1792 1793+-----------------------------------------------------------------------------------------------------------------------------------+ 1794|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`| 1795+-----------------------------------------------------------------------------------------------------------------------------------+ 1796 1797+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1798|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1799| ||:diagtext:`function` || | 1800| |+-----------------------+| | 1801| ||:diagtext:`constructor`|| | 1802| |+-----------------------+| | 1803+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1804 1805+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1806|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1807| ||:diagtext:`function` || | 1808| |+-----------------------+| | 1809| ||:diagtext:`constructor`|| | 1810| |+-----------------------+| | 1811+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1812 1813+----------------------------------------------------------------------------------------------------------------------+ 1814|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`| 1815+----------------------------------------------------------------------------------------------------------------------+ 1816 1817+------------------------------------------------------------------------------------------------------------+ 1818|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`| 1819+------------------------------------------------------------------------------------------------------------+ 1820 1821+--------------------------------------------------------------------------------------------------------+ 1822|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`| 1823+--------------------------------------------------------------------------------------------------------+ 1824 1825+----------------------------------------------------------------------------------+ 1826|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`| 1827+----------------------------------------------------------------------------------+ 1828 1829+-------------------------------------------------------------------------------------------------------------------+ 1830|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`| 1831+-------------------------------------------------------------------------------------------------------------------+ 1832 1833+----------------------------------------------------------------------------------------------------------+ 1834|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`| 1835+----------------------------------------------------------------------------------------------------------+ 1836 1837 1838-Wc++98-c++11-compat-binary-literal 1839----------------------------------- 1840**Diagnostic text:** 1841 1842+---------------------------------------------------------------------------------------------------------------+ 1843|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`| 1844+---------------------------------------------------------------------------------------------------------------+ 1845 1846 1847-Wc++98-c++11-compat-pedantic 1848----------------------------- 1849Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_. 1850 1851 1852-Wc++98-compat 1853-------------- 1854Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_. 1855 1856**Diagnostic text:** 1857 1858+-------------------------------------------------------------------------------------+ 1859|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`| 1860+-------------------------------------------------------------------------------------+ 1861 1862+---------------------------------------------------------------------------+ 1863|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`| 1864+---------------------------------------------------------------------------+ 1865 1866+--------------------------------------------------------------------------------------+ 1867|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`| 1868+--------------------------------------------------------------------------------------+ 1869 1870+----------------------------------------------------------------------------------------+ 1871|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`| 1872+----------------------------------------------------------------------------------------+ 1873 1874+---------------------------------------------------------------------------------------+ 1875|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`| 1876+---------------------------------------------------------------------------------------+ 1877 1878+---------------------------------------------------------------------------------------+ 1879|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`| 1880+---------------------------------------------------------------------------------------+ 1881 1882+--------------------------------------------------------------------------------------------------------+ 1883|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`| 1884+--------------------------------------------------------------------------------------------------------+ 1885 1886+-------------------------------------------------------------------------------------------+ 1887|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`| 1888+-------------------------------------------------------------------------------------------+ 1889 1890+---------------------------+-----------------------+--------------------------------------------------------------------+ 1891|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`| 1892| ||:diagtext:`defaulted`|| | 1893| |+---------------------+| | 1894| ||:diagtext:`deleted` || | 1895| |+---------------------+| | 1896+---------------------------+-----------------------+--------------------------------------------------------------------+ 1897 1898+------------------------------------------------------------------------------------------+ 1899|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`| 1900+------------------------------------------------------------------------------------------+ 1901 1902+----------------------------------------------------------------------------------------------------------------+ 1903|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`| 1904+----------------------------------------------------------------------------------------------------------------+ 1905 1906+-----------------------------------------------------------------------------------------------------------------+ 1907|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`| 1908+-----------------------------------------------------------------------------------------------------------------+ 1909 1910+-----------------------------------------------------------------------------------------------------------------------------------------+ 1911|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 1912+-----------------------------------------------------------------------------------------------------------------------------------------+ 1913 1914+-----------------------------------------------------------------------------------------------------------+ 1915|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`| 1916+-----------------------------------------------------------------------------------------------------------+ 1917 1918+------------------------------------------------------------------------------------------------+ 1919|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`| 1920+------------------------------------------------------------------------------------------------+ 1921 1922+--------------------------------------------------------------------------------------+ 1923|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`| 1924+--------------------------------------------------------------------------------------+ 1925 1926+---------------------------------------------------------------------------------------------------------------------------+ 1927|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`| 1928+---------------------------------------------------------------------------------------------------------------------------+ 1929 1930+------------------------------------------------------------------------------------------------+ 1931|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`| 1932+------------------------------------------------------------------------------------------------+ 1933 1934+------------------------------------------------------------------------------------------------------------+ 1935|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`| 1936+------------------------------------------------------------------------------------------------------------+ 1937 1938+---------------------------------------------------------------------------------------------------------------------------------------+ 1939|:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`| 1940+---------------------------------------------------------------------------------------------------------------------------------------+ 1941 1942+------------------------------------------------------------------------------------------------------------+ 1943|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`| 1944+------------------------------------------------------------------------------------------------------------+ 1945 1946+------------------------------------------------------------------------------------+ 1947|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`| 1948+------------------------------------------------------------------------------------+ 1949 1950+-------------------------------------------------------------------------------------+ 1951|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`| 1952+-------------------------------------------------------------------------------------+ 1953 1954+-----------------------------------------------------------------------------------------------------------+ 1955|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`| 1956+-----------------------------------------------------------------------------------------------------------+ 1957 1958+------------------------------------------------------------------------------------+ 1959|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`| 1960+------------------------------------------------------------------------------------+ 1961 1962+---------------------------------------------------------------------------------------------------------------------------+ 1963|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`| 1964+---------------------------------------------------------------------------------------------------------------------------+ 1965 1966+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1967|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`| 1968+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1969 1970+------------------------------------------------------------------------------------------+ 1971|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`| 1972+------------------------------------------------------------------------------------------+ 1973 1974+---------------------------------------------------------------------------------------+ 1975|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`| 1976+---------------------------------------------------------------------------------------+ 1977 1978+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1979|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`| 1980+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1981 1982+----------------------------------------------------------------------------------------------------------------------------------+ 1983|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 1984+----------------------------------------------------------------------------------------------------------------------------------+ 1985 1986+--------------------------------------------------------------------------------------------------------------------+ 1987|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`| 1988+--------------------------------------------------------------------------------------------------------------------+ 1989 1990+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 1991|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 1992| ||:diagtext:`anonymous struct`|| ||:diagtext:`default constructor` || | 1993| |+----------------------------+| |+------------------------------------+| | 1994| ||:diagtext:`union` || ||:diagtext:`copy constructor` || | 1995| |+----------------------------+| |+------------------------------------+| | 1996| | | ||:diagtext:`move constructor` || | 1997| | | |+------------------------------------+| | 1998| | | ||:diagtext:`copy assignment operator`|| | 1999| | | |+------------------------------------+| | 2000| | | ||:diagtext:`move assignment operator`|| | 2001| | | |+------------------------------------+| | 2002| | | ||:diagtext:`destructor` || | 2003| | | |+------------------------------------+| | 2004+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 2005 2006+---------------------------------------------------------------------------+ 2007|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`| 2008+---------------------------------------------------------------------------+ 2009 2010+--------------------------------------------------------------------------------------------------------+ 2011|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`| 2012+--------------------------------------------------------------------------------------------------------+ 2013 2014+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2015|:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 2016| ||:diagtext:`function` || | 2017| |+-----------------------+| | 2018| ||:diagtext:`block` || | 2019| |+-----------------------+| | 2020| ||:diagtext:`method` || | 2021| |+-----------------------+| | 2022| ||:diagtext:`constructor`|| | 2023| |+-----------------------+| | 2024+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2025 2026+--------------------------------------------------------------------------------------+ 2027|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`| 2028+--------------------------------------------------------------------------------------+ 2029 2030+----------------------------------------------------------------------------------------------------+ 2031|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`| 2032+----------------------------------------------------------------------------------------------------+ 2033 2034+-------------------------------------------------------------------------------------------------------------+ 2035|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`| 2036+-------------------------------------------------------------------------------------------------------------+ 2037 2038+------------------------------------------------------------------------------------+ 2039|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`| 2040+------------------------------------------------------------------------------------+ 2041 2042+--------------------------------------------------------------------------------------+ 2043|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`| 2044+--------------------------------------------------------------------------------------+ 2045 2046+------------------------------------------------------------------------------------------------------------+ 2047|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`| 2048+------------------------------------------------------------------------------------------------------------+ 2049 2050+----------------------------------------------------------------------------------------------+ 2051|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`| 2052+----------------------------------------------------------------------------------------------+ 2053 2054+----------------------------------------------------------------------------------------------------------------------------------------+ 2055|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`| 2056+----------------------------------------------------------------------------------------------------------------------------------------+ 2057 2058+---------------------------------------------------------------------------------------------------------------+ 2059|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`| 2060+---------------------------------------------------------------------------------------------------------------+ 2061 2062+---------------------------------------------------------------------------------------------------------------------------------------+ 2063|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`| 2064+---------------------------------------------------------------------------------------------------------------------------------------+ 2065 2066+-------------------------------------------------------------------------------------------------------------------+ 2067|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`| 2068+-------------------------------------------------------------------------------------------------------------------+ 2069 2070+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2071|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`| 2072| ||:diagtext:`function`|| | 2073| |+--------------------+| | 2074| ||:diagtext:`object` || | 2075| |+--------------------+| | 2076+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2077 2078+-----------------------------------------------------------------------------------------------------------------+ 2079|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`| 2080+-----------------------------------------------------------------------------------------------------------------+ 2081 2082+---------------------------------------------------------------------------------------------------------------------+ 2083|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`| 2084+---------------------------------------------------------------------------------------------------------------------+ 2085 2086+----------------------------------------------------------------------------------------+ 2087|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`| 2088+----------------------------------------------------------------------------------------+ 2089 2090+---------------------------------------------------------------------------------------------------------------+ 2091|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`| 2092+---------------------------------------------------------------------------------------------------------------+ 2093 2094+---------------------------------------------------------------------------------------------------------+ 2095|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`| 2096+---------------------------------------------------------------------------------------------------------+ 2097 2098+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2099|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`| 2100| ||:diagtext:`struct` || | 2101| |+---------------------+| | 2102| ||:diagtext:`interface`|| | 2103| |+---------------------+| | 2104| ||:diagtext:`union` || | 2105| |+---------------------+| | 2106| ||:diagtext:`class` || | 2107| |+---------------------+| | 2108| ||:diagtext:`enum` || | 2109| |+---------------------+| | 2110+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2111 2112+-------------------------------------------------------------------------------------------------------+ 2113|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`| 2114+-------------------------------------------------------------------------------------------------------+ 2115 2116+-----------------------------------------------------------------------------------+ 2117|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`| 2118+-----------------------------------------------------------------------------------+ 2119 2120+---------------------------------------------------------------------------------------------------------------+ 2121|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`| 2122+---------------------------------------------------------------------------------------------------------------+ 2123 2124+------------------------------------------------------------------------------------------+ 2125|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`| 2126+------------------------------------------------------------------------------------------+ 2127 2128+-------------------------------------------------------------------------------------+ 2129|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`| 2130+-------------------------------------------------------------------------------------+ 2131 2132 2133-Wc++98-compat-bind-to-temporary-copy 2134------------------------------------- 2135**Diagnostic text:** 2136 2137+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2138|:warning:`warning:` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`| 2139| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| | 2140| |+----------------------------------------------------+| |+----------------------------------------------+| | 2141| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || | 2142| |+----------------------------------------------------+| |+----------------------------------------------+| | 2143| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || | 2144| |+----------------------------------------------------+| |+----------------------------------------------+| | 2145| ||:diagtext:`initializing statement expression result`|| ||:diagtext:`invoke a deleted constructor` || | 2146| |+----------------------------------------------------+| |+----------------------------------------------+| | 2147| ||:diagtext:`throwing object` || | | | 2148| |+----------------------------------------------------+| | | | 2149| ||:diagtext:`copying member subobject` || | | | 2150| |+----------------------------------------------------+| | | | 2151| ||:diagtext:`copying array element` || | | | 2152| |+----------------------------------------------------+| | | | 2153| ||:diagtext:`allocating object` || | | | 2154| |+----------------------------------------------------+| | | | 2155| ||:diagtext:`copying temporary` || | | | 2156| |+----------------------------------------------------+| | | | 2157| ||:diagtext:`initializing base subobject` || | | | 2158| |+----------------------------------------------------+| | | | 2159| ||:diagtext:`initializing vector element` || | | | 2160| |+----------------------------------------------------+| | | | 2161| ||:diagtext:`capturing value` || | | | 2162| |+----------------------------------------------------+| | | | 2163+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2164 2165 2166-Wc++98-compat-extra-semi 2167------------------------- 2168**Diagnostic text:** 2169 2170+-------------------------------------------------------------------------------------------------+ 2171|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`| 2172+-------------------------------------------------------------------------------------------------+ 2173 2174 2175-Wc++98-compat-local-type-template-args 2176--------------------------------------- 2177**Diagnostic text:** 2178 2179+--------------------------------------------------------------------------------------------------------------------------------------------+ 2180|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`| 2181+--------------------------------------------------------------------------------------------------------------------------------------------+ 2182 2183 2184-Wc++98-compat-pedantic 2185----------------------- 2186Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_. 2187 2188**Diagnostic text:** 2189 2190+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2191|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| 2192| ||:diagtext:`integral` || | 2193| |+-----------------------+| | 2194| ||:diagtext:`enumeration`|| | 2195| |+-----------------------+| | 2196+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2197 2198+------------------------------------------------------------------------------------------------------------------------+ 2199|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`| 2200+------------------------------------------------------------------------------------------------------------------------+ 2201 2202+----------------------------------------------------------------------------------------+ 2203|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`| 2204+----------------------------------------------------------------------------------------+ 2205 2206+--------------------------------------------------------------------------------------------------------+ 2207|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`| 2208+--------------------------------------------------------------------------------------------------------+ 2209 2210+-----------------------------------------------------------------------------------+ 2211|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`| 2212+-----------------------------------------------------------------------------------+ 2213 2214+-----------------------------------------------------------------------------+ 2215|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`| 2216+-----------------------------------------------------------------------------+ 2217 2218+----------------------------------------------------------------------------+ 2219|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`| 2220+----------------------------------------------------------------------------+ 2221 2222+-------------------------------------------------------------------------------------------------+ 2223|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`| 2224+-------------------------------------------------------------------------------------------------+ 2225 2226+----------------------------------------------------------------------------------+ 2227|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`| 2228+----------------------------------------------------------------------------------+ 2229 2230 2231-Wc++98-compat-unnamed-type-template-args 2232----------------------------------------- 2233**Diagnostic text:** 2234 2235+---------------------------------------------------------------------------------------------------+ 2236|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`| 2237+---------------------------------------------------------------------------------------------------+ 2238 2239 2240-Wc11-extensions 2241---------------- 2242**Diagnostic text:** 2243 2244+---------------------------------------------------------------------------+ 2245|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`| 2246+---------------------------------------------------------------------------+ 2247 2248+----------------------------------------------------------------------------------------+ 2249|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`| 2250+----------------------------------------------------------------------------------------+ 2251 2252+----------------------------------------------------------------------------+ 2253|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`| 2254+----------------------------------------------------------------------------+ 2255 2256+------------------------------------------------------------------------------------+ 2257|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`| 2258+------------------------------------------------------------------------------------+ 2259 2260+--------------------------------------------------------------------------------------+ 2261|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`| 2262+--------------------------------------------------------------------------------------+ 2263 2264+---------------------------------------------------------------------------------+ 2265|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`| 2266+---------------------------------------------------------------------------------+ 2267 2268 2269-Wc99-compat 2270------------ 2271Some of the diagnostics controlled by this flag are enabled by default. 2272 2273**Diagnostic text:** 2274 2275+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2276|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`| 2277| ||:diagtext:`using this character in an identifier` || | 2278| |+------------------------------------------------------+| | 2279| ||:diagtext:`starting an identifier with this character`|| | 2280| |+------------------------------------------------------+| | 2281+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2282 2283+---------------------------------------------------------------------------------+ 2284|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`| 2285+---------------------------------------------------------------------------------+ 2286 2287+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2288|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`| 2289| ||:diagtext:`have type 'long long'`|| | 2290| |+---------------------------------+| | 2291| ||:diagtext:`be ill-formed` || | 2292| |+---------------------------------+| | 2293+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2294 2295 2296-Wc99-extensions 2297---------------- 2298Some of the diagnostics controlled by this flag are enabled by default. 2299 2300**Diagnostic text:** 2301 2302+-----------------------------------------------------------------------------------------------+ 2303|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 2304+-----------------------------------------------------------------------------------------------+ 2305 2306+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2307|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 2308| ||:diagtext:`qualifier in` |nbsp| || || || | 2309| |+--------------------------------+| |+---------------------+| | 2310| ||:diagtext:`static` |nbsp| || || || | 2311| |+--------------------------------+| |+---------------------+| | 2312| || || ||:diagtext:`'\[\*\] '`|| | 2313| |+--------------------------------+| |+---------------------+| | 2314+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2315 2316+-----------------------------------------------------------------------------------+ 2317|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 2318+-----------------------------------------------------------------------------------+ 2319 2320+-------------------------------------------------------------------------------+ 2321|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 2322+-------------------------------------------------------------------------------+ 2323 2324+-------------------------------------------------------------------------------------------------+ 2325|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 2326+-------------------------------------------------------------------------------------------------+ 2327 2328+---------------------------------------------------------------------------------------+ 2329|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`| 2330+---------------------------------------------------------------------------------------+ 2331 2332+--------------------------------------------------------------------------------+ 2333|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 2334+--------------------------------------------------------------------------------+ 2335 2336+------------------------------------------------------------------------------+ 2337|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 2338+------------------------------------------------------------------------------+ 2339 2340+-------------------------------------------------------------------------------------------------------+ 2341|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 2342+-------------------------------------------------------------------------------------------------------+ 2343 2344+---------------------------------------------------------------------------------------+ 2345|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 2346+---------------------------------------------------------------------------------------+ 2347 2348 2349-Wcall-to-pure-virtual-from-ctor-dtor 2350------------------------------------- 2351This diagnostic is enabled by default. 2352 2353**Diagnostic text:** 2354 2355+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2356|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 2357| ||:diagtext:`constructor`|| | 2358| |+-----------------------+| | 2359| ||:diagtext:`destructor` || | 2360| |+-----------------------+| | 2361+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2362 2363 2364-Wcast-align 2365------------ 2366**Diagnostic text:** 2367 2368+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2369|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 2370+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2371 2372 2373-Wcast-calling-convention 2374------------------------- 2375This diagnostic is enabled by default. 2376 2377**Diagnostic text:** 2378 2379+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2380|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`| 2381+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2382 2383 2384-Wcast-of-sel-type 2385------------------ 2386This diagnostic is enabled by default. 2387 2388**Diagnostic text:** 2389 2390+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2391|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`| 2392+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2393 2394 2395-Wcast-qual 2396----------- 2397**Diagnostic text:** 2398 2399+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2400|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+| 2401| ||:diagtext:`const and volatile qualifiers`|| 2402| |+-----------------------------------------+| 2403| ||:diagtext:`const qualifier` || 2404| |+-----------------------------------------+| 2405| ||:diagtext:`volatile qualifier` || 2406| |+-----------------------------------------+| 2407+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2408 2409+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2410|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`| 2411+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2412 2413 2414-Wcast-qual-unrelated 2415--------------------- 2416This diagnostic is enabled by default. 2417 2418**Diagnostic text:** 2419 2420+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2421|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`| 2422| ||:diagtext:`const\_cast` || | 2423| |+---------------------------------+| | 2424| ||:diagtext:`static\_cast` || | 2425| |+---------------------------------+| | 2426| ||:diagtext:`reinterpret\_cast` || | 2427| |+---------------------------------+| | 2428| ||:diagtext:`dynamic\_cast` || | 2429| |+---------------------------------+| | 2430| ||:diagtext:`C-style cast` || | 2431| |+---------------------------------+| | 2432| ||:diagtext:`functional-style cast`|| | 2433| |+---------------------------------+| | 2434+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2435 2436 2437-Wchar-align 2438------------ 2439This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 2440 2441-Wchar-subscripts 2442----------------- 2443**Diagnostic text:** 2444 2445+------------------------------------------------------------+-------------------------+-------------------------------------+ 2446|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`| 2447| ||:diagtext:`lower bound`|| | 2448| |+-----------------------+| | 2449| ||:diagtext:`length` || | 2450| |+-----------------------+| | 2451+------------------------------------------------------------+-------------------------+-------------------------------------+ 2452 2453+------------------------------------------------------------------------+ 2454|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`| 2455+------------------------------------------------------------------------+ 2456 2457 2458-Wclang-cl-pch 2459-------------- 2460This diagnostic is enabled by default. 2461 2462**Diagnostic text:** 2463 2464+-------------------------------------------------------------------------------------------------------------------------+ 2465|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`| 2466+-------------------------------------------------------------------------------------------------------------------------+ 2467 2468+------------------------------------------------------------------------------------------------------------------------------+ 2469|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`| 2470+------------------------------------------------------------------------------------------------------------------------------+ 2471 2472+----------------------------------------------------------------------------------------------------------------------------------------------------+ 2473|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`| 2474+----------------------------------------------------------------------------------------------------------------------------------------------------+ 2475 2476+-------------------------------------------------------------------------------------------------------------------------------------+ 2477|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`| 2478+-------------------------------------------------------------------------------------------------------------------------------------+ 2479 2480+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2481|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`| 2482+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2483 2484 2485-Wclass-varargs 2486--------------- 2487Some of the diagnostics controlled by this flag are enabled by default. 2488 2489Also controls `-Wnon-pod-varargs`_. 2490 2491**Diagnostic text:** 2492 2493+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2494|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+| 2495| ||:diagtext:`function` ||| || 2496| |+-----------------------+|+--------------------------------------------------------------------+| 2497| ||:diagtext:`block` |||+------------------------------------------------------------------+|| 2498| |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`||| 2499| ||:diagtext:`method` |||+------------------------------------------------------------------+|| 2500| |+-----------------------+|+--------------------------------------------------------------------+| 2501| ||:diagtext:`constructor`|| | 2502| |+-----------------------+| | 2503+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2504 2505 2506-Wcomma 2507------- 2508**Diagnostic text:** 2509 2510+-----------------------------------------------------------------------------+ 2511|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`| 2512+-----------------------------------------------------------------------------+ 2513 2514 2515-Wcomment 2516--------- 2517Some of the diagnostics controlled by this flag are enabled by default. 2518 2519**Diagnostic text:** 2520 2521+--------------------------------------------------------------------------------------------------+ 2522|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`| 2523+--------------------------------------------------------------------------------------------------+ 2524 2525+-----------------------------------------------------------------------------------+ 2526|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 2527+-----------------------------------------------------------------------------------+ 2528 2529+------------------------------------------------------------+ 2530|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 2531+------------------------------------------------------------+ 2532 2533+-----------------------------------------------------------------+ 2534|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`| 2535+-----------------------------------------------------------------+ 2536 2537 2538-Wcomments 2539---------- 2540Synonym for `-Wcomment`_. 2541 2542 2543-Wcompare-distinct-pointer-types 2544-------------------------------- 2545This diagnostic is enabled by default. 2546 2547**Diagnostic text:** 2548 2549+---------------------------------------------------------------------------+ 2550|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`| 2551+---------------------------------------------------------------------------+ 2552 2553 2554-Wcomplex-component-init 2555------------------------ 2556**Diagnostic text:** 2557 2558+----------------------------------------------------------------------------------------------------------------------+ 2559|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`| 2560+----------------------------------------------------------------------------------------------------------------------+ 2561 2562 2563-Wconditional-type-mismatch 2564--------------------------- 2565This diagnostic is enabled by default. 2566 2567**Diagnostic text:** 2568 2569+----------------------------------------------------------------------------------------------+ 2570|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`| 2571+----------------------------------------------------------------------------------------------+ 2572 2573 2574-Wconditional-uninitialized 2575--------------------------- 2576**Diagnostic text:** 2577 2578+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2579|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+| 2580| ||:diagtext:`used here` || 2581| |+-----------------------------+| 2582| ||:diagtext:`captured by block`|| 2583| |+-----------------------------+| 2584+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2585 2586 2587-Wconfig-macros 2588--------------- 2589This diagnostic is enabled by default. 2590 2591**Diagnostic text:** 2592 2593+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2594|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`| 2595| ||:diagtext:`definition`|| ||+----------------------------------------------+|| | 2596| |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| | 2597| ||:diagtext:`#undef` || ||+----------------------------------------------+|| | 2598| |+----------------------+| |+------------------------------------------------+| | 2599| | | ||+------------------------------+ || | 2600| | | |||:diagtext:`-U`:placeholder:`B`| || | 2601| | | ||+------------------------------+ || | 2602| | | |+------------------------------------------------+| | 2603+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2604 2605 2606-Wconstant-conversion 2607--------------------- 2608This diagnostic is enabled by default. 2609 2610Also controls `-Wbitfield-constant-conversion`_. 2611 2612**Diagnostic text:** 2613 2614+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2615|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2616+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2617 2618 2619-Wconstant-logical-operand 2620-------------------------- 2621This diagnostic is enabled by default. 2622 2623**Diagnostic text:** 2624 2625+----------------------------------------------------------------------------------------------------------+ 2626|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`| 2627+----------------------------------------------------------------------------------------------------------+ 2628 2629 2630-Wconstexpr-not-const 2631--------------------- 2632This diagnostic is enabled by default. 2633 2634**Diagnostic text:** 2635 2636+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2637|:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`| 2638+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2639 2640 2641-Wconsumed 2642---------- 2643**Diagnostic text:** 2644 2645+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2646|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`| 2647+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2648 2649+--------------------------------------------------------------------------------------------------------------------------------+ 2650|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`| 2651+--------------------------------------------------------------------------------------------------------------------------------+ 2652 2653+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2654|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`| 2655+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2656 2657+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2658|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2659+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2660 2661+---------------------------------------------------------------------------------------------------------------+ 2662|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`| 2663+---------------------------------------------------------------------------------------------------------------+ 2664 2665+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2666|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2667+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2668 2669+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2670|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`| 2671+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2672 2673+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2674|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`| 2675+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2676 2677 2678-Wconversion 2679------------ 2680Some of the diagnostics controlled by this flag are enabled by default. 2681 2682Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wimplicit-float-conversion`_, `-Wimplicit-int-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_. 2683 2684**Diagnostic text:** 2685 2686+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2687|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2688+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2689 2690+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2691|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2692+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2693 2694+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2695|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`| 2696+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2697 2698+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2699|:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`| 2700+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2701 2702+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2703|:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`| 2704+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2705 2706 2707-Wconversion-null 2708----------------- 2709Synonym for `-Wnull-conversion`_. 2710 2711 2712-Wcoroutine 2713----------- 2714Synonym for `-Wcoroutine-missing-unhandled-exception`_. 2715 2716 2717-Wcoroutine-missing-unhandled-exception 2718--------------------------------------- 2719This diagnostic is enabled by default. 2720 2721**Diagnostic text:** 2722 2723+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2724|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`| 2725+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2726 2727 2728-Wcovered-switch-default 2729------------------------ 2730**Diagnostic text:** 2731 2732+--------------------------------------------------------------------------------------------------+ 2733|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`| 2734+--------------------------------------------------------------------------------------------------+ 2735 2736 2737-Wcpp 2738----- 2739Synonym for `-W#warnings`_. 2740 2741 2742-Wcstring-format-directive 2743-------------------------- 2744**Diagnostic text:** 2745 2746+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 2747|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+| 2748| ||:diagtext:`NSString`|| ||:diagtext:`method` || 2749| |+--------------------+| |+----------------------+| 2750| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`|| 2751| |+--------------------+| |+----------------------+| 2752+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 2753 2754 2755-Wctor-dtor-privacy 2756------------------- 2757This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 2758 2759-Wctu 2760----- 2761This diagnostic is enabled by default. 2762 2763**Diagnostic text:** 2764 2765+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2766|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`| 2767+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2768 2769 2770-Wcuda-compat 2771------------- 2772Some of the diagnostics controlled by this flag are enabled by default. 2773 2774**Diagnostic text:** 2775 2776+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2777|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`| 2778+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2779 2780+---------------------------------------------------------------------------------------------------------------------------------+ 2781|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`| 2782+---------------------------------------------------------------------------------------------------------------------------------+ 2783 2784+------------------------------------------------------------------------------------------------------------+ 2785|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`| 2786+------------------------------------------------------------------------------------------------------------+ 2787 2788+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2789|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 2790+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2791 2792+--------------------------------------------------------------------------------------------------------------+ 2793|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`| 2794+--------------------------------------------------------------------------------------------------------------+ 2795 2796 2797-Wcustom-atomic-properties 2798-------------------------- 2799**Diagnostic text:** 2800 2801+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 2802|:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`| 2803| ||:diagtext:`getter`|| | 2804| |+------------------+| | 2805| ||:diagtext:`setter`|| | 2806| |+------------------+| | 2807+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 2808 2809 2810-Wdangling 2811---------- 2812This diagnostic is enabled by default. 2813 2814Also controls `-Wdangling-field`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_. 2815 2816**Diagnostic text:** 2817 2818+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 2819|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`| 2820| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| ||+------------------------+|| | 2821| |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+||| |||:placeholder:`D` |nbsp| ||| | 2822| ||| ||:diagtext:`whose address is used as value of` || ||+-------------------------------+------------------------------------+|||| ||+------------------------+|| | 2823| ||| |+-------------------------------------------------------+| |||+-----------------------------+|:diagtext:`member of local variable`||||| |+--------------------------+| | 2824| ||| ||+--------------------------------+--------------------+|| |||| || ||||| || || | 2825| ||| |||+------------------------------+|:diagtext:`bound to`||| |||+-----------------------------+| ||||| |+--------------------------+| | 2826| ||| |||| || ||| ||||:diagtext:`reference` |nbsp| || ||||| | | | 2827| ||| |||+------------------------------+| ||| |||+-----------------------------+| ||||| | | | 2828| ||| ||||:diagtext:`implicitly` |nbsp| || ||| ||+-------------------------------+------------------------------------+|||| | | | 2829| ||| |||+------------------------------+| ||| |+----------------------------------------------------------------------+||| | | | 2830| ||| ||+--------------------------------+--------------------+|| ||+-------------------------+-----------------------+ |||| | | | 2831| ||| |+-------------------------------------------------------+| |||:diagtext:`local` |nbsp| |+---------------------+| |||| | | | 2832| ||| | | ||| ||:diagtext:`variable` || |||| | | | 2833| ||| | | ||| |+---------------------+| |||| | | | 2834| ||| | | ||| ||:diagtext:`reference`|| |||| | | | 2835| ||| | | ||| |+---------------------+| |||| | | | 2836| ||| | | ||+-------------------------+-----------------------+ |||| | | | 2837| ||| | | |+----------------------------------------------------------------------+||| | | | 2838| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| | | | 2839| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 2840| ||+---------------------------------+----------------------------------------------------------+ || | | | 2841| |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+| || | | | 2842| ||| ||:diagtext:`initializer list subobject of local variable`|| || | | | 2843| ||| |+--------------------------------------------------------+| || | | | 2844| ||| ||:diagtext:`local initializer list` || || | | | 2845| ||| |+--------------------------------------------------------+| || | | | 2846| ||+---------------------------------+----------------------------------------------------------+ || | | | 2847| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 2848+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 2849 2850+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 2851|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`| 2852| ||:diagtext:`temporary` || ||:diagtext:`temporary` || | 2853| |+---------------------------------------------+| |+-------------------------+| | 2854| ||:diagtext:`backing array of initializer list`|| ||:diagtext:`backing array`|| | 2855| |+---------------------------------------------+| |+-------------------------+| | 2856+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 2857 2858 2859-Wdangling-else 2860--------------- 2861This diagnostic is enabled by default. 2862 2863**Diagnostic text:** 2864 2865+---------------------------------------------------------------------------------+ 2866|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`| 2867+---------------------------------------------------------------------------------+ 2868 2869 2870-Wdangling-field 2871---------------- 2872This diagnostic is enabled by default. 2873 2874**Diagnostic text:** 2875 2876+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 2877|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 2878| ||:diagtext:`variable` || | 2879| |+---------------------+| | 2880| ||:diagtext:`parameter`|| | 2881| |+---------------------+| | 2882+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 2883 2884+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 2885|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`| 2886| ||:diagtext:`reference` || || || ||:diagtext:`binds to`|| | 2887| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 2888| ||:diagtext:`backing array for 'std::initializer\_list'`|| ||:diagtext:`subobject of` |nbsp| || ||:diagtext:`is` || | 2889| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 2890+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 2891 2892+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 2893|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 2894| ||:diagtext:`variable` || | 2895| |+---------------------+| | 2896| ||:diagtext:`parameter`|| | 2897| |+---------------------+| | 2898+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 2899 2900+--------------------------------------------------------------------------------------------------------------------------------------------------+ 2901|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`| 2902+--------------------------------------------------------------------------------------------------------------------------------------------------+ 2903 2904 2905-Wdangling-initializer-list 2906--------------------------- 2907This diagnostic is enabled by default. 2908 2909**Diagnostic text:** 2910 2911+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 2912|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`| 2913| ||:diagtext:`initializer list subobject of the allocated object`|| | 2914| |+--------------------------------------------------------------+| | 2915| ||:diagtext:`the allocated initializer list` || | 2916| |+--------------------------------------------------------------+| | 2917+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 2918 2919 2920-Wdarwin-sdk-settings 2921--------------------- 2922This diagnostic is enabled by default. 2923 2924**Diagnostic text:** 2925 2926+----------------------------------------------------------------------------------------------------------+ 2927|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`| 2928+----------------------------------------------------------------------------------------------------------+ 2929 2930 2931-Wdate-time 2932----------- 2933**Diagnostic text:** 2934 2935+------------------------------------------------------------------------------------------+ 2936|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`| 2937+------------------------------------------------------------------------------------------+ 2938 2939 2940-Wdealloc-in-category 2941--------------------- 2942This diagnostic is enabled by default. 2943 2944**Diagnostic text:** 2945 2946+---------------------------------------------------------------------------------+ 2947|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`| 2948+---------------------------------------------------------------------------------+ 2949 2950 2951-Wdebug-compression-unavailable 2952------------------------------- 2953This diagnostic is enabled by default. 2954 2955**Diagnostic text:** 2956 2957+------------------------------------------------------------------------------------------+ 2958|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`| 2959+------------------------------------------------------------------------------------------+ 2960 2961 2962-Wdeclaration-after-statement 2963----------------------------- 2964**Diagnostic text:** 2965 2966+-----------------------------------------------------------------------------------+ 2967|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`| 2968+-----------------------------------------------------------------------------------+ 2969 2970 2971-Wdefaulted-function-deleted 2972---------------------------- 2973This diagnostic is enabled by default. 2974 2975**Diagnostic text:** 2976 2977+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 2978|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`| 2979| ||:diagtext:`default constructor` || | 2980| |+------------------------------------+| | 2981| ||:diagtext:`copy constructor` || | 2982| |+------------------------------------+| | 2983| ||:diagtext:`move constructor` || | 2984| |+------------------------------------+| | 2985| ||:diagtext:`copy assignment operator`|| | 2986| |+------------------------------------+| | 2987| ||:diagtext:`move assignment operator`|| | 2988| |+------------------------------------+| | 2989| ||:diagtext:`destructor` || | 2990| |+------------------------------------+| | 2991+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 2992 2993 2994-Wdelegating-ctor-cycles 2995------------------------ 2996This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error. 2997 2998**Diagnostic text:** 2999 3000+------------------------------------------------------------------------------------------------------------------------+ 3001|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`| 3002+------------------------------------------------------------------------------------------------------------------------+ 3003 3004 3005-Wdelete-abstract-non-virtual-dtor 3006---------------------------------- 3007This diagnostic is enabled by default. 3008 3009**Diagnostic text:** 3010 3011+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3012|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`| 3013| ||:diagtext:`delete` || | 3014| |+----------------------+| | 3015| ||:diagtext:`destructor`|| | 3016| |+----------------------+| | 3017+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3018 3019 3020-Wdelete-incomplete 3021------------------- 3022This diagnostic is enabled by default. 3023 3024**Diagnostic text:** 3025 3026+-------------------------------------------------------------------------------------------------------------------+ 3027|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`| 3028+-------------------------------------------------------------------------------------------------------------------+ 3029 3030+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3031|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`| 3032+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3033 3034 3035-Wdelete-non-abstract-non-virtual-dtor 3036-------------------------------------- 3037**Diagnostic text:** 3038 3039+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3040|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`| 3041| ||:diagtext:`delete` || | 3042| |+----------------------+| | 3043| ||:diagtext:`destructor`|| | 3044| |+----------------------+| | 3045+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3046 3047 3048-Wdelete-non-virtual-dtor 3049------------------------- 3050Some of the diagnostics controlled by this flag are enabled by default. 3051 3052Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_. 3053 3054 3055-Wdeprecated 3056------------ 3057Some of the diagnostics controlled by this flag are enabled by default. 3058 3059Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_. 3060 3061**Diagnostic text:** 3062 3063+---------------------------------------------------------------+ 3064|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`| 3065+---------------------------------------------------------------+ 3066 3067+---------------------------------------------------------------------------------------------------------+ 3068|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`| 3069+---------------------------------------------------------------------------------------------------------+ 3070 3071+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ 3072|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+| 3073| ||:diagtext:`constructor` || ||+------------------------+---------------------------------+|| 3074| |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+||| 3075| ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`|||| 3076| |+-------------------------------+| ||| |+-------------------------------+||| 3077| | | ||| ||:diagtext:`constructor` |||| 3078| | | ||| |+-------------------------------+||| 3079| | | ||+------------------------+---------------------------------+|| 3080| | | |+------------------------------------------------------------+| 3081| | | ||:diagtext:`destructor` || 3082| | | |+------------------------------------------------------------+| 3083+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ 3084 3085+-------------------------------------------------------------------------------------------------------------------------------------+ 3086|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`| 3087+-------------------------------------------------------------------------------------------------------------------------------------+ 3088 3089+----------------------------------------------------------------------------------------------------------------------------------------+ 3090|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`| 3091+----------------------------------------------------------------------------------------------------------------------------------------+ 3092 3093+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3094|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`| 3095+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3096 3097+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3098|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`| 3099+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3100 3101+------------------------------------------------------------------------------------+ 3102|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`| 3103+------------------------------------------------------------------------------------+ 3104 3105 3106-Wdeprecated-attributes 3107----------------------- 3108This diagnostic is enabled by default. 3109 3110**Diagnostic text:** 3111 3112+------------------------------------------------------------------------------------------------------------------------------------------------+ 3113|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`| 3114+------------------------------------------------------------------------------------------------------------------------------------------------+ 3115 3116 3117-Wdeprecated-declarations 3118------------------------- 3119This diagnostic is enabled by default. 3120 3121**Diagnostic text:** 3122 3123+--------------------------------------------------------------------------------------------------------------------+ 3124|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`| 3125+--------------------------------------------------------------------------------------------------------------------+ 3126 3127+-----------------------------------------------------------------------------------------------------------------+ 3128|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`| 3129+-----------------------------------------------------------------------------------------------------------------+ 3130 3131+----------------------------------------------------------------------------+ 3132|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3133+----------------------------------------------------------------------------+ 3134 3135+---------------------------------------------------------------------------------------------------------------------+ 3136|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`| 3137+---------------------------------------------------------------------------------------------------------------------+ 3138 3139+-----------------------------------------------------------------------------------------------------+ 3140|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`| 3141+-----------------------------------------------------------------------------------------------------+ 3142 3143+-------------------------------------------------------------------------------------------------------------------------------------+ 3144|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`| 3145+-------------------------------------------------------------------------------------------------------------------------------------+ 3146 3147 3148-Wdeprecated-dynamic-exception-spec 3149----------------------------------- 3150**Diagnostic text:** 3151 3152+--------------------------------------------------------------------------------------+ 3153|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`| 3154+--------------------------------------------------------------------------------------+ 3155 3156 3157-Wdeprecated-implementations 3158---------------------------- 3159**Diagnostic text:** 3160 3161+----------------------------------------------------------------------+----------------------+ 3162|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+| 3163| ||:diagtext:`method` || 3164| |+--------------------+| 3165| ||:diagtext:`class` || 3166| |+--------------------+| 3167| ||:diagtext:`category`|| 3168| |+--------------------+| 3169+----------------------------------------------------------------------+----------------------+ 3170 3171+----------------------------------------------------------------------+ 3172|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`| 3173+----------------------------------------------------------------------+ 3174 3175 3176-Wdeprecated-increment-bool 3177--------------------------- 3178This diagnostic is enabled by default. 3179 3180**Diagnostic text:** 3181 3182+---------------------------------------------------------------------------------------------------------------------+ 3183|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`| 3184+---------------------------------------------------------------------------------------------------------------------+ 3185 3186 3187-Wdeprecated-objc-isa-usage 3188--------------------------- 3189This diagnostic is enabled by default. 3190 3191**Diagnostic text:** 3192 3193+-------------------------------------------------------------------------------------------------------------------+ 3194|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`| 3195+-------------------------------------------------------------------------------------------------------------------+ 3196 3197+----------------------------------------------------------------------------------------------------------------------+ 3198|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`| 3199+----------------------------------------------------------------------------------------------------------------------+ 3200 3201 3202-Wdeprecated-objc-pointer-introspection 3203--------------------------------------- 3204This diagnostic is enabled by default. 3205 3206Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_. 3207 3208**Diagnostic text:** 3209 3210+--------------------------------------------------------------------------------------------------------------------------+ 3211|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3212+--------------------------------------------------------------------------------------------------------------------------+ 3213 3214 3215-Wdeprecated-objc-pointer-introspection-performSelector 3216------------------------------------------------------- 3217This diagnostic is enabled by default. 3218 3219**Diagnostic text:** 3220 3221+--------------------------------------------------------------------------------------------------------------------------+ 3222|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3223+--------------------------------------------------------------------------------------------------------------------------+ 3224 3225 3226-Wdeprecated-register 3227--------------------- 3228This diagnostic is enabled by default. 3229 3230**Diagnostic text:** 3231 3232+-------------------------------------------------------------------------------------------------------------------+ 3233|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`| 3234+-------------------------------------------------------------------------------------------------------------------+ 3235 3236 3237-Wdeprecated-this-capture 3238------------------------- 3239**Diagnostic text:** 3240 3241+-------------------------------------------------------------------------------------------------------------+ 3242|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`| 3243+-------------------------------------------------------------------------------------------------------------+ 3244 3245 3246-Wdeprecated-writable-strings 3247----------------------------- 3248Synonym for `-Wc++11-compat-deprecated-writable-strings`_. 3249 3250 3251-Wdirect-ivar-access 3252-------------------- 3253**Diagnostic text:** 3254 3255+------------------------------------------------------------------------------------------------------------------------------+ 3256|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`| 3257+------------------------------------------------------------------------------------------------------------------------------+ 3258 3259 3260-Wdisabled-macro-expansion 3261-------------------------- 3262**Diagnostic text:** 3263 3264+----------------------------------------------------------------------------+ 3265|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`| 3266+----------------------------------------------------------------------------+ 3267 3268 3269-Wdisabled-optimization 3270----------------------- 3271This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3272 3273-Wdiscard-qual 3274-------------- 3275This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3276 3277-Wdistributed-object-modifiers 3278------------------------------ 3279This diagnostic is enabled by default. 3280 3281**Diagnostic text:** 3282 3283+----------------------------------------------------------------------------------------------------------------------------------------------+ 3284|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`| 3285+----------------------------------------------------------------------------------------------------------------------------------------------+ 3286 3287+-------------------------------------------------------------------------------------------------------------------------------------------+ 3288|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`| 3289+-------------------------------------------------------------------------------------------------------------------------------------------+ 3290 3291 3292-Wdiv-by-zero 3293------------- 3294Synonym for `-Wdivision-by-zero`_. 3295 3296 3297-Wdivision-by-zero 3298------------------ 3299This diagnostic is enabled by default. 3300 3301**Diagnostic text:** 3302 3303+---------------------------+-----------------------+----------------------------------------+ 3304|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`| 3305| ||:diagtext:`remainder`|| | 3306| |+---------------------+| | 3307| ||:diagtext:`division` || | 3308| |+---------------------+| | 3309+---------------------------+-----------------------+----------------------------------------+ 3310 3311 3312-Wdll-attribute-on-redeclaration 3313-------------------------------- 3314This diagnostic is enabled by default. 3315 3316**Diagnostic text:** 3317 3318+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3319|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`| 3320+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3321 3322 3323-Wdllexport-explicit-instantiation-decl 3324--------------------------------------- 3325This diagnostic is enabled by default. 3326 3327**Diagnostic text:** 3328 3329+---------------------------------------------------------------------------------------------------+ 3330|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`| 3331+---------------------------------------------------------------------------------------------------+ 3332 3333 3334-Wdllimport-static-field-def 3335---------------------------- 3336This diagnostic is enabled by default. 3337 3338**Diagnostic text:** 3339 3340+---------------------------------------------------------------------------+ 3341|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`| 3342+---------------------------------------------------------------------------+ 3343 3344 3345-Wdocumentation 3346--------------- 3347Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_. 3348 3349**Diagnostic text:** 3350 3351+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3352|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`| 3353| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || | 3354| |+--------------+|+---------------------+| |+---------------------+| | 3355| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| | 3356| |+--------------+|+---------------------+| |+---------------------+| | 3357| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || | 3358| | |+---------------------+| |+---------------------+| | 3359| | ||:diagtext:`struct` || ||:diagtext:`struct` || | 3360| | |+---------------------+| |+---------------------+| | 3361| | ||:diagtext:`union` || ||:diagtext:`union` || | 3362| | |+---------------------+| |+---------------------+| | 3363+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3364 3365+-----------------------------------------------------------+----------------+-----------------------------+ 3366|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`| 3367| ||:diagtext:`\\`|| | 3368| |+--------------+| | 3369| ||:diagtext:`@` || | 3370| |+--------------+| | 3371+-----------------------------------------------------------+----------------+-----------------------------+ 3372 3373+------------------------------------------------------------------+----------------+-------------------------------------+ 3374|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`| 3375| ||:diagtext:`\\`|| | 3376| |+--------------+| | 3377| ||:diagtext:`@` || | 3378| |+--------------+| | 3379+------------------------------------------------------------------+----------------+-------------------------------------+ 3380 3381+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3382|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`| 3383| ||:diagtext:`\\`|||:diagtext:`classdesign` || | 3384| |+--------------+|+------------------------+| | 3385| ||:diagtext:`@` |||:diagtext:`coclass` || | 3386| |+--------------+|+------------------------+| | 3387| | ||:diagtext:`dependency` || | 3388| | |+------------------------+| | 3389| | ||:diagtext:`helper` || | 3390| | |+------------------------+| | 3391| | ||:diagtext:`helperclass` || | 3392| | |+------------------------+| | 3393| | ||:diagtext:`helps` || | 3394| | |+------------------------+| | 3395| | ||:diagtext:`instancesize`|| | 3396| | |+------------------------+| | 3397| | ||:diagtext:`ownership` || | 3398| | |+------------------------+| | 3399| | ||:diagtext:`performance` || | 3400| | |+------------------------+| | 3401| | ||:diagtext:`security` || | 3402| | |+------------------------+| | 3403| | ||:diagtext:`superclass` || | 3404| | |+------------------------+| | 3405+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3406 3407+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3408|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`| 3409| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || | 3410| |+--------------+|+-------------------------+| |+---------------------------------+| | 3411| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || | 3412| |+--------------+|+-------------------------+| |+---------------------------------+| | 3413| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| | 3414| | |+-------------------------+| |+---------------------------------+| | 3415| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| | 3416| | |+-------------------------+| |+---------------------------------+| | 3417| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| | 3418| | |+-------------------------+| |+---------------------------------+| | 3419+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3420 3421+-------------------------------------------------------------------------------------------------------+ 3422|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`| 3423+-------------------------------------------------------------------------------------------------------+ 3424 3425+-------------------------------------------------------------------------------+ 3426|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`| 3427+-------------------------------------------------------------------------------+ 3428 3429+-----------------------------------------------------------------------------------------------------+ 3430|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`| 3431+-----------------------------------------------------------------------------------------------------+ 3432 3433+------------------------------------------------------------------------------------------------------------------------------------------+ 3434|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`| 3435+------------------------------------------------------------------------------------------------------------------------------------------+ 3436 3437+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3438|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`| 3439| ||:diagtext:`\\`|| | 3440| |+--------------+| | 3441| ||:diagtext:`@` || | 3442| |+--------------+| | 3443+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3444 3445+---------------------------------------------------------------------------------------------------------------------+ 3446|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`| 3447+---------------------------------------------------------------------------------------------------------------------+ 3448 3449+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 3450|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+| 3451| ||:diagtext:`\\`|| ||:diagtext:`function returning void`|| 3452| |+--------------+| |+-----------------------------------+| 3453| ||:diagtext:`@` || ||:diagtext:`constructor` || 3454| |+--------------+| |+-----------------------------------+| 3455| | | ||:diagtext:`destructor` || 3456| | | |+-----------------------------------+| 3457| | | ||:diagtext:`method returning void` || 3458| | | |+-----------------------------------+| 3459+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 3460 3461+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 3462|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`| 3463| ||:diagtext:`\\`|| | 3464| |+--------------+| | 3465| ||:diagtext:`@` || | 3466| |+--------------+| | 3467+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 3468 3469+--------------------------------------------------------------------------------------------------------------+ 3470|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`| 3471+--------------------------------------------------------------------------------------------------------------+ 3472 3473+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 3474|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`| 3475| ||:diagtext:`\\`|| | 3476| |+--------------+| | 3477| ||:diagtext:`@` || | 3478| |+--------------+| | 3479+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 3480 3481+------------------------------------------------------------------------------------------------------------------------------+ 3482|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`| 3483+------------------------------------------------------------------------------------------------------------------------------+ 3484 3485+---------------------------------------------------------------------+ 3486|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`| 3487+---------------------------------------------------------------------+ 3488 3489+----------------------------------------+----------------+------------------------------------------------------------------------------+ 3490|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`| 3491| ||:diagtext:`\\`|| | 3492| |+--------------+| | 3493| ||:diagtext:`@` || | 3494| |+--------------+| | 3495+----------------------------------------+----------------+------------------------------------------------------------------------------+ 3496 3497 3498-Wdocumentation-deprecated-sync 3499------------------------------- 3500**Diagnostic text:** 3501 3502+----------------------------------------------------------------------------------------------------------------------------------+ 3503|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`| 3504+----------------------------------------------------------------------------------------------------------------------------------+ 3505 3506 3507-Wdocumentation-html 3508-------------------- 3509**Diagnostic text:** 3510 3511+-----------------------------------------------------------------------------------------------+ 3512|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`| 3513+-----------------------------------------------------------------------------------------------+ 3514 3515+--------------------------------------------------------------------------------+ 3516|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`| 3517+--------------------------------------------------------------------------------+ 3518 3519+--------------------------------------------------------------------------------------------------+ 3520|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`| 3521+--------------------------------------------------------------------------------------------------+ 3522 3523+-----------------------------------------------------------------------------------------------------------------------------+ 3524|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`| 3525+-----------------------------------------------------------------------------------------------------------------------------+ 3526 3527 3528-Wdocumentation-pedantic 3529------------------------ 3530Also controls `-Wdocumentation-unknown-command`_. 3531 3532**Diagnostic text:** 3533 3534+-----------------------------------------------------------------------------------------------+ 3535|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`| 3536+-----------------------------------------------------------------------------------------------+ 3537 3538 3539-Wdocumentation-unknown-command 3540------------------------------- 3541**Diagnostic text:** 3542 3543+--------------------------------------------------------------------------------------------------------------------------------------------+ 3544|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| 3545+--------------------------------------------------------------------------------------------------------------------------------------------+ 3546 3547+---------------------------------------------------------------+ 3548|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`| 3549+---------------------------------------------------------------+ 3550 3551 3552-Wdollar-in-identifier-extension 3553-------------------------------- 3554**Diagnostic text:** 3555 3556+--------------------------------------------------------+ 3557|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`| 3558+--------------------------------------------------------+ 3559 3560 3561-Wdouble-promotion 3562------------------ 3563**Diagnostic text:** 3564 3565+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3566|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 3567+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3568 3569 3570-Wduplicate-decl-specifier 3571-------------------------- 3572Some of the diagnostics controlled by this flag are enabled by default. 3573 3574**Diagnostic text:** 3575 3576+-----------------------------------------------------------------------------------------------------+ 3577|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3578+-----------------------------------------------------------------------------------------------------+ 3579 3580+-----------------------------------------------------------------------------------------------------+ 3581|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3582+-----------------------------------------------------------------------------------------------------+ 3583 3584+-------------------------------------------------------------------------------------------+ 3585|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`| 3586+-------------------------------------------------------------------------------------------+ 3587 3588+-----------------------------------------------------------------------------------------------------+ 3589|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3590+-----------------------------------------------------------------------------------------------------+ 3591 3592 3593-Wduplicate-enum 3594---------------- 3595**Diagnostic text:** 3596 3597+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3598|:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`| 3599+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3600 3601 3602-Wduplicate-method-arg 3603---------------------- 3604**Diagnostic text:** 3605 3606+------------------------------------------------------------------------------------------------+ 3607|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`| 3608+------------------------------------------------------------------------------------------------+ 3609 3610 3611-Wduplicate-method-match 3612------------------------ 3613**Diagnostic text:** 3614 3615+-----------------------------------------------------------------------------------------------------------------------------------+ 3616|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`| 3617+-----------------------------------------------------------------------------------------------------------------------------------+ 3618 3619 3620-Wduplicate-protocol 3621-------------------- 3622This diagnostic is enabled by default. 3623 3624**Diagnostic text:** 3625 3626+-----------------------------------------------------------------------------------------------------------------------------+ 3627|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`| 3628+-----------------------------------------------------------------------------------------------------------------------------+ 3629 3630 3631-Wdynamic-class-memaccess 3632------------------------- 3633This diagnostic is enabled by default. 3634 3635**Diagnostic text:** 3636 3637+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 3638|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+| 3639| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`|| 3640| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 3641| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` || 3642| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 3643| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` || 3644| |+-----------------------------+| | | |+-----------------------+| 3645| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` || 3646| |+-----------------------------+| | | |+-----------------------+| 3647+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 3648 3649 3650-Wdynamic-exception-spec 3651------------------------ 3652Some of the diagnostics controlled by this flag are enabled by default. 3653 3654Also controls `-Wdeprecated-dynamic-exception-spec`_. 3655 3656**Diagnostic text:** 3657 3658+--------------------------------------------------------------------------------------------+ 3659|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`| 3660+--------------------------------------------------------------------------------------------+ 3661 3662 3663-Weffc++ 3664-------- 3665Synonym for `-Wnon-virtual-dtor`_. 3666 3667 3668-Wembedded-directive 3669-------------------- 3670**Diagnostic text:** 3671 3672+----------------------------------------------------------------------------------------------------------+ 3673|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`| 3674+----------------------------------------------------------------------------------------------------------+ 3675 3676 3677-Wempty-body 3678------------ 3679This diagnostic is enabled by default. 3680 3681**Diagnostic text:** 3682 3683+--------------------------------------------------------------+ 3684|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`| 3685+--------------------------------------------------------------+ 3686 3687+------------------------------------------------------------------+ 3688|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`| 3689+------------------------------------------------------------------+ 3690 3691+--------------------------------------------------------------------------+ 3692|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`| 3693+--------------------------------------------------------------------------+ 3694 3695+----------------------------------------------------------------------+ 3696|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`| 3697+----------------------------------------------------------------------+ 3698 3699+----------------------------------------------------------------+ 3700|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`| 3701+----------------------------------------------------------------+ 3702 3703 3704-Wempty-decomposition 3705--------------------- 3706This diagnostic is enabled by default. 3707 3708**Diagnostic text:** 3709 3710+-------------------------------------------------------------------------------------------------+ 3711|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`| 3712+-------------------------------------------------------------------------------------------------+ 3713 3714 3715-Wempty-init-stmt 3716----------------- 3717**Diagnostic text:** 3718 3719+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 3720|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`| 3721| ||:diagtext:`if` || | 3722| |+---------------------------+| | 3723| ||:diagtext:`switch` || | 3724| |+---------------------------+| | 3725| ||:diagtext:`range-based for`|| | 3726| |+---------------------------+| | 3727+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 3728 3729 3730-Wempty-translation-unit 3731------------------------ 3732**Diagnostic text:** 3733 3734+------------------------------------------------------------------------------------------------------------+ 3735|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`| 3736+------------------------------------------------------------------------------------------------------------+ 3737 3738 3739-Wencode-type 3740------------- 3741This diagnostic is enabled by default. 3742 3743**Diagnostic text:** 3744 3745+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3746|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`| 3747+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3748 3749 3750-Wendif-labels 3751-------------- 3752Synonym for `-Wextra-tokens`_. 3753 3754 3755-Wenum-compare 3756-------------- 3757This diagnostic is enabled by default. 3758 3759Also controls `-Wenum-compare-switch`_. 3760 3761**Diagnostic text:** 3762 3763+------------------------------------------------------------------------------------------------+ 3764|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`| 3765+------------------------------------------------------------------------------------------------+ 3766 3767 3768-Wenum-compare-switch 3769--------------------- 3770This diagnostic is enabled by default. 3771 3772**Diagnostic text:** 3773 3774+--------------------------------------------------------------------------------------------------------------------+ 3775|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`| 3776+--------------------------------------------------------------------------------------------------------------------+ 3777 3778 3779-Wenum-conversion 3780----------------- 3781This diagnostic is enabled by default. 3782 3783**Diagnostic text:** 3784 3785+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3786|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`| 3787+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3788 3789 3790-Wenum-too-large 3791---------------- 3792This diagnostic is enabled by default. 3793 3794**Diagnostic text:** 3795 3796+-----------------------------------------------------------------------------------------+ 3797|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`| 3798+-----------------------------------------------------------------------------------------+ 3799 3800+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3801|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`| 3802+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3803 3804 3805-Wexceptions 3806------------ 3807This diagnostic is enabled by default. 3808 3809**Diagnostic text:** 3810 3811+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 3812|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`| 3813| ||:diagtext:`constructor`|| | 3814| |+-----------------------+| | 3815| ||:diagtext:`destructor` || | 3816| |+-----------------------+| | 3817+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 3818 3819+-------------------------------------------------------------------------------------------------------------------------------------+ 3820|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`| 3821+-------------------------------------------------------------------------------------------------------------------------------------+ 3822 3823+-----------------------------------------------------------------------------------------------------------------------------+ 3824|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`| 3825+-----------------------------------------------------------------------------------------------------------------------------+ 3826 3827 3828-Wexit-time-destructors 3829----------------------- 3830**Diagnostic text:** 3831 3832+-----------------------------------------------------------------------------------+ 3833|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`| 3834+-----------------------------------------------------------------------------------+ 3835 3836 3837-Wexpansion-to-defined 3838---------------------- 3839Some of the diagnostics controlled by this flag are enabled by default. 3840 3841**Diagnostic text:** 3842 3843+-------------------------------------------------------------------------------------------------+ 3844|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 3845+-------------------------------------------------------------------------------------------------+ 3846 3847+-------------------------------------------------------------------------------------------------+ 3848|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 3849+-------------------------------------------------------------------------------------------------+ 3850 3851 3852-Wexperimental-isel 3853------------------- 3854This diagnostic is enabled by default. 3855 3856**Diagnostic text:** 3857 3858+------------------------------------------------------------------------------------------------------------------------------------+ 3859|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`| 3860+------------------------------------------------------------------------------------------------------------------------------------+ 3861 3862+----------------------------------------------------------------------------------------------------------------------------------------+ 3863|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support is incomplete for this architecture at the current optimization level`| 3864+----------------------------------------------------------------------------------------------------------------------------------------+ 3865 3866 3867-Wexplicit-initialize-call 3868-------------------------- 3869This diagnostic is enabled by default. 3870 3871**Diagnostic text:** 3872 3873+------------------------------------------------------------------------------------------------------------+ 3874|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`| 3875+------------------------------------------------------------------------------------------------------------+ 3876 3877+----------------------------------------------------------------------------------------------------------------------------+ 3878|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`| 3879+----------------------------------------------------------------------------------------------------------------------------+ 3880 3881 3882-Wexplicit-ownership-type 3883------------------------- 3884**Diagnostic text:** 3885 3886+-------------------------------------------------------------------------------------------------------------------------------------+ 3887|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`| 3888+-------------------------------------------------------------------------------------------------------------------------------------+ 3889 3890 3891-Wextern-c-compat 3892----------------- 3893This diagnostic is enabled by default. 3894 3895**Diagnostic text:** 3896 3897+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 3898|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 3899| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 3900| |+-------------------------+|+------------------+| |+-------------------------+| | 3901| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 3902| |+-------------------------+|+------------------+| |+-------------------------+| | 3903+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 3904 3905 3906-Wextern-initializer 3907-------------------- 3908This diagnostic is enabled by default. 3909 3910**Diagnostic text:** 3911 3912+---------------------------------------------------------------------------+ 3913|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`| 3914+---------------------------------------------------------------------------+ 3915 3916 3917-Wextra 3918------- 3919Some of the diagnostics controlled by this flag are enabled by default. 3920 3921Also controls `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_. 3922 3923**Diagnostic text:** 3924 3925+-----------------------------------------------------------------------------------------------------------------------------+ 3926|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`| 3927+-----------------------------------------------------------------------------------------------------------------------------+ 3928 3929 3930-Wextra-qualification 3931--------------------- 3932This diagnostic is enabled by default. 3933 3934**Diagnostic text:** 3935 3936+--------------------------------------------------------------------------------------------+ 3937|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 3938+--------------------------------------------------------------------------------------------+ 3939 3940 3941-Wextra-semi 3942------------ 3943Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_. 3944 3945**Diagnostic text:** 3946 3947+--------------------------------------------------------+------------------------------------------------+ 3948|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 3949| ||:diagtext:`outside of a function` || 3950| |+----------------------------------------------+| 3951| ||+--------------------------------------------+|| 3952| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 3953| ||+--------------------------------------------+|| 3954| |+----------------------------------------------+| 3955| ||:diagtext:`inside instance variable list` || 3956| |+----------------------------------------------+| 3957| ||:diagtext:`after member function definition` || 3958| |+----------------------------------------------+| 3959+--------------------------------------------------------+------------------------------------------------+ 3960 3961+---------------------------------------------------------------------------------+ 3962|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`| 3963+---------------------------------------------------------------------------------+ 3964 3965 3966-Wextra-semi-stmt 3967----------------- 3968Also controls `-Wempty-init-stmt`_. 3969 3970**Diagnostic text:** 3971 3972+-------------------------------------------------------------------------------------------------------------------------------+ 3973|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`| 3974+-------------------------------------------------------------------------------------------------------------------------------+ 3975 3976 3977-Wextra-tokens 3978-------------- 3979This diagnostic is enabled by default. 3980 3981**Diagnostic text:** 3982 3983+------------------------------------------------------------------------------------------------------------+ 3984|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`| 3985+------------------------------------------------------------------------------------------------------------+ 3986 3987+-------------------------------------------------------------------------------------------------------------------------------+ 3988|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`| 3989+-------------------------------------------------------------------------------------------------------------------------------+ 3990 3991 3992-Wfallback 3993---------- 3994This diagnostic is enabled by default. 3995 3996**Diagnostic text:** 3997 3998+------------------------------------------------------------------------------+ 3999|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`| 4000+------------------------------------------------------------------------------+ 4001 4002 4003-Wfixed-enum-extension 4004---------------------- 4005**Diagnostic text:** 4006 4007+-----------------------------------------------------------------------------------------------------------+ 4008|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`| 4009+-----------------------------------------------------------------------------------------------------------+ 4010 4011 4012-Wflag-enum 4013----------- 4014This diagnostic is enabled by default. 4015 4016**Diagnostic text:** 4017 4018+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4019|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`| 4020+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4021 4022 4023-Wflexible-array-extensions 4024--------------------------- 4025**Diagnostic text:** 4026 4027+-------------------------------------------------------------------------------------------------------------------------------+ 4028|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`| 4029+-------------------------------------------------------------------------------------------------------------------------------+ 4030 4031+-------------------------------------------------------------------------------------------------------------------------+ 4032|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`| 4033+-------------------------------------------------------------------------------------------------------------------------+ 4034 4035 4036-Wfloat-conversion 4037------------------ 4038Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_. 4039 4040**Diagnostic text:** 4041 4042+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4043|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 4044+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4045 4046 4047-Wfloat-equal 4048------------- 4049**Diagnostic text:** 4050 4051+---------------------------------------------------------------------------------------+ 4052|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`| 4053+---------------------------------------------------------------------------------------+ 4054 4055 4056-Wfloat-overflow-conversion 4057--------------------------- 4058**Diagnostic text:** 4059 4060+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4061|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4062+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4063 4064+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4065|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 4066+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4067 4068 4069-Wfloat-zero-conversion 4070----------------------- 4071**Diagnostic text:** 4072 4073+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4074|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4075+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4076 4077 4078-Wfor-loop-analysis 4079------------------- 4080**Diagnostic text:** 4081 4082+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4083|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`| 4084| ||:diagtext:`decremented`|| | 4085| |+-----------------------+| | 4086| ||:diagtext:`incremented`|| | 4087| |+-----------------------+| | 4088+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4089 4090+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4091|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`| 4092| ||:diagtext:`s` || | 4093| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4094| ||+------------------------+ || | 4095| ||| |nbsp| :placeholder:`B`| || | 4096| ||+------------------------+ || | 4097| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4098| ||+------------------------------------------------------------------------------------+ || | 4099| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || | 4100| ||+------------------------------------------------------------------------------------+ || | 4101| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4102| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4103| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || | 4104| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4105| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4106| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4107| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| | 4108| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4109| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4110+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4111 4112 4113-Wformat 4114-------- 4115This diagnostic is enabled by default. 4116 4117Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_. 4118 4119**Diagnostic text:** 4120 4121+-------------------------------------------------------------------------------------+ 4122|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`| 4123+-------------------------------------------------------------------------------------+ 4124 4125+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4126|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 4127| ||:diagtext:`values of type` || | 4128| |+--------------------------------------------+| | 4129| ||:diagtext:`enum values with underlying type`|| | 4130| |+--------------------------------------------+| | 4131+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4132 4133+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4134|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 4135| ||:diagtext:`type` || | 4136| |+---------------------------+| | 4137| ||:diagtext:`underlying type`|| | 4138| |+---------------------------+| | 4139+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4140 4141+----------------------------------------------------------------------------------------------------------------------------------------+ 4142|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`| 4143+----------------------------------------------------------------------------------------------------------------------------------------+ 4144 4145+-----------------------------------------------------------------------------+-----------------------------+ 4146|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+| 4147| ||:diagtext:`field width` || 4148| |+---------------------------+| 4149| ||:diagtext:`field precision`|| 4150| |+---------------------------+| 4151+-----------------------------------------------------------------------------+-----------------------------+ 4152 4153+----------------------------------------------------------------------------------------------------------+ 4154|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`| 4155+----------------------------------------------------------------------------------------------------------+ 4156 4157+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4158|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4159+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4160 4161+--------------------------------------------------------------------------------+ 4162|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`| 4163+--------------------------------------------------------------------------------+ 4164 4165+-------------------------------------------------------------------------------------------------------+ 4166|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`| 4167+-------------------------------------------------------------------------------------------------------+ 4168 4169+------------------------------------------------------------+ 4170|:warning:`warning:` |nbsp| :diagtext:`format string missing`| 4171+------------------------------------------------------------+ 4172 4173+----------------------------------------------------------------------------------------------------------------------------------+ 4174|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`| 4175+----------------------------------------------------------------------------------------------------------------------------------+ 4176 4177+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4178|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`| 4179| ||:diagtext:`\*` || ||:diagtext:`width` || | 4180| |+---------------+| |+---------------------+| | 4181| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| | 4182| |+---------------+| |+---------------------+| | 4183+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4184 4185+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4186|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`| 4187| ||:diagtext:`width` || | 4188| |+---------------------+| | 4189| ||:diagtext:`precision`|| | 4190| |+---------------------+| | 4191+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4192 4193+-----------------------------------------------------------------+ 4194|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`| 4195+-----------------------------------------------------------------+ 4196 4197+------------------------------------------------------------------------------------------+ 4198|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`| 4199+------------------------------------------------------------------------------------------+ 4200 4201+---------------------------------------------------------------------------+ 4202|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`| 4203+---------------------------------------------------------------------------+ 4204 4205+-----------------------------------------------------------------------------------------------------------------------------------------+ 4206|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`| 4207+-----------------------------------------------------------------------------------------------------------------------------------------+ 4208 4209+------------------------------------------------------------------+ 4210|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`| 4211+------------------------------------------------------------------+ 4212 4213+--------------------------------------------------------------------------------+ 4214|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`| 4215+--------------------------------------------------------------------------------+ 4216 4217+-------------------------------------------------------------------------------------------------------+ 4218|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`| 4219+-------------------------------------------------------------------------------------------------------+ 4220 4221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4222|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4223+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4224 4225+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4226|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`| 4227| ||:diagtext:`field width`|| | 4228| |+-----------------------+| | 4229| ||:diagtext:`precision` || | 4230| |+-----------------------+| | 4231+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4232 4233+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4234|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`| 4235+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4236 4237+----------------------------------------------------------------------------------------+ 4238|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`| 4239+----------------------------------------------------------------------------------------+ 4240 4241+----------------------------------------------------------------------------------------+ 4242|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`| 4243+----------------------------------------------------------------------------------------+ 4244 4245 4246-Wformat-extra-args 4247------------------- 4248This diagnostic is enabled by default. 4249 4250**Diagnostic text:** 4251 4252+------------------------------------------------------------------------------+ 4253|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`| 4254+------------------------------------------------------------------------------+ 4255 4256 4257-Wformat-invalid-specifier 4258-------------------------- 4259This diagnostic is enabled by default. 4260 4261**Diagnostic text:** 4262 4263+--------------------------------------------------------------------------------------------------+ 4264|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`| 4265+--------------------------------------------------------------------------------------------------+ 4266 4267 4268-Wformat-non-iso 4269---------------- 4270**Diagnostic text:** 4271 4272+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 4273|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`| 4274| ||:diagtext:`length modifier` || | 4275| |+--------------------------------+| | 4276| ||:diagtext:`conversion specifier`|| | 4277| |+--------------------------------+| | 4278+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 4279 4280+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4281|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`| 4282+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4283 4284+--------------------------------------------------------------------------------------+ 4285|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`| 4286+--------------------------------------------------------------------------------------+ 4287 4288 4289-Wformat-nonliteral 4290------------------- 4291**Diagnostic text:** 4292 4293+----------------------------------------------------------------------------+ 4294|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`| 4295+----------------------------------------------------------------------------+ 4296 4297 4298-Wformat-pedantic 4299----------------- 4300**Diagnostic text:** 4301 4302+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4303|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 4304| ||:diagtext:`values of type` || | 4305| |+--------------------------------------------+| | 4306| ||:diagtext:`enum values with underlying type`|| | 4307| |+--------------------------------------------+| | 4308+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4309 4310+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4311|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 4312| ||:diagtext:`type` || | 4313| |+---------------------------+| | 4314| ||:diagtext:`underlying type`|| | 4315| |+---------------------------+| | 4316+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4317 4318 4319-Wformat-security 4320----------------- 4321This diagnostic is enabled by default. 4322 4323**Diagnostic text:** 4324 4325+---------------------------------------------------------------------------------------------------+ 4326|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`| 4327+---------------------------------------------------------------------------------------------------+ 4328 4329 4330-Wformat-y2k 4331------------ 4332This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 4333 4334-Wformat-zero-length 4335-------------------- 4336This diagnostic is enabled by default. 4337 4338**Diagnostic text:** 4339 4340+-------------------------------------------------------------+ 4341|:warning:`warning:` |nbsp| :diagtext:`format string is empty`| 4342+-------------------------------------------------------------+ 4343 4344 4345-Wformat=2 4346---------- 4347Some of the diagnostics controlled by this flag are enabled by default. 4348 4349Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_. 4350 4351 4352-Wfour-char-constants 4353--------------------- 4354**Diagnostic text:** 4355 4356+-------------------------------------------------------------------------+ 4357|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 4358+-------------------------------------------------------------------------+ 4359 4360 4361-Wframe-larger-than= 4362-------------------- 4363This diagnostic is enabled by default. 4364 4365**Diagnostic text:** 4366 4367The text of this diagnostic is not controlled by Clang. 4368 4369+--------------------------------------------------------------------------------------------------------------------------------------+ 4370|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`| 4371+--------------------------------------------------------------------------------------------------------------------------------------+ 4372 4373 4374-Wframework-include-private-from-public 4375--------------------------------------- 4376This diagnostic is enabled by default. 4377 4378**Diagnostic text:** 4379 4380+-------------------------------------------------------------------------------------------------------------------------------+ 4381|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`| 4382+-------------------------------------------------------------------------------------------------------------------------------+ 4383 4384 4385-Wfunction-def-in-objc-container 4386-------------------------------- 4387This diagnostic is enabled by default. 4388 4389**Diagnostic text:** 4390 4391+--------------------------------------------------------------------------------------------------------+ 4392|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`| 4393+--------------------------------------------------------------------------------------------------------+ 4394 4395 4396-Wfunction-multiversion 4397----------------------- 4398This diagnostic is enabled by default. 4399 4400**Diagnostic text:** 4401 4402+-------------------------------------------------------------------------------------+ 4403|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`| 4404+-------------------------------------------------------------------------------------+ 4405 4406+---------------------------------------------------------------------------------------------+ 4407|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`| 4408+---------------------------------------------------------------------------------------------+ 4409 4410 4411-Wfuture-compat 4412--------------- 4413This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 4414 4415-Wgcc-compat 4416------------ 4417Some of the diagnostics controlled by this flag are enabled by default. 4418 4419**Diagnostic text:** 4420 4421+--------------------------------------------------------------------------+ 4422|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 4423+--------------------------------------------------------------------------+ 4424 4425+------------------------------------------------------------------------+ 4426|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 4427+------------------------------------------------------------------------+ 4428 4429+-----------------------------------------------------------------------------------------------+ 4430|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`| 4431+-----------------------------------------------------------------------------------------------+ 4432 4433+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4434|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`| 4435+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4436 4437+---------------------------------------------------------------------------------------+ 4438|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`| 4439+---------------------------------------------------------------------------------------+ 4440 4441+----------------------------------------------------------------------------------------------------------------------------------------+ 4442|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`| 4443+----------------------------------------------------------------------------------------------------------------------------------------+ 4444 4445+-----------------------------------------------------------------------------------------------------------------+ 4446|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`| 4447+-----------------------------------------------------------------------------------------------------------------+ 4448 4449+------------------------------------------------------------------------------------------------------------------------------------------+ 4450|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`| 4451+------------------------------------------------------------------------------------------------------------------------------------------+ 4452 4453+-------------------------------------------------------------------------------------------------------------------+ 4454|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`| 4455+-------------------------------------------------------------------------------------------------------------------+ 4456 4457+----------------------------------------------------------------------------------------------------------------------------------+ 4458|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`| 4459+----------------------------------------------------------------------------------------------------------------------------------+ 4460 4461 4462-Wglobal-constructors 4463--------------------- 4464**Diagnostic text:** 4465 4466+--------------------------------------------------------------------------------+ 4467|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`| 4468+--------------------------------------------------------------------------------+ 4469 4470+-------------------------------------------------------------------------------+ 4471|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`| 4472+-------------------------------------------------------------------------------+ 4473 4474 4475-Wgnu 4476----- 4477Some of the diagnostics controlled by this flag are enabled by default. 4478 4479Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_. 4480 4481 4482-Wgnu-alignof-expression 4483------------------------ 4484This diagnostic is enabled by default. 4485 4486**Diagnostic text:** 4487 4488+----------------------------------------------------------------------------------------------------------+ 4489|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`| 4490+----------------------------------------------------------------------------------------------------------+ 4491 4492 4493-Wgnu-anonymous-struct 4494---------------------- 4495**Diagnostic text:** 4496 4497+----------------------------------------------------------------------------+ 4498|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`| 4499+----------------------------------------------------------------------------+ 4500 4501 4502-Wgnu-array-member-paren-init 4503----------------------------- 4504This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error. 4505 4506**Diagnostic text:** 4507 4508+----------------------------------------------------------------------------------------------------+ 4509|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`| 4510+----------------------------------------------------------------------------------------------------+ 4511 4512 4513-Wgnu-auto-type 4514--------------- 4515**Diagnostic text:** 4516 4517+--------------------------------------------------------------------------+ 4518|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`| 4519+--------------------------------------------------------------------------+ 4520 4521 4522-Wgnu-binary-literal 4523-------------------- 4524**Diagnostic text:** 4525 4526+----------------------------------------------------------------------------------+ 4527|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`| 4528+----------------------------------------------------------------------------------+ 4529 4530 4531-Wgnu-case-range 4532---------------- 4533**Diagnostic text:** 4534 4535+----------------------------------------------------------------------+ 4536|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`| 4537+----------------------------------------------------------------------+ 4538 4539 4540-Wgnu-complex-integer 4541--------------------- 4542**Diagnostic text:** 4543 4544+--------------------------------------------------------------------------------+ 4545|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`| 4546+--------------------------------------------------------------------------------+ 4547 4548 4549-Wgnu-compound-literal-initializer 4550---------------------------------- 4551**Diagnostic text:** 4552 4553+--------------------------------------------------------------------------------------------------------------------------------------------------+ 4554|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`| 4555+--------------------------------------------------------------------------------------------------------------------------------------------------+ 4556 4557 4558-Wgnu-conditional-omitted-operand 4559--------------------------------- 4560**Diagnostic text:** 4561 4562+--------------------------------------------------------------------------------------------------------------+ 4563|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`| 4564+--------------------------------------------------------------------------------------------------------------+ 4565 4566 4567-Wgnu-designator 4568---------------- 4569Some of the diagnostics controlled by this flag are enabled by default. 4570 4571**Diagnostic text:** 4572 4573+-----------------------------------------------------------------------+ 4574|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 4575+-----------------------------------------------------------------------+ 4576 4577+-------------------------------------------------------------------------------------+ 4578|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`| 4579+-------------------------------------------------------------------------------------+ 4580 4581+--------------------------------------------------------------------------------------+ 4582|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`| 4583+--------------------------------------------------------------------------------------+ 4584 4585 4586-Wgnu-empty-initializer 4587----------------------- 4588**Diagnostic text:** 4589 4590+-----------------------------------------------------------------------------+ 4591|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`| 4592+-----------------------------------------------------------------------------+ 4593 4594 4595-Wgnu-empty-struct 4596------------------ 4597**Diagnostic text:** 4598 4599+----------------------------------------------------+--------------------+--------------------------------------+ 4600|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`| 4601| ||:diagtext:`struct`|| | 4602| |+------------------+| | 4603| ||:diagtext:`union` || | 4604| |+------------------+| | 4605+----------------------------------------------------+--------------------+--------------------------------------+ 4606 4607+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 4608|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`| 4609| ||:diagtext:`struct` || | 4610| |+---------------------+| | 4611| ||:diagtext:`interface`|| | 4612| |+---------------------+| | 4613| ||:diagtext:`union` || | 4614| |+---------------------+| | 4615| ||:diagtext:`class` || | 4616| |+---------------------+| | 4617| ||:diagtext:`enum` || | 4618| |+---------------------+| | 4619+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 4620 4621+---------------------------+--------------------+------------------------------------------------------------+ 4622|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`| 4623| ||:diagtext:`struct`|| | 4624| |+------------------+| | 4625| ||:diagtext:`union` || | 4626| |+------------------+| | 4627+---------------------------+--------------------+------------------------------------------------------------+ 4628 4629 4630-Wgnu-flexible-array-initializer 4631-------------------------------- 4632**Diagnostic text:** 4633 4634+---------------------------------------------------------------------------------------+ 4635|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`| 4636+---------------------------------------------------------------------------------------+ 4637 4638 4639-Wgnu-flexible-array-union-member 4640--------------------------------- 4641**Diagnostic text:** 4642 4643+-------------------------------------------------------------------------------------------------------------------------------------+ 4644|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`| 4645+-------------------------------------------------------------------------------------------------------------------------------------+ 4646 4647 4648-Wgnu-folding-constant 4649---------------------- 4650**Diagnostic text:** 4651 4652+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 4653|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`| 4654| ||:diagtext:`integer` || | 4655| |+--------------------+| | 4656| ||:diagtext:`integral`|| | 4657| |+--------------------+| | 4658+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 4659 4660+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4661|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`| 4662+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4663 4664+-----------------------------------------------------------------------------------------------------+ 4665|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`| 4666+-----------------------------------------------------------------------------------------------------+ 4667 4668 4669-Wgnu-imaginary-constant 4670------------------------ 4671**Diagnostic text:** 4672 4673+------------------------------------------------------------------------------+ 4674|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`| 4675+------------------------------------------------------------------------------+ 4676 4677 4678-Wgnu-include-next 4679------------------ 4680**Diagnostic text:** 4681 4682+-----------------------------------------------------------------------------+ 4683|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`| 4684+-----------------------------------------------------------------------------+ 4685 4686 4687-Wgnu-label-as-value 4688-------------------- 4689**Diagnostic text:** 4690 4691+----------------------------------------------------------------------------+ 4692|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`| 4693+----------------------------------------------------------------------------+ 4694 4695+-------------------------------------------------------------------------+ 4696|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`| 4697+-------------------------------------------------------------------------+ 4698 4699 4700-Wgnu-redeclared-enum 4701--------------------- 4702**Diagnostic text:** 4703 4704+------------------------------------------------------------------------------------------------------------------------------------------+ 4705|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 4706+------------------------------------------------------------------------------------------------------------------------------------------+ 4707 4708 4709-Wgnu-statement-expression 4710-------------------------- 4711**Diagnostic text:** 4712 4713+--------------------------------------------------------------------------------+ 4714|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`| 4715+--------------------------------------------------------------------------------+ 4716 4717 4718-Wgnu-static-float-init 4719----------------------- 4720This diagnostic is enabled by default. 4721 4722**Diagnostic text:** 4723 4724+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4725|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 4726+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4727 4728 4729-Wgnu-string-literal-operator-template 4730-------------------------------------- 4731This diagnostic is enabled by default. 4732 4733**Diagnostic text:** 4734 4735+--------------------------------------------------------------------------------------------+ 4736|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`| 4737+--------------------------------------------------------------------------------------------+ 4738 4739 4740-Wgnu-union-cast 4741---------------- 4742**Diagnostic text:** 4743 4744+----------------------------------------------------------------------------+ 4745|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`| 4746+----------------------------------------------------------------------------+ 4747 4748 4749-Wgnu-variable-sized-type-not-at-end 4750------------------------------------ 4751This diagnostic is enabled by default. 4752 4753**Diagnostic text:** 4754 4755+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4756|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`| 4757+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4758 4759 4760-Wgnu-zero-line-directive 4761------------------------- 4762**Diagnostic text:** 4763 4764+--------------------------------------------------------------------------------------------+ 4765|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`| 4766+--------------------------------------------------------------------------------------------+ 4767 4768 4769-Wgnu-zero-variadic-macro-arguments 4770----------------------------------- 4771**Diagnostic text:** 4772 4773+---------------------------------------------------------------------------------------------------------------+ 4774|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`| 4775+---------------------------------------------------------------------------------------------------------------+ 4776 4777+---------------------------------------------------------------------------------------------------+ 4778|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`| 4779+---------------------------------------------------------------------------------------------------+ 4780 4781 4782-Wheader-guard 4783-------------- 4784This diagnostic is enabled by default. 4785 4786**Diagnostic text:** 4787 4788+---------------------------------------------------------------------------------------------------------------------------------------+ 4789|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`| 4790+---------------------------------------------------------------------------------------------------------------------------------------+ 4791 4792 4793-Wheader-hygiene 4794---------------- 4795**Diagnostic text:** 4796 4797+--------------------------------------------------------------------------------------------+ 4798|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`| 4799+--------------------------------------------------------------------------------------------+ 4800 4801 4802-Widiomatic-parentheses 4803----------------------- 4804**Diagnostic text:** 4805 4806+-----------------------------------------------------------------------------------------------------------+ 4807|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 4808+-----------------------------------------------------------------------------------------------------------+ 4809 4810 4811-Wignored-attributes 4812-------------------- 4813This diagnostic is enabled by default. 4814 4815**Diagnostic text:** 4816 4817+--------------------------------------------------------------------------------------------------+ 4818|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`| 4819+--------------------------------------------------------------------------------------------------+ 4820 4821+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4822|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`| 4823| ||:diagtext:`alias`|| | 4824| |+-----------------+| | 4825| ||:diagtext:`ifunc`|| | 4826| |+-----------------+| | 4827+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4828 4829+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 4830|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+| 4831| ||:diagtext:`alias`|| ||:diagtext:`aliasee` || 4832| |+-----------------+| |+--------------------+| 4833| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`|| 4834| |+-----------------+| |+--------------------+| 4835+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 4836 4837+----------------------------------------------------------------------+------------------------+-------------------------------------+ 4838|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`| 4839| ||:diagtext:`non-inline`|| | 4840| |+----------------------+| | 4841| ||:diagtext:`anonymous` || | 4842| |+----------------------+| | 4843+----------------------------------------------------------------------+------------------------+-------------------------------------+ 4844 4845+-----------------------------------------------------------------------------------------------------------------------+ 4846|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`| 4847+-----------------------------------------------------------------------------------------------------------------------+ 4848 4849+--------------------------------------------------------------------------------------------------------------------------------+ 4850|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`| 4851+--------------------------------------------------------------------------------------------------------------------------------+ 4852 4853+--------------------------------------------------------------------------------+ 4854|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`| 4855+--------------------------------------------------------------------------------+ 4856 4857+--------------------------------------------------------------------------------------------------------------------------+ 4858|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`| 4859+--------------------------------------------------------------------------------------------------------------------------+ 4860 4861+---------------------------------------------------------------------------------------------------+ 4862|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`| 4863+---------------------------------------------------------------------------------------------------+ 4864 4865+-------------------------------------------------------------------------------------------------------------------+ 4866|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`| 4867+-------------------------------------------------------------------------------------------------------------------+ 4868 4869+------------------------------------------------------------------------------------------------------------------------------------------------+ 4870|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`| 4871+------------------------------------------------------------------------------------------------------------------------------------------------+ 4872 4873+--------------------------------------------------------------------------------------------------------+ 4874|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`| 4875+--------------------------------------------------------------------------------------------------------+ 4876 4877+-----------------------------------------------------------------------------------------------------+ 4878|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`| 4879+-----------------------------------------------------------------------------------------------------+ 4880 4881+--------------------------------------------------------------------------------------------------+ 4882|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`| 4883+--------------------------------------------------------------------------------------------------+ 4884 4885+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4886|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`| 4887+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4888 4889+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 4890|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`| 4891| || || | 4892| |+----------------------------+| | 4893| || |nbsp| :diagtext:`constant`|| | 4894| |+----------------------------+| | 4895+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 4896 4897+------------------------------------------------------------------------------------+ 4898|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`| 4899+------------------------------------------------------------------------------------+ 4900 4901+------------------------------------------------------------------------------------------------------------------------+ 4902|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`| 4903+------------------------------------------------------------------------------------------------------------------------+ 4904 4905+--------------------------------------------------------------------------------------------------------------------------------------+ 4906|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`| 4907+--------------------------------------------------------------------------------------------------------------------------------------+ 4908 4909+------------------------------------------------------------------------------------+ 4910|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`| 4911+------------------------------------------------------------------------------------+ 4912 4913+-----------------------------------------------------------------------------------------------+-----------------------+ 4914|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+| 4915| ||:diagtext:`functions`|| 4916| |+---------------------+| 4917| ||:diagtext:`blocks` || 4918| |+---------------------+| 4919+-----------------------------------------------------------------------------------------------+-----------------------+ 4920 4921+------------------------------------------------------------------------------------------------------------------------+ 4922|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`| 4923+------------------------------------------------------------------------------------------------------------------------+ 4924 4925+---------------------------------------------------------------------------------+ 4926|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`| 4927+---------------------------------------------------------------------------------+ 4928 4929+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 4930|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`| 4931| ||:diagtext:`functions` || | 4932| |+------------------------------+| | 4933| ||:diagtext:`Objective-C method`|| | 4934| |+------------------------------+| | 4935+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 4936 4937+----------------------------------------------------------------------------------------------------+ 4938|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`| 4939+----------------------------------------------------------------------------------------------------+ 4940 4941+------------------------------------------------------------------------------------------------------------------------------+ 4942|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`| 4943+------------------------------------------------------------------------------------------------------------------------------+ 4944 4945+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 4946|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| 4947| ||:diagtext:`functions` || 4948| |+-------------------------------------------------+| 4949| ||:diagtext:`unions` || 4950| |+-------------------------------------------------+| 4951| ||:diagtext:`variables and functions` || 4952| |+-------------------------------------------------+| 4953| ||:diagtext:`functions and methods` || 4954| |+-------------------------------------------------+| 4955| ||:diagtext:`functions, methods and blocks` || 4956| |+-------------------------------------------------+| 4957| ||:diagtext:`functions, methods, and parameters` || 4958| |+-------------------------------------------------+| 4959| ||:diagtext:`variables` || 4960| |+-------------------------------------------------+| 4961| ||:diagtext:`variables and fields` || 4962| |+-------------------------------------------------+| 4963| ||:diagtext:`variables, data members and tag types`|| 4964| |+-------------------------------------------------+| 4965| ||:diagtext:`types and namespaces` || 4966| |+-------------------------------------------------+| 4967| ||:diagtext:`variables, functions and classes` || 4968| |+-------------------------------------------------+| 4969| ||:diagtext:`kernel functions` || 4970| |+-------------------------------------------------+| 4971| ||:diagtext:`non-K&R-style functions` || 4972| |+-------------------------------------------------+| 4973+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 4974 4975+----------------------------------------------------------------------------------------------------------------+ 4976|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`| 4977+----------------------------------------------------------------------------------------------------------------+ 4978 4979+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4980|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`| 4981+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4982 4983+----------------------------------------------------------------------------------------------------------------------------+ 4984|:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`| 4985+----------------------------------------------------------------------------------------------------------------------------+ 4986 4987+-------------------------------------------------------------------------------------------------------------------+ 4988|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`| 4989+-------------------------------------------------------------------------------------------------------------------+ 4990 4991+--------------------------------------------------------------------------------------------------------------+ 4992|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`| 4993+--------------------------------------------------------------------------------------------------------------+ 4994 4995+-------------------------------------------------------------------------------------------------------------------------------------------+ 4996|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`| 4997+-------------------------------------------------------------------------------------------------------------------------------------------+ 4998 4999+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5000|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`| 5001| ||:diagtext:`class` || | 5002| |+---------------------+| | 5003| ||:diagtext:`struct` || | 5004| |+---------------------+| | 5005| ||:diagtext:`interface`|| | 5006| |+---------------------+| | 5007| ||:diagtext:`union` || | 5008| |+---------------------+| | 5009| ||:diagtext:`enum` || | 5010| |+---------------------+| | 5011+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5012 5013+--------------------------------------------------------------------------------------------+ 5014|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`| 5015+--------------------------------------------------------------------------------------------+ 5016 5017+----------------------------------------------------------------------------------------------------------------------------------------------+ 5018|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`| 5019+----------------------------------------------------------------------------------------------------------------------------------------------+ 5020 5021+----------------------------------------------------------------------------------------------------------------------------------------+ 5022|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`| 5023+----------------------------------------------------------------------------------------------------------------------------------------+ 5024 5025+--------------------------------------------------------------------------------------------------------------+ 5026|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`| 5027+--------------------------------------------------------------------------------------------------------------+ 5028 5029+------------------------------------------------------------------------------------------------+ 5030|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`| 5031+------------------------------------------------------------------------------------------------+ 5032 5033+-------------------------------------------------------------------------------------------------------------------------+ 5034|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`| 5035+-------------------------------------------------------------------------------------------------------------------------+ 5036 5037+---------------------------------------------------------------------------+------------------------------------+ 5038|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+| 5039| ||:diagtext:`primary template` || 5040| |+----------------------------------+| 5041| ||:diagtext:`partial specialization`|| 5042| |+----------------------------------+| 5043+---------------------------------------------------------------------------+------------------------------------+ 5044 5045+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5046|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+| 5047| ||:diagtext:`of retainable type` || 5048| |+---------------------------------+| 5049| ||:diagtext:`with strong ownership`|| 5050| |+---------------------------------+| 5051+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5052 5053+--------------------------------------------------------------------------------------------------------------+ 5054|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`| 5055+--------------------------------------------------------------------------------------------------------------+ 5056 5057+--------------------------------------------------------------------------------------------+ 5058|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`| 5059+--------------------------------------------------------------------------------------------+ 5060 5061+-------------------------------------------------------------------------------------------------------------+----------------------------------+ 5062|:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| 5063| ||:diagtext:`no parameters` || 5064| |+--------------------------------+| 5065| ||:diagtext:`a 'void' return type`|| 5066| |+--------------------------------+| 5067+-------------------------------------------------------------------------------------------------------------+----------------------------------+ 5068 5069+---------------------------------------------------------------------------------------+ 5070|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`| 5071+---------------------------------------------------------------------------------------+ 5072 5073+---------------------------------------------------------------------------------------------------------------+----------------------------------+ 5074|:warning:`warning:` |nbsp| :diagtext:`MSP430 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| 5075| ||:diagtext:`no parameters` || 5076| |+--------------------------------+| 5077| ||:diagtext:`a 'void' return type`|| 5078| |+--------------------------------+| 5079+---------------------------------------------------------------------------------------------------------------+----------------------------------+ 5080 5081+-------------------------------------------------------------------------------------------------------------------+ 5082|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`| 5083+-------------------------------------------------------------------------------------------------------------------+ 5084 5085+---------------------------------------------------------------------------------------------+ 5086|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`| 5087+---------------------------------------------------------------------------------------------+ 5088 5089+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5090|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`| 5091| ||:diagtext:`Objective-C object` || | 5092| |+-------------------------------------------------+| | 5093| ||:diagtext:`pointer` || | 5094| |+-------------------------------------------------+| | 5095| ||:diagtext:`pointer-to-CF-pointer` || | 5096| |+-------------------------------------------------+| | 5097| ||:diagtext:`pointer/reference-to-OSObject-pointer`|| | 5098| |+-------------------------------------------------+| | 5099+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5100 5101+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5102|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+| 5103| ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` || 5104| |+----------------------+| |+------------------------------------+| 5105| ||:diagtext:`methods` || ||:diagtext:`a pointer` || 5106| |+----------------------+| |+------------------------------------+| 5107| ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`|| 5108| |+----------------------+| |+------------------------------------+| 5109+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5110 5111+--------------------------------------------------------------------------------------------------------------------------------------------+ 5112|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`| 5113+--------------------------------------------------------------------------------------------------------------------------------------------+ 5114 5115+---------------------------------------------------------------------------------------------------------------+----------------------------------+ 5116|:warning:`warning:` |nbsp| :diagtext:`RISC-V 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| 5117| ||:diagtext:`no parameters` || 5118| |+--------------------------------+| 5119| ||:diagtext:`a 'void' return type`|| 5120| |+--------------------------------+| 5121+---------------------------------------------------------------------------------------------------------------+----------------------------------+ 5122 5123+----------------------------------------------------------------------------+ 5124|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`| 5125+----------------------------------------------------------------------------+ 5126 5127+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5128|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`| 5129| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| | 5130| |+---------------------+| |+---------------------+| | 5131| ||:diagtext:`size` || ||:diagtext:`size` || | 5132| |+---------------------+| |+---------------------+| | 5133+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5134 5135+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5136|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`| 5137| ||:diagtext:`floating point`|| | 5138| |+--------------------------+| | 5139| ||:diagtext:`vector` || | 5140| |+--------------------------+| | 5141+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5142 5143+--------------------------------------------------------------------------------------------------------------------------------+ 5144|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`| 5145+--------------------------------------------------------------------------------------------------------------------------------+ 5146 5147+-----------------------------------------------------------------------------------------------------------------------------------------+ 5148|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`| 5149+-----------------------------------------------------------------------------------------------------------------------------------------+ 5150 5151+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 5152|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`| 5153| ||:diagtext:`function` || | 5154| |+-----------------------------------------------+| | 5155| ||:diagtext:`pointer` || | 5156| |+-----------------------------------------------+| | 5157| ||:diagtext:`Objective-C object or block pointer`|| | 5158| |+-----------------------------------------------+| | 5159+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 5160 5161+-------------------------------------------------------------------------------------------------------------------------+ 5162|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`| 5163+-------------------------------------------------------------------------------------------------------------------------+ 5164 5165+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 5166|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`| 5167| ||:diagtext:`unsupported`||| || | 5168| |+-----------------------+|+--------------------------------+| | 5169| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| | 5170| |+-----------------------+|+--------------------------------+| | 5171+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 5172 5173+----------------------------------------------------------------------------------------------------------------------------------------------------+ 5174|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`| 5175+----------------------------------------------------------------------------------------------------------------------------------------------------+ 5176 5177 5178-Wignored-optimization-argument 5179------------------------------- 5180This diagnostic is enabled by default. 5181 5182**Diagnostic text:** 5183 5184+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5185|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 5186+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5187 5188+--------------------------------------------------------------------------------------------------------+ 5189|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`| 5190+--------------------------------------------------------------------------------------------------------+ 5191 5192 5193-Wignored-pragma-intrinsic 5194-------------------------- 5195This diagnostic is enabled by default. 5196 5197**Diagnostic text:** 5198 5199+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 5200|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+| 5201| || || 5202| |+----------------------------------------------------------------------------+| 5203| ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`|| 5204| |+----------------------------------------------------------------------------+| 5205+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 5206 5207 5208-Wignored-pragma-optimize 5209------------------------- 5210This diagnostic is enabled by default. 5211 5212**Diagnostic text:** 5213 5214+--------------------------------------------------------------------------+ 5215|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`| 5216+--------------------------------------------------------------------------+ 5217 5218 5219-Wignored-pragmas 5220----------------- 5221This diagnostic is enabled by default. 5222 5223Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_. 5224 5225**Diagnostic text:** 5226 5227+------------------------------------------------------------------------------+---------------------------+-----------------------+ 5228|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 5229| ||:diagtext:`align` || | 5230| |+-------------------------+| | 5231| ||:diagtext:`options align`|| | 5232| |+-------------------------+| | 5233+------------------------------------------------------------------------------+---------------------------+-----------------------+ 5234 5235+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 5236|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 5237| ||:diagtext:`align` || | 5238| |+-------------------------+| | 5239| ||:diagtext:`options align`|| | 5240| |+-------------------------+| | 5241+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 5242 5243+-----------------------------------------------------------------------------------------------------------+ 5244|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`| 5245+-----------------------------------------------------------------------------------------------------------+ 5246 5247+----------------------------------------------------------------------------------------------------+ 5248|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`| 5249+----------------------------------------------------------------------------------------------------+ 5250 5251+-------------------------------------------------------------------------------------------------------+ 5252|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`| 5253+-------------------------------------------------------------------------------------------------------+ 5254 5255+----------------------------------------------------------------------------------------------+ 5256|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`| 5257+----------------------------------------------------------------------------------------------+ 5258 5259+------------------------------------------------------------------------------------------------------------------------+ 5260|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5261+------------------------------------------------------------------------------------------------------------------------+ 5262 5263+--------------------------------------------------------------------------------------------------------------+ 5264|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5265+--------------------------------------------------------------------------------------------------------------+ 5266 5267+---------------------------------------------------------------------------------------------------------------------+ 5268|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5269+---------------------------------------------------------------------------------------------------------------------+ 5270 5271+----------------------------------------------------------------------------------------------------+ 5272|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5273+----------------------------------------------------------------------------------------------------+ 5274 5275+---------------------------------------------------------------------------------------------------------------------+ 5276|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5277+---------------------------------------------------------------------------------------------------------------------+ 5278 5279+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5280|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5281+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5282 5283+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5284|:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`| 5285+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5286 5287+-----------------------------------------------------------------------------------------------------------------+ 5288|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5289+-----------------------------------------------------------------------------------------------------------------+ 5290 5291+------------------------------------------------------------------------------------------------------------------------+ 5292|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5293+------------------------------------------------------------------------------------------------------------------------+ 5294 5295+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 5296|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`| 5297| ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| | 5298| |+-------------------------------------------------+| | 5299| ||:diagtext:`'disable'` || | 5300| |+-------------------------------------------------+| | 5301+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 5302 5303+-----------------------------------------------------------------------------------------------------------+ 5304|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5305+-----------------------------------------------------------------------------------------------------------+ 5306 5307+-----------------------------------------------------------------------------------------------------------------+ 5308|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5309+-----------------------------------------------------------------------------------------------------------------+ 5310 5311+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5312|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5313+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5314 5315+------------------------------------------------------------------------------------------------------------------------------------------------+ 5316|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5317+------------------------------------------------------------------------------------------------------------------------------------------------+ 5318 5319+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5320|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5321+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5322 5323+--------------------------------------------------------------------------------------------------------------------------+ 5324|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5325+--------------------------------------------------------------------------------------------------------------------------+ 5326 5327+---------------------------------------------------------------------------------------------------------------------+ 5328|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5329+---------------------------------------------------------------------------------------------------------------------+ 5330 5331+----------------------------------------------------------------------------------------------------------+ 5332|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`| 5333+----------------------------------------------------------------------------------------------------------+ 5334 5335+-------------------------------------------------------------------------------------------------------------------+ 5336|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`| 5337+-------------------------------------------------------------------------------------------------------------------+ 5338 5339+-----------------------------------------------------------------------------------------------------------------+ 5340|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5341+-----------------------------------------------------------------------------------------------------------------+ 5342 5343+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5344|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+| 5345| || || 5346| |+------------------------------------------------+| 5347| ||+----------------------------------------------+|| 5348| |||:diagtext:`; expected` |nbsp| :placeholder:`D`||| 5349| ||+----------------------------------------------+|| 5350| |+------------------------------------------------+| 5351+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5352 5353+------------------------------------------------------------------------------------------------------------------------------------------------+ 5354|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5355+------------------------------------------------------------------------------------------------------------------------------------------------+ 5356 5357+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5358|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+| 5359| || || 5360| |+------------------------------------------------+| 5361| ||+----------------------------------------------+|| 5362| |||:diagtext:`; expected` |nbsp| :placeholder:`C`||| 5363| ||+----------------------------------------------+|| 5364| |+------------------------------------------------+| 5365+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5366 5367+----------------------------------------------------------------------------------------------+ 5368|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`| 5369+----------------------------------------------------------------------------------------------+ 5370 5371+--------------------------------------------------------------------------------------------------+ 5372|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`| 5373+--------------------------------------------------------------------------------------------------+ 5374 5375+---------------------------------------------------------------------------------------------+ 5376|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`| 5377+---------------------------------------------------------------------------------------------+ 5378 5379+--------------------------------------------------------------------------------------------------------+ 5380|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`| 5381+--------------------------------------------------------------------------------------------------------+ 5382 5383+-------------------------------------------------------------------------------------------------+ 5384|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`| 5385+-------------------------------------------------------------------------------------------------+ 5386 5387+----------------------------------------------------------------------------------------------------------------------------+ 5388|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`| 5389+----------------------------------------------------------------------------------------------------------------------------+ 5390 5391+------------------------------------------------------------------------------------------------------------------------------+ 5392|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`| 5393+------------------------------------------------------------------------------------------------------------------------------+ 5394 5395+---------------------------------------------------------------------------------------------------------------------+ 5396|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5397+---------------------------------------------------------------------------------------------------------------------+ 5398 5399+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5400|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5401+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5402 5403+-------------------------------------------------------------------------------------------------------------------------+ 5404|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5405+-------------------------------------------------------------------------------------------------------------------------+ 5406 5407+-----------------------------------------------------------------------------------------------+ 5408|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`| 5409+-----------------------------------------------------------------------------------------------+ 5410 5411+------------------------------------------------------------------------------------------+ 5412|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`| 5413+------------------------------------------------------------------------------------------+ 5414 5415+----------------------------------------------------------------------------------------------------------------------------------------------+ 5416|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`| 5417+----------------------------------------------------------------------------------------------------------------------------------------------+ 5418 5419 5420-Wignored-qualifiers 5421-------------------- 5422Some of the diagnostics controlled by this flag are enabled by default. 5423 5424**Diagnostic text:** 5425 5426+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 5427|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`| 5428| ||:diagtext:`unused` || | 5429| |+----------------------------------+| | 5430| ||:diagtext:`\_\_unsafe\_unretained`|| | 5431| |+----------------------------------+| | 5432| ||:diagtext:`\_\_strong` || | 5433| |+----------------------------------+| | 5434| ||:diagtext:`\_\_weak` || | 5435| |+----------------------------------+| | 5436| ||:diagtext:`\_\_autoreleasing` || | 5437| |+----------------------------------+| | 5438+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 5439 5440+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5441|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5442+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5443 5444+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 5445|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`| 5446| || || ||:diagtext:`has` || | 5447| |+-------------+| |+----------------+| | 5448| ||:diagtext:`s`|| ||:diagtext:`have`|| | 5449| |+-------------+| |+----------------+| | 5450+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 5451 5452+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5453|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5454+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5455 5456+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5457|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5458+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5459 5460 5461-Wimplicit 5462---------- 5463Some of the diagnostics controlled by this flag are enabled by default. 5464 5465Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_. 5466 5467 5468-Wimplicit-atomic-properties 5469---------------------------- 5470**Diagnostic text:** 5471 5472+-----------------------------------------------------------------------------------------------------+ 5473|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`| 5474+-----------------------------------------------------------------------------------------------------+ 5475 5476+----------------------------------------------------------------------------+ 5477|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`| 5478+----------------------------------------------------------------------------+ 5479 5480 5481-Wimplicit-conversion-floating-point-to-bool 5482-------------------------------------------- 5483This diagnostic is enabled by default. 5484 5485**Diagnostic text:** 5486 5487+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5488|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5489+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5490 5491 5492-Wimplicit-exception-spec-mismatch 5493---------------------------------- 5494This diagnostic is enabled by default. 5495 5496**Diagnostic text:** 5497 5498+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 5499|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`| 5500| ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| | 5501| |+--------------------+| |+--------------------+| | 5502| ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| | 5503| |+--------------------+| |+--------------------+| | 5504+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 5505 5506 5507-Wimplicit-fallthrough 5508---------------------- 5509Also controls `-Wimplicit-fallthrough-per-function`_. 5510 5511**Diagnostic text:** 5512 5513+---------------------------------------------------------------------------------+ 5514|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`| 5515+---------------------------------------------------------------------------------+ 5516 5517+-------------------------------------------------------------------------------------+ 5518|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`| 5519+-------------------------------------------------------------------------------------+ 5520 5521 5522-Wimplicit-fallthrough-per-function 5523----------------------------------- 5524**Diagnostic text:** 5525 5526+------------------------------------------------------------------------------------------------------------------+ 5527|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`| 5528+------------------------------------------------------------------------------------------------------------------+ 5529 5530 5531-Wimplicit-float-conversion 5532--------------------------- 5533**Diagnostic text:** 5534 5535+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5536|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5537+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5538 5539+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5540|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5541+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5542 5543 5544-Wimplicit-function-declaration 5545------------------------------- 5546Some of the diagnostics controlled by this flag are enabled by default. 5547 5548**Diagnostic text:** 5549 5550+------------------------------------------------------------------------------------------------------------------------------------+ 5551|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`| 5552+------------------------------------------------------------------------------------------------------------------------------------+ 5553 5554+---------------------------------------------------------------------------------------------------------------------------------------------+ 5555|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`| 5556+---------------------------------------------------------------------------------------------------------------------------------------------+ 5557 5558+---------------------------------------------------------------------------------+ 5559|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`| 5560+---------------------------------------------------------------------------------+ 5561 5562+-----------------------------------------------------------------------------------------------+ 5563|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`| 5564+-----------------------------------------------------------------------------------------------+ 5565 5566 5567-Wimplicit-int 5568-------------- 5569This diagnostic is enabled by default. 5570 5571**Diagnostic text:** 5572 5573+--------------------------------------------------------------------------------+ 5574|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`| 5575+--------------------------------------------------------------------------------+ 5576 5577 5578-Wimplicit-int-conversion 5579------------------------- 5580**Diagnostic text:** 5581 5582+---------------------------------------------------------------------------------------------+ 5583|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`| 5584+---------------------------------------------------------------------------------------------+ 5585 5586+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5587|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5588+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5589 5590 5591-Wimplicit-retain-self 5592---------------------- 5593**Diagnostic text:** 5594 5595+---------------------------------------------------------------------------------------------------------------------------------------+ 5596|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`| 5597+---------------------------------------------------------------------------------------------------------------------------------------+ 5598 5599 5600-Wimplicitly-unsigned-literal 5601----------------------------- 5602This diagnostic is enabled by default. 5603 5604**Diagnostic text:** 5605 5606+----------------------------------------------------------------------------------------------------------------------------------------+ 5607|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`| 5608+----------------------------------------------------------------------------------------------------------------------------------------+ 5609 5610 5611-Wimport 5612-------- 5613This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5614 5615-Wimport-preprocessor-directive-pedantic 5616---------------------------------------- 5617**Diagnostic text:** 5618 5619+----------------------------------------------------------------------+ 5620|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`| 5621+----------------------------------------------------------------------+ 5622 5623 5624-Winaccessible-base 5625------------------- 5626This diagnostic is enabled by default. 5627 5628**Diagnostic text:** 5629 5630+-----------------------------------------------------------------------------------------------------------------------------------------------+ 5631|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`| 5632+-----------------------------------------------------------------------------------------------------------------------------------------------+ 5633 5634 5635-Winclude-next-absolute-path 5636---------------------------- 5637This diagnostic is enabled by default. 5638 5639**Diagnostic text:** 5640 5641+------------------------------------------------------------------------+ 5642|:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`| 5643+------------------------------------------------------------------------+ 5644 5645 5646-Winclude-next-outside-header 5647----------------------------- 5648This diagnostic is enabled by default. 5649 5650**Diagnostic text:** 5651 5652+----------------------------------------------------------------------------+ 5653|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`| 5654+----------------------------------------------------------------------------+ 5655 5656 5657-Wincompatible-exception-spec 5658----------------------------- 5659This diagnostic is enabled by default. 5660 5661**Diagnostic text:** 5662 5663+--------------------------------------------------------------------------+----------------------+--------------------------------+ 5664|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`| 5665| ||:diagtext:`return` || | 5666| |+--------------------+| | 5667| ||:diagtext:`argument`|| | 5668| |+--------------------+| | 5669+--------------------------------------------------------------------------+----------------------+--------------------------------+ 5670 5671+-----------------------------------------------------------------------------------------------+ 5672|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`| 5673+-----------------------------------------------------------------------------------------------+ 5674 5675 5676-Wincompatible-function-pointer-types 5677------------------------------------- 5678This diagnostic is enabled by default. 5679 5680**Diagnostic text:** 5681 5682+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5683|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 5684| ||:diagtext:`assigning to different types` ||| || 5685| |+--------------------------------------------------------------+|+-------------------------------------+| 5686| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 5687| |+--------------------------------------------------------------+|+-------------------------------------+| 5688| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 5689| |+--------------------------------------------------------------+|+-------------------------------------+| 5690| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 5691| |+--------------------------------------------------------------+|+-------------------------------------+| 5692| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 5693| |+--------------------------------------------------------------+|+-------------------------------------+| 5694| ||:diagtext:`sending to parameter of different type` || | 5695| |+--------------------------------------------------------------+| | 5696| ||:diagtext:`casting between types` || | 5697| |+--------------------------------------------------------------+| | 5698+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5699 5700 5701-Wincompatible-library-redeclaration 5702------------------------------------ 5703This diagnostic is enabled by default. 5704 5705**Diagnostic text:** 5706 5707+-------------------------------------------------------------------------------------------------------------+ 5708|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`| 5709+-------------------------------------------------------------------------------------------------------------+ 5710 5711 5712-Wincompatible-ms-struct 5713------------------------ 5714This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error. 5715 5716**Diagnostic text:** 5717 5718+---------------------------------------------------------------------------------------------------------------------------------------------+ 5719|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`| 5720+---------------------------------------------------------------------------------------------------------------------------------------------+ 5721 5722+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5723|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`| 5724+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5725 5726 5727-Wincompatible-pointer-types 5728---------------------------- 5729This diagnostic is enabled by default. 5730 5731Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_. 5732 5733**Diagnostic text:** 5734 5735+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5736|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 5737| ||:diagtext:`assigning to different types` ||| || 5738| |+--------------------------------------------------------------+|+-------------------------------------+| 5739| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 5740| |+--------------------------------------------------------------+|+-------------------------------------+| 5741| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 5742| |+--------------------------------------------------------------+|+-------------------------------------+| 5743| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 5744| |+--------------------------------------------------------------+|+-------------------------------------+| 5745| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 5746| |+--------------------------------------------------------------+|+-------------------------------------+| 5747| ||:diagtext:`sending to parameter of different type` || | 5748| |+--------------------------------------------------------------+| | 5749| ||:diagtext:`casting between types` || | 5750| |+--------------------------------------------------------------+| | 5751+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5752 5753 5754-Wincompatible-pointer-types-discards-qualifiers 5755------------------------------------------------ 5756This diagnostic is enabled by default. 5757 5758**Diagnostic text:** 5759 5760+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 5761|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`| 5762| ||:diagtext:`assigning to different types` || | 5763| |+--------------------------------------------------------------+| | 5764| ||:diagtext:`passing to parameter of different type` || | 5765| |+--------------------------------------------------------------+| | 5766| ||:diagtext:`returning from function with different return type`|| | 5767| |+--------------------------------------------------------------+| | 5768| ||:diagtext:`converting between types` || | 5769| |+--------------------------------------------------------------+| | 5770| ||:diagtext:`initializing with expression of different type` || | 5771| |+--------------------------------------------------------------+| | 5772| ||:diagtext:`sending to parameter of different type` || | 5773| |+--------------------------------------------------------------+| | 5774| ||:diagtext:`casting between types` || | 5775| |+--------------------------------------------------------------+| | 5776+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 5777 5778+---------------------------+----------------------------------------------------------------+---------------------------------------+ 5779|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`| 5780| ||:diagtext:`assigning to different types` || | 5781| |+--------------------------------------------------------------+| | 5782| ||:diagtext:`passing to parameter of different type` || | 5783| |+--------------------------------------------------------------+| | 5784| ||:diagtext:`returning from function with different return type`|| | 5785| |+--------------------------------------------------------------+| | 5786| ||:diagtext:`converting between types` || | 5787| |+--------------------------------------------------------------+| | 5788| ||:diagtext:`initializing with expression of different type` || | 5789| |+--------------------------------------------------------------+| | 5790| ||:diagtext:`sending to parameter of different type` || | 5791| |+--------------------------------------------------------------+| | 5792| ||:diagtext:`casting between types` || | 5793| |+--------------------------------------------------------------+| | 5794+---------------------------+----------------------------------------------------------------+---------------------------------------+ 5795 5796 5797-Wincompatible-property-type 5798---------------------------- 5799This diagnostic is enabled by default. 5800 5801**Diagnostic text:** 5802 5803+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5804|:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`| 5805+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5806 5807 5808-Wincompatible-sysroot 5809---------------------- 5810This diagnostic is enabled by default. 5811 5812**Diagnostic text:** 5813 5814+------------------------------------------------------------------------------------------------------------------------------------+ 5815|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`| 5816+------------------------------------------------------------------------------------------------------------------------------------+ 5817 5818 5819-Wincomplete-framework-module-declaration 5820----------------------------------------- 5821This diagnostic is enabled by default. 5822 5823**Diagnostic text:** 5824 5825+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5826|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`| 5827+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5828 5829 5830-Wincomplete-implementation 5831--------------------------- 5832This diagnostic is enabled by default. 5833 5834**Diagnostic text:** 5835 5836+-----------------------------------------------------------------------------------------------------------------+ 5837|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 5838+-----------------------------------------------------------------------------------------------------------------+ 5839 5840 5841-Wincomplete-module 5842------------------- 5843Some of the diagnostics controlled by this flag are enabled by default. 5844 5845Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_. 5846 5847 5848-Wincomplete-umbrella 5849--------------------- 5850This diagnostic is enabled by default. 5851 5852**Diagnostic text:** 5853 5854+---------------------------------------------------------------------------------------+ 5855|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`| 5856+---------------------------------------------------------------------------------------+ 5857 5858+--------------------------------------------------------------------------------------------------+ 5859|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`| 5860+--------------------------------------------------------------------------------------------------+ 5861 5862+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 5863|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`| 5864+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 5865 5866 5867-Winconsistent-dllimport 5868------------------------ 5869This diagnostic is enabled by default. 5870 5871**Diagnostic text:** 5872 5873+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5874|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`| 5875+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5876 5877+------------------------------------------------------------------------------------------------------------------------------------+ 5878|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`| 5879+------------------------------------------------------------------------------------------------------------------------------------+ 5880 5881 5882-Winconsistent-missing-destructor-override 5883------------------------------------------ 5884**Diagnostic text:** 5885 5886+------------------------------------------------------------------------------------------------------------------+ 5887|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`| 5888+------------------------------------------------------------------------------------------------------------------+ 5889 5890 5891-Winconsistent-missing-override 5892------------------------------- 5893This diagnostic is enabled by default. 5894 5895**Diagnostic text:** 5896 5897+-----------------------------------------------------------------------------------------------------------------------+ 5898|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`| 5899+-----------------------------------------------------------------------------------------------------------------------+ 5900 5901 5902-Wincrement-bool 5903---------------- 5904This diagnostic is enabled by default. 5905 5906Also controls `-Wdeprecated-increment-bool`_. 5907 5908**Diagnostic text:** 5909 5910+------------------------------------------------------------------------------------------------+ 5911|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`| 5912+------------------------------------------------------------------------------------------------+ 5913 5914 5915-Winfinite-recursion 5916-------------------- 5917**Diagnostic text:** 5918 5919+---------------------------------------------------------------------------------------+ 5920|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`| 5921+---------------------------------------------------------------------------------------+ 5922 5923 5924-Winit-self 5925----------- 5926This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5927 5928-Winitializer-overrides 5929----------------------- 5930This diagnostic is enabled by default. 5931 5932**Diagnostic text:** 5933 5934+---------------------------------------------------------------------------------------------------+ 5935|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`| 5936+---------------------------------------------------------------------------------------------------+ 5937 5938+---------------------------------------------------------------------------------------------------------------------------------------+ 5939|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`| 5940+---------------------------------------------------------------------------------------------------------------------------------------+ 5941 5942 5943-Winjected-class-name 5944--------------------- 5945This diagnostic is enabled by default. 5946 5947**Diagnostic text:** 5948 5949+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 5950|:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`| 5951| ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| | 5952| |+-------------------------+| |+----------------------+| | 5953| ||:diagtext:`type` || ||:diagtext:`'template'`|| | 5954| |+-------------------------+| |+----------------------+| | 5955+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 5956 5957 5958-Winline 5959-------- 5960This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5961 5962-Winline-asm 5963------------ 5964This diagnostic is enabled by default. 5965 5966**Diagnostic text:** 5967 5968The text of this diagnostic is not controlled by Clang. 5969 5970 5971-Winline-new-delete 5972------------------- 5973This diagnostic is enabled by default. 5974 5975**Diagnostic text:** 5976 5977+----------------------------------------------------------------------------------------------------------------------------------+ 5978|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`| 5979+----------------------------------------------------------------------------------------------------------------------------------+ 5980 5981 5982-Winstantiation-after-specialization 5983------------------------------------ 5984This diagnostic is enabled by default. 5985 5986**Diagnostic text:** 5987 5988+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5989|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`| 5990+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5991 5992 5993-Wint-conversion 5994---------------- 5995This diagnostic is enabled by default. 5996 5997**Diagnostic text:** 5998 5999+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6000|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6001| ||:diagtext:`assigning to different types` ||| || 6002| |+--------------------------------------------------------------+|+-------------------------------------+| 6003| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6004| |+--------------------------------------------------------------+|+-------------------------------------+| 6005| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6006| |+--------------------------------------------------------------+|+-------------------------------------+| 6007| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6008| |+--------------------------------------------------------------+|+-------------------------------------+| 6009| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6010| |+--------------------------------------------------------------+|+-------------------------------------+| 6011| ||:diagtext:`sending to parameter of different type` || | 6012| |+--------------------------------------------------------------+| | 6013| ||:diagtext:`casting between types` || | 6014| |+--------------------------------------------------------------+| | 6015+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6016 6017+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6018|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6019| ||:diagtext:`assigning to different types` ||| || 6020| |+--------------------------------------------------------------+|+-------------------------------------+| 6021| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6022| |+--------------------------------------------------------------+|+-------------------------------------+| 6023| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6024| |+--------------------------------------------------------------+|+-------------------------------------+| 6025| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6026| |+--------------------------------------------------------------+|+-------------------------------------+| 6027| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6028| |+--------------------------------------------------------------+|+-------------------------------------+| 6029| ||:diagtext:`sending to parameter of different type` || | 6030| |+--------------------------------------------------------------+| | 6031| ||:diagtext:`casting between types` || | 6032| |+--------------------------------------------------------------+| | 6033+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6034 6035 6036-Wint-conversions 6037----------------- 6038Synonym for `-Wint-conversion`_. 6039 6040 6041-Wint-to-pointer-cast 6042--------------------- 6043This diagnostic is enabled by default. 6044 6045Also controls `-Wint-to-void-pointer-cast`_. 6046 6047**Diagnostic text:** 6048 6049+-------------------------------------------------------------------------------------------------------------------------------------------+ 6050|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6051+-------------------------------------------------------------------------------------------------------------------------------------------+ 6052 6053 6054-Wint-to-void-pointer-cast 6055-------------------------- 6056This diagnostic is enabled by default. 6057 6058**Diagnostic text:** 6059 6060+-------------------------------------------------------------------------------------------------------------------------------------------+ 6061|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6062+-------------------------------------------------------------------------------------------------------------------------------------------+ 6063 6064 6065-Winteger-overflow 6066------------------ 6067This diagnostic is enabled by default. 6068 6069**Diagnostic text:** 6070 6071+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 6072|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`| 6073+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 6074 6075 6076-Winvalid-command-line-argument 6077------------------------------- 6078This diagnostic is enabled by default. 6079 6080Also controls `-Wignored-optimization-argument`_. 6081 6082**Diagnostic text:** 6083 6084+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6085|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`| 6086+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6087 6088+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6089|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`| 6090+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6091 6092+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6093|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`| 6094+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6095 6096+-----------------------------------------------------------------------------------------------------------------------------------------+ 6097|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`| 6098+-----------------------------------------------------------------------------------------------------------------------------------------+ 6099 6100+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6101|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`| 6102+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6103 6104 6105-Winvalid-constexpr 6106------------------- 6107This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error. 6108 6109**Diagnostic text:** 6110 6111+----------------------------------------------------+-------------------------+--------------------------------------------------------+ 6112|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`| 6113| ||:diagtext:`function` || | 6114| |+-----------------------+| | 6115| ||:diagtext:`constructor`|| | 6116| |+-----------------------+| | 6117+----------------------------------------------------+-------------------------+--------------------------------------------------------+ 6118 6119 6120-Winvalid-iboutlet 6121------------------ 6122This diagnostic is enabled by default. 6123 6124**Diagnostic text:** 6125 6126+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6127|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`| 6128| ||:diagtext:`instance variable`|| | 6129| |+-----------------------------+| | 6130| ||:diagtext:`property` || | 6131| |+-----------------------------+| | 6132+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6133 6134+---------------------------------------------------------------------------------------------------------+ 6135|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`| 6136+---------------------------------------------------------------------------------------------------------+ 6137 6138 6139-Winvalid-initializer-from-system-header 6140---------------------------------------- 6141This diagnostic is enabled by default. 6142 6143**Diagnostic text:** 6144 6145+--------------------------------------------------------------------------------------------------------------+ 6146|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`| 6147+--------------------------------------------------------------------------------------------------------------+ 6148 6149 6150-Winvalid-ios-deployment-target 6151------------------------------- 6152This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error. 6153 6154**Diagnostic text:** 6155 6156+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6157|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`| 6158+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6159 6160 6161-Winvalid-noreturn 6162------------------ 6163This diagnostic is enabled by default. 6164 6165**Diagnostic text:** 6166 6167+-------------------------------------------------------------------------------------+ 6168|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`| 6169+-------------------------------------------------------------------------------------+ 6170 6171+--------------------------------------------------------------------------------------------------------------------------------+ 6172|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`| 6173+--------------------------------------------------------------------------------------------------------------------------------+ 6174 6175 6176-Winvalid-offsetof 6177------------------ 6178This diagnostic is enabled by default. 6179 6180**Diagnostic text:** 6181 6182+----------------------------------------------------------------------------------------+ 6183|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`| 6184+----------------------------------------------------------------------------------------+ 6185 6186+----------------------------------------------------------------------------------------------------+ 6187|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`| 6188+----------------------------------------------------------------------------------------------------+ 6189 6190 6191-Winvalid-or-nonexistent-directory 6192---------------------------------- 6193Some of the diagnostics controlled by this flag are enabled by default. 6194 6195**Diagnostic text:** 6196 6197+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6198|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`| 6199+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6200 6201+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6202|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`| 6203+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6204 6205 6206-Winvalid-partial-specialization 6207-------------------------------- 6208This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error. 6209 6210**Diagnostic text:** 6211 6212+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 6213|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`| 6214| ||:diagtext:`class` || | 6215| |+--------------------+| | 6216| ||:diagtext:`variable`|| | 6217| |+--------------------+| | 6218+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 6219 6220 6221-Winvalid-pch 6222------------- 6223This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6224 6225-Winvalid-pp-token 6226------------------ 6227This diagnostic is enabled by default. 6228 6229**Diagnostic text:** 6230 6231+---------------------------------------------------------------+ 6232|:warning:`warning:` |nbsp| :diagtext:`empty character constant`| 6233+---------------------------------------------------------------+ 6234 6235+------------------------------------------------------------------+-----------------+-----------------------------+ 6236|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`| 6237| ||:diagtext:`'` || | 6238| |+---------------+| | 6239| ||:diagtext:`'"'`|| | 6240| |+---------------+| | 6241+------------------------------------------------------------------+-----------------+-----------------------------+ 6242 6243 6244-Winvalid-source-encoding 6245------------------------- 6246This diagnostic is enabled by default. 6247 6248**Diagnostic text:** 6249 6250+--------------------------------------------------------------------------------------+ 6251|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`| 6252+--------------------------------------------------------------------------------------+ 6253 6254+-----------------------------------------------------------------------------------+ 6255|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`| 6256+-----------------------------------------------------------------------------------+ 6257 6258 6259-Winvalid-token-paste 6260--------------------- 6261This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error. 6262 6263**Diagnostic text:** 6264 6265+----------------------------------------------------------------------------------------------------------------+ 6266|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`| 6267+----------------------------------------------------------------------------------------------------------------+ 6268 6269 6270-Wjump-seh-finally 6271------------------ 6272This diagnostic is enabled by default. 6273 6274**Diagnostic text:** 6275 6276+-------------------------------------------------------------------------------------------+ 6277|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`| 6278+-------------------------------------------------------------------------------------------+ 6279 6280 6281-Wkeyword-compat 6282---------------- 6283This diagnostic is enabled by default. 6284 6285**Diagnostic text:** 6286 6287+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 6288|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+| 6289| ||:diagtext:`here` || 6290| |+-----------------------------------------------------+| 6291| ||:diagtext:`for the remainder of the translation unit`|| 6292| |+-----------------------------------------------------+| 6293+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 6294 6295 6296-Wkeyword-macro 6297--------------- 6298**Diagnostic text:** 6299 6300+----------------------------------------------------------------------------+ 6301|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`| 6302+----------------------------------------------------------------------------+ 6303 6304 6305-Wknr-promoted-parameter 6306------------------------ 6307This diagnostic is enabled by default. 6308 6309**Diagnostic text:** 6310 6311+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6312|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`| 6313+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6314 6315 6316-Wlanguage-extension-token 6317-------------------------- 6318**Diagnostic text:** 6319 6320+-----------------------------------------------------+ 6321|:warning:`warning:` |nbsp| :diagtext:`extension used`| 6322+-----------------------------------------------------+ 6323 6324 6325-Wlarge-by-value-copy 6326--------------------- 6327This diagnostic is enabled by default. 6328 6329**Diagnostic text:** 6330 6331+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6332|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`| 6333+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6334 6335+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6336|:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`| 6337+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6338 6339 6340-Wliblto 6341-------- 6342This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6343 6344-Wliteral-conversion 6345-------------------- 6346This diagnostic is enabled by default. 6347 6348**Diagnostic text:** 6349 6350+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6351|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 6352+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6353 6354+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6355|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 6356+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6357 6358 6359-Wliteral-range 6360--------------- 6361This diagnostic is enabled by default. 6362 6363**Diagnostic text:** 6364 6365+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6366|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`| 6367+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6368 6369+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6370|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`| 6371+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6372 6373 6374-Wlocal-type-template-args 6375-------------------------- 6376Some of the diagnostics controlled by this flag are enabled by default. 6377 6378Also controls `-Wc++98-compat-local-type-template-args`_. 6379 6380**Diagnostic text:** 6381 6382+------------------------------------------------------------------------------------------------+ 6383|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`| 6384+------------------------------------------------------------------------------------------------+ 6385 6386 6387-Wlogical-not-parentheses 6388------------------------- 6389This diagnostic is enabled by default. 6390 6391**Diagnostic text:** 6392 6393+--------------------------------------------------------------------------------------------------------+------------------------------+ 6394|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+| 6395| ||:diagtext:`comparison` || 6396| |+----------------------------+| 6397| ||:diagtext:`bitwise operator`|| 6398| |+----------------------------+| 6399+--------------------------------------------------------------------------------------------------------+------------------------------+ 6400 6401 6402-Wlogical-op-parentheses 6403------------------------ 6404This diagnostic is enabled by default. 6405 6406**Diagnostic text:** 6407 6408+---------------------------------------------------------+ 6409|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`| 6410+---------------------------------------------------------+ 6411 6412 6413-Wlong-long 6414----------- 6415Also controls `-Wc++11-long-long`_. 6416 6417**Diagnostic text:** 6418 6419+-----------------------------------------------------------------------------------------------+ 6420|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`| 6421+-----------------------------------------------------------------------------------------------+ 6422 6423 6424-Wloop-analysis 6425--------------- 6426Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_. 6427 6428 6429-Wmacro-redefined 6430----------------- 6431This diagnostic is enabled by default. 6432 6433**Diagnostic text:** 6434 6435+------------------------------------------------------------------------------+ 6436|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`| 6437+------------------------------------------------------------------------------+ 6438 6439 6440-Wmain 6441------ 6442Some of the diagnostics controlled by this flag are enabled by default. 6443 6444**Diagnostic text:** 6445 6446+--------------------------------------------------------------------------------------------+ 6447|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 6448+--------------------------------------------------------------------------------------------+ 6449 6450+--------------------------------------------------------------------------------------+ 6451|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`| 6452+--------------------------------------------------------------------------------------+ 6453 6454+------------------------------------------------------------------------------------+ 6455|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`| 6456+------------------------------------------------------------------------------------+ 6457 6458+-------------------------------------------------------------------------------+ 6459|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`| 6460+-------------------------------------------------------------------------------+ 6461 6462+---------------------------------------------------------------------------------------------------------+ 6463|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`| 6464+---------------------------------------------------------------------------------------------------------+ 6465 6466+------------------------------------------------------------------------+ 6467|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`| 6468+------------------------------------------------------------------------+ 6469 6470+---------------------------------------------------------------------------+ 6471|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`| 6472+---------------------------------------------------------------------------+ 6473 6474 6475-Wmain-return-type 6476------------------ 6477This diagnostic is enabled by default. 6478 6479**Diagnostic text:** 6480 6481+-------------------------------------------------------------------------+ 6482|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`| 6483+-------------------------------------------------------------------------+ 6484 6485 6486-Wmalformed-warning-check 6487------------------------- 6488This diagnostic is enabled by default. 6489 6490**Diagnostic text:** 6491 6492+---------------------------------------------------------------------------------------------+ 6493|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`| 6494+---------------------------------------------------------------------------------------------+ 6495 6496 6497-Wmany-braces-around-scalar-init 6498-------------------------------- 6499This diagnostic is enabled by default. 6500 6501**Diagnostic text:** 6502 6503+--------------------------------------------------------------------------------+ 6504|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`| 6505+--------------------------------------------------------------------------------+ 6506 6507 6508-Wmax-unsigned-zero 6509------------------- 6510This diagnostic is enabled by default. 6511 6512**Diagnostic text:** 6513 6514+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 6515|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`| 6516| ||:diagtext:`a value and unsigned zero`|| | 6517| |+-------------------------------------+| | 6518| ||:diagtext:`unsigned zero and a value`|| | 6519| |+-------------------------------------+| | 6520+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 6521 6522 6523-Wmemset-transposed-args 6524------------------------ 6525This diagnostic is enabled by default. 6526 6527**Diagnostic text:** 6528 6529+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 6530|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`| 6531| ||:diagtext:`'size' argument to memset is '0'` || | 6532| |+---------------------------------------------------+| | 6533| ||:diagtext:`setting buffer to a 'sizeof' expression`|| | 6534| |+---------------------------------------------------+| | 6535+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 6536 6537 6538-Wmemsize-comparison 6539-------------------- 6540This diagnostic is enabled by default. 6541 6542**Diagnostic text:** 6543 6544+-----------------------------------------------------------------------------------------------------------------------+ 6545|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`| 6546+-----------------------------------------------------------------------------------------------------------------------+ 6547 6548 6549-Wmethod-signatures 6550------------------- 6551**Diagnostic text:** 6552 6553+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6554|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 6555+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6556 6557+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6558|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 6559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6560 6561 6562-Wmicrosoft 6563----------- 6564Some of the diagnostics controlled by this flag are enabled by default. 6565 6566Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_. 6567 6568 6569-Wmicrosoft-anon-tag 6570-------------------- 6571Some of the diagnostics controlled by this flag are enabled by default. 6572 6573**Diagnostic text:** 6574 6575+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 6576|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 6577| ||:diagtext:`struct`|| | 6578| |+------------------+| | 6579| ||:diagtext:`union` || | 6580| |+------------------+| | 6581+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 6582 6583+--------------------------------------------------------+---------------------+---------------------------------------------+ 6584|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 6585| ||:diagtext:`structs`|| | 6586| |+-------------------+| | 6587| ||:diagtext:`unions` || | 6588| |+-------------------+| | 6589+--------------------------------------------------------+---------------------+---------------------------------------------+ 6590 6591 6592-Wmicrosoft-cast 6593---------------- 6594This diagnostic is enabled by default. 6595 6596**Diagnostic text:** 6597 6598+------------------------------------------------------------------------------------------------------------------------------+ 6599|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`| 6600+------------------------------------------------------------------------------------------------------------------------------+ 6601 6602+-------------------------------------------------------------------------------------------------------------------------------------+ 6603|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`| 6604+-------------------------------------------------------------------------------------------------------------------------------------+ 6605 6606 6607-Wmicrosoft-charize 6608------------------- 6609**Diagnostic text:** 6610 6611+-------------------------------------------------------------------------------------+ 6612|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`| 6613+-------------------------------------------------------------------------------------+ 6614 6615 6616-Wmicrosoft-comment-paste 6617------------------------- 6618**Diagnostic text:** 6619 6620+----------------------------------------------------------------------------------------------------------+ 6621|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`| 6622+----------------------------------------------------------------------------------------------------------+ 6623 6624 6625-Wmicrosoft-const-init 6626---------------------- 6627This diagnostic is enabled by default. 6628 6629**Diagnostic text:** 6630 6631+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 6632|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 6633| || || | 6634| |+---------------------------------------------------------------+| | 6635| || |nbsp| :diagtext:`without a user-provided default constructor`|| | 6636| |+---------------------------------------------------------------+| | 6637+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 6638 6639 6640-Wmicrosoft-cpp-macro 6641--------------------- 6642**Diagnostic text:** 6643 6644+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6645|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`| 6646+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6647 6648 6649-Wmicrosoft-default-arg-redefinition 6650------------------------------------ 6651This diagnostic is enabled by default. 6652 6653**Diagnostic text:** 6654 6655+-----------------------------------------------------------------------+ 6656|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`| 6657+-----------------------------------------------------------------------+ 6658 6659 6660-Wmicrosoft-end-of-file 6661----------------------- 6662**Diagnostic text:** 6663 6664+----------------------------------------------------------------------------------------------+ 6665|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`| 6666+----------------------------------------------------------------------------------------------+ 6667 6668 6669-Wmicrosoft-enum-forward-reference 6670---------------------------------- 6671This diagnostic is enabled by default. 6672 6673**Diagnostic text:** 6674 6675+---------------------------------------------------------------------------------------------------+ 6676|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`| 6677+---------------------------------------------------------------------------------------------------+ 6678 6679 6680-Wmicrosoft-enum-value 6681---------------------- 6682**Diagnostic text:** 6683 6684+---------------------------------------------------------------------------------------------------------------------------+ 6685|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`| 6686+---------------------------------------------------------------------------------------------------------------------------+ 6687 6688 6689-Wmicrosoft-exception-spec 6690-------------------------- 6691Some of the diagnostics controlled by this flag are enabled by default. 6692 6693**Diagnostic text:** 6694 6695+------------------------------------------------------------------------------------------------+ 6696|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 6697+------------------------------------------------------------------------------------------------+ 6698 6699+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 6700|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`| 6701| || || | 6702| |+--------------------------------+| | 6703| ||:diagtext:`pointer to` |nbsp| || | 6704| |+--------------------------------+| | 6705| ||:diagtext:`reference to` |nbsp| || | 6706| |+--------------------------------+| | 6707+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 6708 6709+-----------------------------------------------------------------------------------------------------------------+ 6710|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`| 6711+-----------------------------------------------------------------------------------------------------------------+ 6712 6713+------------------------------------------------------------------------------------------------------------------------+ 6714|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`| 6715+------------------------------------------------------------------------------------------------------------------------+ 6716 6717+--------------------------------------------------------------------------------------------------------------------------------+ 6718|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 6719+--------------------------------------------------------------------------------------------------------------------------------+ 6720 6721+-------------------------------------------------------------------------------------------------------------------+ 6722|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`| 6723+-------------------------------------------------------------------------------------------------------------------+ 6724 6725 6726-Wmicrosoft-exists 6727------------------ 6728This diagnostic is enabled by default. 6729 6730**Diagnostic text:** 6731 6732+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 6733|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`| 6734| ||:diagtext:`\_\_if\_not\_exists`|| | 6735| |+-------------------------------+| | 6736| ||:diagtext:`\_\_if\_exists` || | 6737| |+-------------------------------+| | 6738+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 6739 6740 6741-Wmicrosoft-explicit-constructor-call 6742------------------------------------- 6743This diagnostic is enabled by default. 6744 6745**Diagnostic text:** 6746 6747+-------------------------------------------------------------------------------------------+ 6748|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`| 6749+-------------------------------------------------------------------------------------------+ 6750 6751 6752-Wmicrosoft-extra-qualification 6753------------------------------- 6754This diagnostic is enabled by default. 6755 6756**Diagnostic text:** 6757 6758+--------------------------------------------------------------------------------------------+ 6759|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 6760+--------------------------------------------------------------------------------------------+ 6761 6762 6763-Wmicrosoft-fixed-enum 6764---------------------- 6765**Diagnostic text:** 6766 6767+---------------------------------------------------------------------------------------------------------------+ 6768|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`| 6769+---------------------------------------------------------------------------------------------------------------+ 6770 6771 6772-Wmicrosoft-flexible-array 6773-------------------------- 6774**Diagnostic text:** 6775 6776+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 6777|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 6778| ||:diagtext:`struct` || | 6779| |+---------------------+| | 6780| ||:diagtext:`interface`|| | 6781| |+---------------------+| | 6782| ||:diagtext:`union` || | 6783| |+---------------------+| | 6784| ||:diagtext:`class` || | 6785| |+---------------------+| | 6786| ||:diagtext:`enum` || | 6787| |+---------------------+| | 6788+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 6789 6790+-------------------------------------------------------------------------------------------------------------------------------------------+ 6791|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`| 6792+-------------------------------------------------------------------------------------------------------------------------------------------+ 6793 6794 6795-Wmicrosoft-goto 6796---------------- 6797This diagnostic is enabled by default. 6798 6799**Diagnostic text:** 6800 6801+----------------------------------------------------------------------------------------------------------+ 6802|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`| 6803+----------------------------------------------------------------------------------------------------------+ 6804 6805 6806-Wmicrosoft-inaccessible-base 6807----------------------------- 6808This diagnostic is enabled by default. 6809 6810**Diagnostic text:** 6811 6812+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6813|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 6814+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6815 6816 6817-Wmicrosoft-include 6818------------------- 6819This diagnostic is enabled by default. 6820 6821**Diagnostic text:** 6822 6823+------------------------------------------------------------------------------------------------------------------------------+ 6824|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`| 6825+------------------------------------------------------------------------------------------------------------------------------+ 6826 6827 6828-Wmicrosoft-mutable-reference 6829----------------------------- 6830This diagnostic is enabled by default. 6831 6832**Diagnostic text:** 6833 6834+---------------------------------------------------------------------------------------------+ 6835|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`| 6836+---------------------------------------------------------------------------------------------+ 6837 6838 6839-Wmicrosoft-pure-definition 6840--------------------------- 6841This diagnostic is enabled by default. 6842 6843**Diagnostic text:** 6844 6845+-------------------------------------------------------------------------------------------------------+ 6846|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`| 6847+-------------------------------------------------------------------------------------------------------+ 6848 6849 6850-Wmicrosoft-redeclare-static 6851---------------------------- 6852**Diagnostic text:** 6853 6854+-------------------------------------------------------------------------------------------------------------------------------------------+ 6855|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`| 6856+-------------------------------------------------------------------------------------------------------------------------------------------+ 6857 6858 6859-Wmicrosoft-sealed 6860------------------ 6861This diagnostic is enabled by default. 6862 6863**Diagnostic text:** 6864 6865+--------------------------------------------------------------------------------+ 6866|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`| 6867+--------------------------------------------------------------------------------+ 6868 6869 6870-Wmicrosoft-template 6871-------------------- 6872This diagnostic is enabled by default. 6873 6874**Diagnostic text:** 6875 6876+------------------------------------------------------------------------------------------------------------------------------------------------------+ 6877|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`| 6878+------------------------------------------------------------------------------------------------------------------------------------------------------+ 6879 6880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6881|:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`| 6882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6883 6884+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6885|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`| 6886+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6887 6888+-----------------------------------------------------------------------------------------------------------------------------+ 6889|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`| 6890+-----------------------------------------------------------------------------------------------------------------------------+ 6891 6892+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 6893|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 6894| ||:diagtext:`class template` || ||+---------------------------------------------------------+ || | 6895| |+-------------------------------------+| |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`| || | 6896| ||:diagtext:`class template partial` || ||+---------------------------------------------------------+ || | 6897| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 6898| ||:diagtext:`variable template` || ||+--------------------------------------------------------------------------------------+|| | 6899| |+-------------------------------------+| |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`||| | 6900| ||:diagtext:`variable template partial`|| ||+--------------------------------------------------------------------------------------+|| | 6901| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 6902| ||:diagtext:`function template` || | | | 6903| |+-------------------------------------+| | | | 6904| ||:diagtext:`member function` || | | | 6905| |+-------------------------------------+| | | | 6906| ||:diagtext:`static data member` || | | | 6907| |+-------------------------------------+| | | | 6908| ||:diagtext:`member class` || | | | 6909| |+-------------------------------------+| | | | 6910| ||:diagtext:`member enumeration` || | | | 6911| |+-------------------------------------+| | | | 6912+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 6913 6914+------------------------------------------------------------------------------------------------------------------------------------------------+ 6915|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`| 6916+------------------------------------------------------------------------------------------------------------------------------------------------+ 6917 6918+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6919|:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 6920+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6921 6922 6923-Wmicrosoft-union-member-reference 6924---------------------------------- 6925This diagnostic is enabled by default. 6926 6927**Diagnostic text:** 6928 6929+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6930|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`| 6931+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6932 6933 6934-Wmicrosoft-unqualified-friend 6935------------------------------ 6936This diagnostic is enabled by default. 6937 6938**Diagnostic text:** 6939 6940+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6941|:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`| 6942+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6943 6944 6945-Wmicrosoft-using-decl 6946---------------------- 6947This diagnostic is enabled by default. 6948 6949**Diagnostic text:** 6950 6951+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6952|:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`| 6953+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6954 6955 6956-Wmicrosoft-void-pseudo-dtor 6957---------------------------- 6958This diagnostic is enabled by default. 6959 6960**Diagnostic text:** 6961 6962+------------------------------------------------------------------------------------------------+ 6963|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`| 6964+------------------------------------------------------------------------------------------------+ 6965 6966 6967-Wmismatched-new-delete 6968----------------------- 6969This diagnostic is enabled by default. 6970 6971**Diagnostic text:** 6972 6973+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 6974|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`| 6975| || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| | 6976| |+----------------+| |+----------------+| |+----------------+| | 6977| ||:diagtext:`\[\]`|| || || || || | 6978| |+----------------+| |+----------------+| |+----------------+| | 6979+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 6980 6981 6982-Wmismatched-parameter-types 6983---------------------------- 6984This diagnostic is enabled by default. 6985 6986**Diagnostic text:** 6987 6988+---------------------------------------------------------------------------------------------------------------+ 6989|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`| 6990+---------------------------------------------------------------------------------------------------------------+ 6991 6992 6993-Wmismatched-return-types 6994------------------------- 6995This diagnostic is enabled by default. 6996 6997**Diagnostic text:** 6998 6999+-----------------------------------------------------------------------------------------------------------+ 7000|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`| 7001+-----------------------------------------------------------------------------------------------------------+ 7002 7003 7004-Wmismatched-tags 7005----------------- 7006**Diagnostic text:** 7007 7008+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 7009|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 7010| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || | 7011| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 7012| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| | 7013| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 7014| ||:diagtext:`a class` || | ||:diagtext:`a class` || | | 7015| |+------------------------+| | |+------------------------+| | | 7016+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 7017 7018+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 7019|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 7020| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || | 7021| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 7022| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| | 7023| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 7024| ||:diagtext:`class` || | ||:diagtext:`class` || | | 7025| |+---------------------+| | |+---------------------+| | | 7026+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 7027 7028 7029-Wmissing-braces 7030---------------- 7031**Diagnostic text:** 7032 7033+----------------------------------------------------------------------------------------+ 7034|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`| 7035+----------------------------------------------------------------------------------------+ 7036 7037 7038-Wmissing-declarations 7039---------------------- 7040This diagnostic is enabled by default. 7041 7042**Diagnostic text:** 7043 7044+----------------------------------------------------------------------------+ 7045|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`| 7046+----------------------------------------------------------------------------+ 7047 7048+-----------------------------------------------------------------------------------------------------------------+ 7049|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`| 7050+-----------------------------------------------------------------------------------------------------------------+ 7051 7052+--------------------------------------------------------------+ 7053|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`| 7054+--------------------------------------------------------------+ 7055 7056+-------------------------------------------------------------------------------------------------+ 7057|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`| 7058+-------------------------------------------------------------------------------------------------+ 7059 7060 7061-Wmissing-exception-spec 7062------------------------ 7063This diagnostic is enabled by default. 7064 7065**Diagnostic text:** 7066 7067+--------------------------------------------------------------------------------------------------------------------------------+ 7068|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 7069+--------------------------------------------------------------------------------------------------------------------------------+ 7070 7071 7072-Wmissing-field-initializers 7073---------------------------- 7074**Diagnostic text:** 7075 7076+-----------------------------------------------------------------------------------------------------------+ 7077|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`| 7078+-----------------------------------------------------------------------------------------------------------+ 7079 7080 7081-Wmissing-format-attribute 7082-------------------------- 7083This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7084 7085-Wmissing-include-dirs 7086---------------------- 7087This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7088 7089-Wmissing-method-return-type 7090---------------------------- 7091**Diagnostic text:** 7092 7093+--------------------------------------------------------------------------------------------+ 7094|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`| 7095+--------------------------------------------------------------------------------------------+ 7096 7097 7098-Wmissing-noescape 7099------------------ 7100This diagnostic is enabled by default. 7101 7102**Diagnostic text:** 7103 7104+----------------------------------------------------------------------------------------------------------------------------+ 7105|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`| 7106+----------------------------------------------------------------------------------------------------------------------------+ 7107 7108 7109-Wmissing-noreturn 7110------------------ 7111**Diagnostic text:** 7112 7113+----------------------------------------------------------------------------------------+ 7114|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`| 7115+----------------------------------------------------------------------------------------+ 7116 7117+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 7118|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`| 7119| ||:diagtext:`function`|| | 7120| |+--------------------+| | 7121| ||:diagtext:`method` || | 7122| |+--------------------+| | 7123+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 7124 7125 7126-Wmissing-prototype-for-cc 7127-------------------------- 7128This diagnostic is enabled by default. 7129 7130**Diagnostic text:** 7131 7132+----------------------------------------------------------------------------------------------------------------------------------------------+ 7133|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`| 7134+----------------------------------------------------------------------------------------------------------------------------------------------+ 7135 7136 7137-Wmissing-prototypes 7138-------------------- 7139**Diagnostic text:** 7140 7141+-------------------------------------------------------------------------------------------------+ 7142|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`| 7143+-------------------------------------------------------------------------------------------------+ 7144 7145 7146-Wmissing-selector-name 7147----------------------- 7148This diagnostic is enabled by default. 7149 7150**Diagnostic text:** 7151 7152+---------------------------------------------------------------------------------------------------------------------------------------------+ 7153|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`| 7154+---------------------------------------------------------------------------------------------------------------------------------------------+ 7155 7156 7157-Wmissing-sysroot 7158----------------- 7159This diagnostic is enabled by default. 7160 7161**Diagnostic text:** 7162 7163+------------------------------------------------------------------------------------------------+ 7164|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`| 7165+------------------------------------------------------------------------------------------------+ 7166 7167 7168-Wmissing-variable-declarations 7169------------------------------- 7170**Diagnostic text:** 7171 7172+---------------------------------------------------------------------------------------------------------------------+ 7173|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`| 7174+---------------------------------------------------------------------------------------------------------------------+ 7175 7176 7177-Rmodule-build 7178-------------- 7179**Diagnostic text:** 7180 7181+---------------------------------------------------------------------------------------------------------------------+ 7182|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`| 7183+---------------------------------------------------------------------------------------------------------------------+ 7184 7185+--------------------------------------------------------------------------------------------+ 7186|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`| 7187+--------------------------------------------------------------------------------------------+ 7188 7189+-----------------------------------------------------------------------------------------------------------------------------------+ 7190|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`| 7191+-----------------------------------------------------------------------------------------------------------------------------------+ 7192 7193+---------------------------------------------------------------------------------------------------------------------+ 7194|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`| 7195+---------------------------------------------------------------------------------------------------------------------+ 7196 7197 7198-Wmodule-conflict 7199----------------- 7200This diagnostic is enabled by default. 7201 7202**Diagnostic text:** 7203 7204+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7205|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`| 7206+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7207 7208+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7209|:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`| 7210+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7211 7212 7213-Wmodule-file-config-mismatch 7214----------------------------- 7215This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error. 7216 7217**Diagnostic text:** 7218 7219+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7220|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`| 7221+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7222 7223 7224-Wmodule-file-extension 7225----------------------- 7226This diagnostic is enabled by default. 7227 7228**Diagnostic text:** 7229 7230+----------------------------------------------------------------------------------------------------------------+ 7231|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`| 7232+----------------------------------------------------------------------------------------------------------------+ 7233 7234 7235-Wmodule-import-in-extern-c 7236--------------------------- 7237This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error. 7238 7239**Diagnostic text:** 7240 7241+-----------------------------------------------------------------------------------------------------------------------------------------------+ 7242|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`| 7243+-----------------------------------------------------------------------------------------------------------------------------------------------+ 7244 7245 7246-Wmodules-ambiguous-internal-linkage 7247------------------------------------ 7248This diagnostic is enabled by default. 7249 7250**Diagnostic text:** 7251 7252+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7253|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`| 7254+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7255 7256 7257-Wmodules-import-nested-redundant 7258--------------------------------- 7259This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error. 7260 7261**Diagnostic text:** 7262 7263+-------------------------------------------------------------------------------------------------------------------------------------+ 7264|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`| 7265+-------------------------------------------------------------------------------------------------------------------------------------+ 7266 7267 7268-Wmost 7269------ 7270Some of the diagnostics controlled by this flag are enabled by default. 7271 7272Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_. 7273 7274 7275-Wmove 7276------ 7277Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_. 7278 7279 7280-Wmsvc-include 7281-------------- 7282Synonym for `-Wmicrosoft-include`_. 7283 7284 7285-Wmsvc-not-found 7286---------------- 7287This diagnostic is enabled by default. 7288 7289**Diagnostic text:** 7290 7291+-------------------------------------------------------------------------------------------------------------------------------------+ 7292|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`| 7293+-------------------------------------------------------------------------------------------------------------------------------------+ 7294 7295 7296-Wmultichar 7297----------- 7298This diagnostic is enabled by default. 7299 7300**Diagnostic text:** 7301 7302+-------------------------------------------------------------------------+ 7303|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 7304+-------------------------------------------------------------------------+ 7305 7306 7307-Wmultiple-move-vbase 7308--------------------- 7309This diagnostic is enabled by default. 7310 7311**Diagnostic text:** 7312 7313+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7314|:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`| 7315+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7316 7317 7318-Wnarrowing 7319----------- 7320Synonym for `-Wc++11-narrowing`_. 7321 7322 7323-Wnested-anon-types 7324------------------- 7325**Diagnostic text:** 7326 7327+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 7328|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`| 7329| ||:diagtext:`struct`|| | 7330| |+------------------+| | 7331| ||:diagtext:`union` || | 7332| |+------------------+| | 7333+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 7334 7335 7336-Wnested-externs 7337---------------- 7338This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7339 7340-Wnew-returns-null 7341------------------ 7342This diagnostic is enabled by default. 7343 7344**Diagnostic text:** 7345 7346+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 7347|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+| 7348| || || 7349| |+---------------------------------+| 7350| || |nbsp| :diagtext:`or 'noexcept'`|| 7351| |+---------------------------------+| 7352+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 7353 7354 7355-Wnewline-eof 7356------------- 7357**Diagnostic text:** 7358 7359+----------------------------------------------------------------+ 7360|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 7361+----------------------------------------------------------------+ 7362 7363+----------------------------------------------------------------+ 7364|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 7365+----------------------------------------------------------------+ 7366 7367 7368-Wnoderef 7369--------- 7370This diagnostic is enabled by default. 7371 7372**Diagnostic text:** 7373 7374+----------------------------------------------------------------------------------------------------------------------------+ 7375|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`| 7376+----------------------------------------------------------------------------------------------------------------------------+ 7377 7378+-----------------------------------------------------------------------------------+ 7379|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`| 7380+-----------------------------------------------------------------------------------+ 7381 7382+-----------------------------------------------------------------------------------------------------+ 7383|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`| 7384+-----------------------------------------------------------------------------------------------------+ 7385 7386 7387-Wnoexcept-type 7388--------------- 7389Synonym for `-Wc++17-compat-mangling`_. 7390 7391 7392-Wnon-gcc 7393--------- 7394Some of the diagnostics controlled by this flag are enabled by default. 7395 7396Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_. 7397 7398 7399-Wnon-literal-null-conversion 7400----------------------------- 7401This diagnostic is enabled by default. 7402 7403**Diagnostic text:** 7404 7405+--------------------------------------------------------------------------------------------------------------------------------------------+ 7406|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`| 7407+--------------------------------------------------------------------------------------------------------------------------------------------+ 7408 7409 7410-Wnon-modular-include-in-framework-module 7411----------------------------------------- 7412**Diagnostic text:** 7413 7414+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7415|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 7416+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7417 7418 7419-Wnon-modular-include-in-module 7420------------------------------- 7421Also controls `-Wnon-modular-include-in-framework-module`_. 7422 7423**Diagnostic text:** 7424 7425+-------------------------------------------------------------------------------------------------------------------------------------------------+ 7426|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 7427+-------------------------------------------------------------------------------------------------------------------------------------------------+ 7428 7429 7430-Wnon-pod-varargs 7431----------------- 7432This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error. 7433 7434**Diagnostic text:** 7435 7436+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 7437|:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`| 7438| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 7439| |+-----------------------+| |+-----------------------+| | 7440| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 7441| |+-----------------------+| |+-----------------------+| | 7442| | | ||:diagtext:`method` || | 7443| | | |+-----------------------+| | 7444| | | ||:diagtext:`constructor`|| | 7445| | | |+-----------------------+| | 7446+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 7447 7448+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 7449|:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`| 7450| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 7451| |+-----------------------+| |+-----------------------+| | 7452| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 7453| |+-----------------------+| |+-----------------------+| | 7454| | | ||:diagtext:`method` || | 7455| | | |+-----------------------+| | 7456| | | ||:diagtext:`constructor`|| | 7457| | | |+-----------------------+| | 7458+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 7459 7460+----------------------------------------------------------------------------------------------------------+ 7461|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`| 7462+----------------------------------------------------------------------------------------------------------+ 7463 7464+--------------------------------------------------------------------------------------------------------------------------+ 7465|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`| 7466+--------------------------------------------------------------------------------------------------------------------------+ 7467 7468 7469-Wnon-virtual-dtor 7470------------------ 7471**Diagnostic text:** 7472 7473+---------------------------------------------------------------------------------------------------------------+ 7474|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`| 7475+---------------------------------------------------------------------------------------------------------------+ 7476 7477 7478-Wnonnull 7479--------- 7480This diagnostic is enabled by default. 7481 7482**Diagnostic text:** 7483 7484+------------------------------------------------------------------------------------------------+ 7485|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`| 7486+------------------------------------------------------------------------------------------------+ 7487 7488+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 7489|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`| 7490| ||:diagtext:`function`|| | 7491| |+--------------------+| | 7492| ||:diagtext:`method` || | 7493| |+--------------------+| | 7494+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 7495 7496 7497-Wnonportable-cfstrings 7498----------------------- 7499This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7500 7501-Wnonportable-include-path 7502-------------------------- 7503This diagnostic is enabled by default. 7504 7505**Diagnostic text:** 7506 7507+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7508|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 7509+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7510 7511 7512-Wnonportable-system-include-path 7513--------------------------------- 7514**Diagnostic text:** 7515 7516+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7517|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 7518+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7519 7520 7521-Wnonportable-vector-initialization 7522----------------------------------- 7523This diagnostic is enabled by default. 7524 7525**Diagnostic text:** 7526 7527+---------------------------------------------------------------------------------------------------------------------+ 7528|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`| 7529+---------------------------------------------------------------------------------------------------------------------+ 7530 7531 7532-Wnontrivial-memaccess 7533---------------------- 7534This diagnostic is enabled by default. 7535 7536**Diagnostic text:** 7537 7538+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 7539|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+| 7540| ||:diagtext:`destination for` || ||:diagtext:`primitive-default-initialize`|| 7541| |+-----------------------------+| |+----------------------------------------+| 7542| ||:diagtext:`source of` || ||:diagtext:`primitive-copy` || 7543| |+-----------------------------+| |+----------------------------------------+| 7544| ||:diagtext:`first operand of` || | | 7545| |+-----------------------------+| | | 7546| ||:diagtext:`second operand of`|| | | 7547| |+-----------------------------+| | | 7548+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 7549 7550 7551-Wnsconsumed-mismatch 7552--------------------- 7553This diagnostic is enabled by default. 7554 7555**Diagnostic text:** 7556 7557+---------------------------------------------------------------------------------------------------------------+ 7558|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`| 7559+---------------------------------------------------------------------------------------------------------------+ 7560 7561 7562-Wnsreturns-mismatch 7563-------------------- 7564This diagnostic is enabled by default. 7565 7566**Diagnostic text:** 7567 7568+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 7569|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`| 7570| ||:diagtext:`not\_retained`|| | 7571| |+-------------------------+| | 7572| ||:diagtext:`retained` || | 7573| |+-------------------------+| | 7574+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 7575 7576 7577-Wnull-arithmetic 7578----------------- 7579This diagnostic is enabled by default. 7580 7581**Diagnostic text:** 7582 7583+--------------------------------------------------------------------------+ 7584|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`| 7585+--------------------------------------------------------------------------+ 7586 7587+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 7588|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+| 7589| ||+----------------------------------------------------------+|| 7590| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`||| 7591| ||+----------------------------------------------------------+|| 7592| |+------------------------------------------------------------+| 7593| ||+----------------------------------------------------------+|| 7594| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`||| 7595| ||+----------------------------------------------------------+|| 7596| |+------------------------------------------------------------+| 7597+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 7598 7599 7600-Wnull-character 7601---------------- 7602This diagnostic is enabled by default. 7603 7604**Diagnostic text:** 7605 7606+-----------------------------------------------------------------------------+--------------------+---------------------------+ 7607|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`| 7608| ||:diagtext:`char` || | 7609| |+------------------+| | 7610| ||:diagtext:`string`|| | 7611| |+------------------+| | 7612+-----------------------------------------------------------------------------+--------------------+---------------------------+ 7613 7614+-------------------------------------------------------------+ 7615|:warning:`warning:` |nbsp| :diagtext:`null character ignored`| 7616+-------------------------------------------------------------+ 7617 7618 7619-Wnull-conversion 7620----------------- 7621This diagnostic is enabled by default. 7622 7623**Diagnostic text:** 7624 7625+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 7626|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`| 7627| ||:diagtext:`NULL` || | 7628| |+-------------------+| | 7629| ||:diagtext:`nullptr`|| | 7630| |+-------------------+| | 7631+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 7632 7633 7634-Wnull-dereference 7635------------------ 7636This diagnostic is enabled by default. 7637 7638**Diagnostic text:** 7639 7640+------------------------------------------------------------------------------------------------------------+ 7641|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`| 7642+------------------------------------------------------------------------------------------------------------+ 7643 7644+---------------------------------------------------------------------------------------------------------+ 7645|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`| 7646+---------------------------------------------------------------------------------------------------------+ 7647 7648 7649-Wnull-pointer-arithmetic 7650------------------------- 7651**Diagnostic text:** 7652 7653+--------------------------------------------------------------------------------------------------------------------------------+ 7654|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`| 7655+--------------------------------------------------------------------------------------------------------------------------------+ 7656 7657+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 7658|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+| 7659| || || 7660| |+--------------------------------------------+| 7661| || |nbsp| :diagtext:`if the offset is nonzero`|| 7662| |+--------------------------------------------+| 7663+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 7664 7665 7666-Wnullability 7667------------- 7668This diagnostic is enabled by default. 7669 7670**Diagnostic text:** 7671 7672+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7673|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7674+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7675 7676+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7677|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7678+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7679 7680+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7681|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7682+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7683 7684+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7685|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`| 7686+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7687 7688+----------------------------------------------------------------------------------------------+ 7689|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`| 7690+----------------------------------------------------------------------------------------------+ 7691 7692 7693-Wnullability-completeness 7694-------------------------- 7695This diagnostic is enabled by default. 7696 7697Also controls `-Wnullability-completeness-on-arrays`_. 7698 7699**Diagnostic text:** 7700 7701+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 7702|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 7703| ||:diagtext:`pointer` || | 7704| |+--------------------------+| | 7705| ||:diagtext:`block pointer` || | 7706| |+--------------------------+| | 7707| ||:diagtext:`member pointer`|| | 7708| |+--------------------------+| | 7709+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 7710 7711 7712-Wnullability-completeness-on-arrays 7713------------------------------------ 7714This diagnostic is enabled by default. 7715 7716**Diagnostic text:** 7717 7718+----------------------------------------------------------------------------------------------------------------------------------------------+ 7719|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 7720+----------------------------------------------------------------------------------------------------------------------------------------------+ 7721 7722 7723-Wnullability-declspec 7724---------------------- 7725This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error. 7726 7727**Diagnostic text:** 7728 7729+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 7730|:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`| 7731| ||:diagtext:`pointer` || | 7732| |+-----------------------------------+| | 7733| ||:diagtext:`block pointer` || | 7734| |+-----------------------------------+| | 7735| ||:diagtext:`member pointer` || | 7736| |+-----------------------------------+| | 7737| ||:diagtext:`function pointer` || | 7738| |+-----------------------------------+| | 7739| ||:diagtext:`member function pointer`|| | 7740| |+-----------------------------------+| | 7741+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 7742 7743 7744-Wnullability-extension 7745----------------------- 7746**Diagnostic text:** 7747 7748+---------------------------------------------------------------------------------------------------------------------------------+ 7749|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`| 7750+---------------------------------------------------------------------------------------------------------------------------------+ 7751 7752 7753-Wnullability-inferred-on-nested-type 7754------------------------------------- 7755This diagnostic is enabled by default. 7756 7757**Diagnostic text:** 7758 7759+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 7760|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`| 7761| ||:diagtext:`array` || | 7762| |+---------------------+| | 7763| ||:diagtext:`reference`|| | 7764| |+---------------------+| | 7765+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 7766 7767 7768-Wnullable-to-nonnull-conversion 7769-------------------------------- 7770**Diagnostic text:** 7771 7772+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7773|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`| 7774+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7775 7776 7777-Wobjc-autosynthesis-property-ivar-name-match 7778--------------------------------------------- 7779This diagnostic is enabled by default. 7780 7781**Diagnostic text:** 7782 7783+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 7784|:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`| 7785| || || | 7786| |+-----------------------+| | 7787| ||:diagtext:`synthesized`|| | 7788| |+-----------------------+| | 7789+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 7790 7791 7792-Wobjc-circular-container 7793------------------------- 7794This diagnostic is enabled by default. 7795 7796**Diagnostic text:** 7797 7798+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7799|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`| 7800+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7801 7802 7803-Wobjc-cocoa-api 7804---------------- 7805Synonym for `-Wobjc-redundant-api-use`_. 7806 7807 7808-Wobjc-designated-initializers 7809------------------------------ 7810This diagnostic is enabled by default. 7811 7812**Diagnostic text:** 7813 7814+-----------------------------------------------------------------------------------------------------------------------------------+ 7815|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`| 7816+-----------------------------------------------------------------------------------------------------------------------------------+ 7817 7818+--------------------------------------------------------------------------------------------------+ 7819|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`| 7820+--------------------------------------------------------------------------------------------------+ 7821 7822+--------------------------------------------------------------------------------------------------------------------+ 7823|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`| 7824+--------------------------------------------------------------------------------------------------------------------+ 7825 7826+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7827|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 7828+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7829 7830+-----------------------------------------------------------------------------------------------------------+ 7831|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`| 7832+-----------------------------------------------------------------------------------------------------------+ 7833 7834+----------------------------------------------------------------------------------------------------------+ 7835|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`| 7836+----------------------------------------------------------------------------------------------------------+ 7837 7838 7839-Wobjc-flexible-array 7840--------------------- 7841This diagnostic is enabled by default. 7842 7843**Diagnostic text:** 7844 7845+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7846|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`| 7847+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7848 7849+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7850|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`| 7851+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7852 7853 7854-Wobjc-forward-class-redefinition 7855--------------------------------- 7856This diagnostic is enabled by default. 7857 7858**Diagnostic text:** 7859 7860+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7861|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`| 7862+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7863 7864 7865-Wobjc-interface-ivars 7866---------------------- 7867**Diagnostic text:** 7868 7869+-------------------------------------------------------------------------------------------------------+ 7870|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`| 7871+-------------------------------------------------------------------------------------------------------+ 7872 7873 7874-Wobjc-literal-compare 7875---------------------- 7876This diagnostic is enabled by default. 7877 7878Also controls `-Wobjc-string-compare`_. 7879 7880**Diagnostic text:** 7881 7882+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 7883|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`| 7884| ||:diagtext:`an array literal` || | 7885| |+--------------------------------+| | 7886| ||:diagtext:`a dictionary literal`|| | 7887| |+--------------------------------+| | 7888| ||:diagtext:`a numeric literal` || | 7889| |+--------------------------------+| | 7890| ||:diagtext:`a boxed expression` || | 7891| |+--------------------------------+| | 7892| || || | 7893| |+--------------------------------+| | 7894+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 7895 7896 7897-Wobjc-literal-conversion 7898------------------------- 7899This diagnostic is enabled by default. 7900 7901**Diagnostic text:** 7902 7903+-------------------------------------------------------------------------------------------------------------------------+ 7904|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`| 7905+-------------------------------------------------------------------------------------------------------------------------+ 7906 7907+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 7908|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`| 7909| ||:diagtext:`array element type` || | 7910| |+---------------------------------+| | 7911| ||:diagtext:`dictionary key type` || | 7912| |+---------------------------------+| | 7913| ||:diagtext:`dictionary value type`|| | 7914| |+---------------------------------+| | 7915+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 7916 7917 7918-Wobjc-macro-redefinition 7919------------------------- 7920This diagnostic is enabled by default. 7921 7922**Diagnostic text:** 7923 7924+-------------------------------------------------------------------------------------------+ 7925|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`| 7926+-------------------------------------------------------------------------------------------+ 7927 7928 7929-Wobjc-messaging-id 7930------------------- 7931**Diagnostic text:** 7932 7933+---------------------------------------------------------------+ 7934|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`| 7935+---------------------------------------------------------------+ 7936 7937 7938-Wobjc-method-access 7939-------------------- 7940This diagnostic is enabled by default. 7941 7942**Diagnostic text:** 7943 7944+---------------------------------------------------------------------------------------------------------------------------------------+ 7945|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 7946+---------------------------------------------------------------------------------------------------------------------------------------+ 7947 7948+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7949|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 7950+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7951 7952+------------------------------------------------------------------------------------------------------------------------------------------+ 7953|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 7954+------------------------------------------------------------------------------------------------------------------------------------------+ 7955 7956+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7957|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 7958+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7959 7960+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 7961|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`| 7962+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 7963 7964+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 7965|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`| 7966+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 7967 7968 7969-Wobjc-missing-property-synthesis 7970--------------------------------- 7971**Diagnostic text:** 7972 7973+------------------------------------------------------------------------------------------------------------------+ 7974|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`| 7975+------------------------------------------------------------------------------------------------------------------+ 7976 7977 7978-Wobjc-missing-super-calls 7979-------------------------- 7980This diagnostic is enabled by default. 7981 7982**Diagnostic text:** 7983 7984+-------------------------------------------------------------------------------------------------------------------+ 7985|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`| 7986+-------------------------------------------------------------------------------------------------------------------+ 7987 7988 7989-Wobjc-multiple-method-names 7990---------------------------- 7991This diagnostic is enabled by default. 7992 7993**Diagnostic text:** 7994 7995+--------------------------------------------------------------------------------------------------------------+ 7996|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 7997+--------------------------------------------------------------------------------------------------------------+ 7998 7999 8000-Wobjc-noncopy-retain-block-property 8001------------------------------------ 8002This diagnostic is enabled by default. 8003 8004**Diagnostic text:** 8005 8006+--------------------------------------------------------------------------------------------------------------------+ 8007|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`| 8008+--------------------------------------------------------------------------------------------------------------------+ 8009 8010 8011-Wobjc-nonunified-exceptions 8012---------------------------- 8013This diagnostic is enabled by default. 8014 8015**Diagnostic text:** 8016 8017+-----------------------------------------------------------------------------------------------------------------------------+ 8018|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`| 8019+-----------------------------------------------------------------------------------------------------------------------------+ 8020 8021 8022-Wobjc-property-assign-on-object-type 8023------------------------------------- 8024**Diagnostic text:** 8025 8026+--------------------------------------------------------------------------------------------------------------------------------------------+ 8027|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`| 8028+--------------------------------------------------------------------------------------------------------------------------------------------+ 8029 8030 8031-Wobjc-property-implementation 8032------------------------------ 8033This diagnostic is enabled by default. 8034 8035**Diagnostic text:** 8036 8037+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8038|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`| 8039+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8040 8041+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8042|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 8043+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8044 8045+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8046|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`| 8047+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8048 8049+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8050|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 8051+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8052 8053 8054-Wobjc-property-implicit-mismatch 8055--------------------------------- 8056This diagnostic is enabled by default. 8057 8058**Diagnostic text:** 8059 8060+---------------------------------------------------------------------------------------------------------------------------------------+ 8061|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`| 8062+---------------------------------------------------------------------------------------------------------------------------------------+ 8063 8064 8065-Wobjc-property-matches-cocoa-ownership-rule 8066-------------------------------------------- 8067This diagnostic is enabled by default. 8068 8069**Diagnostic text:** 8070 8071+-------------------------------------------------------------------------------------------------------------+ 8072|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`| 8073+-------------------------------------------------------------------------------------------------------------+ 8074 8075 8076-Wobjc-property-no-attribute 8077---------------------------- 8078This diagnostic is enabled by default. 8079 8080**Diagnostic text:** 8081 8082+-----------------------------------------------------------------------------------------------------+ 8083|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`| 8084+-----------------------------------------------------------------------------------------------------+ 8085 8086+--------------------------------------------------------------------------------------------------------------------+ 8087|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`| 8088+--------------------------------------------------------------------------------------------------------------------+ 8089 8090 8091-Wobjc-property-synthesis 8092------------------------- 8093This diagnostic is enabled by default. 8094 8095**Diagnostic text:** 8096 8097+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8098|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`| 8099+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8100 8101+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8102|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`| 8103+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8104 8105+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8106|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`| 8107+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8108 8109 8110-Wobjc-protocol-method-implementation 8111------------------------------------- 8112This diagnostic is enabled by default. 8113 8114**Diagnostic text:** 8115 8116+----------------------------------------------------------------------------------------------------------------------------+ 8117|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`| 8118+----------------------------------------------------------------------------------------------------------------------------+ 8119 8120 8121-Wobjc-protocol-property-synthesis 8122---------------------------------- 8123This diagnostic is enabled by default. 8124 8125**Diagnostic text:** 8126 8127+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8128|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`| 8129+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8130 8131 8132-Wobjc-protocol-qualifiers 8133-------------------------- 8134This diagnostic is enabled by default. 8135 8136**Diagnostic text:** 8137 8138+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8139|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`| 8140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8141 8142 8143-Wobjc-readonly-with-setter-property 8144------------------------------------ 8145This diagnostic is enabled by default. 8146 8147**Diagnostic text:** 8148 8149+-----------------------------------------------------------------------------------------+ 8150|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`| 8151+-----------------------------------------------------------------------------------------+ 8152 8153 8154-Wobjc-redundant-api-use 8155------------------------ 8156Synonym for `-Wobjc-redundant-literal-use`_. 8157 8158 8159-Wobjc-redundant-literal-use 8160---------------------------- 8161This diagnostic is enabled by default. 8162 8163**Diagnostic text:** 8164 8165+-------------------------------------------------------------------------------------------------------------------+ 8166|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`| 8167+-------------------------------------------------------------------------------------------------------------------+ 8168 8169 8170-Wobjc-root-class 8171----------------- 8172This diagnostic is enabled by default. 8173 8174**Diagnostic text:** 8175 8176+-------------------------------------------------------------------------------------------------------------------------------+ 8177|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`| 8178+-------------------------------------------------------------------------------------------------------------------------------+ 8179 8180 8181-Wobjc-string-compare 8182--------------------- 8183This diagnostic is enabled by default. 8184 8185**Diagnostic text:** 8186 8187+---------------------------------------------------------------------------------------------------+ 8188|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`| 8189+---------------------------------------------------------------------------------------------------+ 8190 8191 8192-Wobjc-string-concatenation 8193--------------------------- 8194This diagnostic is enabled by default. 8195 8196**Diagnostic text:** 8197 8198+-------------------------------------------------------------------------------------------------------------------------+ 8199|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`| 8200+-------------------------------------------------------------------------------------------------------------------------+ 8201 8202 8203-Wobjc-unsafe-perform-selector 8204------------------------------ 8205This diagnostic is enabled by default. 8206 8207**Diagnostic text:** 8208 8209+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 8210|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`| 8211| ||:diagtext:`struct`|| | 8212| |+------------------+| | 8213| ||:diagtext:`union` || | 8214| |+------------------+| | 8215| ||:diagtext:`vector`|| | 8216| |+------------------+| | 8217+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 8218 8219 8220-Wodr 8221----- 8222This diagnostic is enabled by default. 8223 8224**Diagnostic text:** 8225 8226+--------------------------------------------------------------------------------------------------------------------------------------------------+ 8227|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`| 8228+--------------------------------------------------------------------------------------------------------------------------------------------------+ 8229 8230 8231-Wold-style-cast 8232---------------- 8233**Diagnostic text:** 8234 8235+------------------------------------------------------------+ 8236|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`| 8237+------------------------------------------------------------+ 8238 8239 8240-Wold-style-definition 8241---------------------- 8242This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8243 8244-Wopencl-unsupported-rgba 8245------------------------- 8246This diagnostic is enabled by default. 8247 8248**Diagnostic text:** 8249 8250+----------------------------------------------------------------------------------------------------------------------------+ 8251|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`| 8252+----------------------------------------------------------------------------------------------------------------------------+ 8253 8254 8255-Wopenmp-clauses 8256---------------- 8257This diagnostic is enabled by default. 8258 8259**Diagnostic text:** 8260 8261+-------------------------------------------------------------------------------------------------------------------------+ 8262|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`| 8263+-------------------------------------------------------------------------------------------------------------------------+ 8264 8265+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 8266|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`| 8267| || || | 8268| |+-------------------------------------------------+| | 8269| ||:diagtext:`and other variables in clause` |nbsp| || | 8270| |+-------------------------------------------------+| | 8271+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 8272 8273 8274-Wopenmp-loop-form 8275------------------ 8276This diagnostic is enabled by default. 8277 8278**Diagnostic text:** 8279 8280+-----------------------------------------------------------------------------------------------------------------------------------------+ 8281|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`| 8282+-----------------------------------------------------------------------------------------------------------------------------------------+ 8283 8284+-----------------------------------------------------------------------------------------------------------------------------+ 8285|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`| 8286+-----------------------------------------------------------------------------------------------------------------------------+ 8287 8288 8289-Wopenmp-target 8290--------------- 8291This diagnostic is enabled by default. 8292 8293**Diagnostic text:** 8294 8295+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8296|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`| 8297+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8298 8299+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8300|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`| 8301+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8302 8303+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8304|:warning:`warning:` |nbsp| :diagtext:`Non-trivial type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is mapped, only trivial types are guaranteed to be mapped correctly`| 8305+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8306 8307+-----------------------------------------------------------------------------------------------+ 8308|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`| 8309+-----------------------------------------------------------------------------------------------+ 8310 8311 8312-Woption-ignored 8313---------------- 8314This diagnostic is enabled by default. 8315 8316**Diagnostic text:** 8317 8318+------------------------------------------------------------------------------------------------------------------------------------------+ 8319|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`| 8320+------------------------------------------------------------------------------------------------------------------------------------------+ 8321 8322+-------------------------------------------------------------------------------------------------------------------------------+ 8323|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`| 8324+-------------------------------------------------------------------------------------------------------------------------------+ 8325 8326+----------------------------------------------------------------------------------------------------------------------------+ 8327|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`| 8328+----------------------------------------------------------------------------------------------------------------------------+ 8329 8330+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 8331|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 8332| || || | 8333| |+-----------------------------------------+| | 8334| ||:diagtext:`the implicit usage of` |nbsp| || | 8335| |+-----------------------------------------+| | 8336+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 8337 8338+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 8339|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`| 8340| ||:diagtext:`implicit usage of`|| | 8341| |+-----------------------------+| | 8342| || || | 8343| |+-----------------------------+| | 8344+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 8345 8346+----------------------------------------------------------------------------------------------+ 8347|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`| 8348+----------------------------------------------------------------------------------------------+ 8349 8350 8351-Wordered-compare-function-pointers 8352----------------------------------- 8353This diagnostic is enabled by default. 8354 8355**Diagnostic text:** 8356 8357+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8358|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 8359+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8360 8361 8362-Wout-of-line-declaration 8363------------------------- 8364This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error. 8365 8366**Diagnostic text:** 8367 8368+-------------------------------------------------------------------------------------------+ 8369|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`| 8370+-------------------------------------------------------------------------------------------+ 8371 8372 8373-Wout-of-scope-function 8374----------------------- 8375This diagnostic is enabled by default. 8376 8377**Diagnostic text:** 8378 8379+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 8380|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+| 8381| || || 8382| |+-------------------------------------------------------------------------------------+| 8383| || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`|| 8384| |+-------------------------------------------------------------------------------------+| 8385+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 8386 8387 8388-Wover-aligned 8389-------------- 8390**Diagnostic text:** 8391 8392+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8393|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`| 8394+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8395 8396 8397-Woverflow 8398---------- 8399This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8400 8401-Woverlength-strings 8402-------------------- 8403**Diagnostic text:** 8404 8405+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 8406|:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`| 8407| ||:diagtext:`C90` || | 8408| |+-------------------+| | 8409| ||:diagtext:`ISO C99`|| | 8410| |+-------------------+| | 8411| ||:diagtext:`C++` || | 8412| |+-------------------+| | 8413+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 8414 8415 8416-Woverloaded-shift-op-parentheses 8417--------------------------------- 8418This diagnostic is enabled by default. 8419 8420**Diagnostic text:** 8421 8422+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 8423|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`| 8424| ||:diagtext:`>>`|| | 8425| |+--------------+| | 8426| ||:diagtext:`<<`|| | 8427| |+--------------+| | 8428+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 8429 8430 8431-Woverloaded-virtual 8432-------------------- 8433**Diagnostic text:** 8434 8435+-----------------------------------------------------------------------------------------------+-----------------------+ 8436|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+| 8437| ||:diagtext:`function` || 8438| |+---------------------+| 8439| ||:diagtext:`functions`|| 8440| |+---------------------+| 8441+-----------------------------------------------------------------------------------------------+-----------------------+ 8442 8443 8444-Woverride-init 8445--------------- 8446Synonym for `-Winitializer-overrides`_. 8447 8448 8449-Woverride-module 8450----------------- 8451This diagnostic is enabled by default. 8452 8453**Diagnostic text:** 8454 8455+-------------------------------------------------------------------------------------------------------+ 8456|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`| 8457+-------------------------------------------------------------------------------------------------------+ 8458 8459 8460-Woverriding-method-mismatch 8461---------------------------- 8462**Diagnostic text:** 8463 8464+-------------------------------------------------------------------------------------------------------------------------------------------+ 8465|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`| 8466+-------------------------------------------------------------------------------------------------------------------------------------------+ 8467 8468+------------------------------------------------------------------------------------------------------------+ 8469|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`| 8470+------------------------------------------------------------------------------------------------------------+ 8471 8472+----------------------------------------------------------------------------------------------------------------------------------------+ 8473|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`| 8474+----------------------------------------------------------------------------------------------------------------------------------------+ 8475 8476+--------------------------------------------------------------------------------------------------------+ 8477|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`| 8478+--------------------------------------------------------------------------------------------------------+ 8479 8480+--------------------------------------------------------------------------------------------------------+ 8481|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`| 8482+--------------------------------------------------------------------------------------------------------+ 8483 8484+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8485|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 8486+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8487 8488+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8489|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 8490+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8491 8492 8493-Woverriding-t-option 8494--------------------- 8495This diagnostic is enabled by default. 8496 8497**Diagnostic text:** 8498 8499+---------------------------------------------------------------------------------------------------------------------------+ 8500|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`| 8501+---------------------------------------------------------------------------------------------------------------------------+ 8502 8503 8504-Wpacked 8505-------- 8506**Diagnostic text:** 8507 8508+--------------------------------------------------------------------------------------------------+ 8509|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`| 8510+--------------------------------------------------------------------------------------------------+ 8511 8512 8513-Wpadded 8514-------- 8515**Diagnostic text:** 8516 8517+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 8518|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`| 8519| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 8520| |+---------------------+| |+----------------+|+-------------+| | 8521| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 8522| |+---------------------+| |+----------------+|+-------------+| | 8523| ||:diagtext:`class` || | | | | 8524| |+---------------------+| | | | | 8525+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 8526 8527+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 8528|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`| 8529| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 8530| |+---------------------+| |+----------------+|+-------------+| | 8531| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 8532| |+---------------------+| |+----------------+|+-------------+| | 8533| ||:diagtext:`class` || | | | | 8534| |+---------------------+| | | | | 8535+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 8536 8537+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 8538|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`| 8539| ||:diagtext:`byte`||| || | 8540| |+----------------+|+-------------+| | 8541| ||:diagtext:`bit` |||:diagtext:`s`|| | 8542| |+----------------+|+-------------+| | 8543+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 8544 8545 8546-Wparentheses 8547------------- 8548This diagnostic is enabled by default. 8549 8550Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_. 8551 8552**Diagnostic text:** 8553 8554+-----------------------------------------------------------------------------------------------------------+ 8555|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 8556+-----------------------------------------------------------------------------------------------------------+ 8557 8558+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8559|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`| 8560+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8561 8562+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8563|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`| 8564+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8565 8566 8567-Wparentheses-equality 8568---------------------- 8569This diagnostic is enabled by default. 8570 8571**Diagnostic text:** 8572 8573+--------------------------------------------------------------------------------------+ 8574|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`| 8575+--------------------------------------------------------------------------------------+ 8576 8577 8578-Wpartial-availability 8579---------------------- 8580Synonym for `-Wunguarded-availability`_. 8581 8582 8583-Rpass 8584------ 8585**Diagnostic text:** 8586 8587The text of this diagnostic is not controlled by Clang. 8588 8589 8590-Rpass-analysis 8591--------------- 8592**Diagnostic text:** 8593 8594The text of this diagnostic is not controlled by Clang. 8595 8596+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8597|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`| 8598+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8599 8600+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8601|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`| 8602+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8603 8604 8605-Wpass-failed 8606------------- 8607This diagnostic is enabled by default. 8608 8609**Diagnostic text:** 8610 8611The text of this diagnostic is not controlled by Clang. 8612 8613 8614-Rpass-missed 8615------------- 8616**Diagnostic text:** 8617 8618The text of this diagnostic is not controlled by Clang. 8619 8620 8621-Wpch-date-time 8622--------------- 8623This diagnostic is enabled by default. 8624 8625**Diagnostic text:** 8626 8627+---------------------------+--------------------------------+-----------------------------------------------------+ 8628|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`| 8629| ||:diagtext:`precompiled header`|| | 8630| |+------------------------------+| | 8631| ||:diagtext:`module` || | 8632| |+------------------------------+| | 8633+---------------------------+--------------------------------+-----------------------------------------------------+ 8634 8635 8636-Wpedantic 8637---------- 8638Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_. 8639 8640**Diagnostic text:** 8641 8642+-----------------------------------------------------------------------------------------------------+ 8643|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 8644+-----------------------------------------------------------------------------------------------------+ 8645 8646+------------------------------------------------------------------------+ 8647|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 8648+------------------------------------------------------------------------+ 8649 8650+--------------------------------------------------------------------------+ 8651|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 8652+--------------------------------------------------------------------------+ 8653 8654+--------------------------------------------------------------------------------+ 8655|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 8656+--------------------------------------------------------------------------------+ 8657 8658+--------------------------------------------------------------------------------------------+ 8659|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 8660+--------------------------------------------------------------------------------------------+ 8661 8662+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 8663|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 8664| ||:diagtext:`private` || 8665| |+---------------------+| 8666| ||:diagtext:`protected`|| 8667| |+---------------------+| 8668+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 8669 8670+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 8671|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`| 8672| ||:diagtext:`struct`|| | 8673| |+------------------+| | 8674| ||:diagtext:`union` || | 8675| |+------------------+| | 8676+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 8677 8678+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 8679|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 8680| ||:diagtext:`copying variable` || | 8681| |+----------------------------------------------------+| | 8682| ||:diagtext:`copying parameter` || | 8683| |+----------------------------------------------------+| | 8684| ||:diagtext:`returning object` || | 8685| |+----------------------------------------------------+| | 8686| ||:diagtext:`initializing statement expression result`|| | 8687| |+----------------------------------------------------+| | 8688| ||:diagtext:`throwing object` || | 8689| |+----------------------------------------------------+| | 8690| ||:diagtext:`copying member subobject` || | 8691| |+----------------------------------------------------+| | 8692| ||:diagtext:`copying array element` || | 8693| |+----------------------------------------------------+| | 8694| ||:diagtext:`allocating object` || | 8695| |+----------------------------------------------------+| | 8696| ||:diagtext:`copying temporary` || | 8697| |+----------------------------------------------------+| | 8698| ||:diagtext:`initializing base subobject` || | 8699| |+----------------------------------------------------+| | 8700| ||:diagtext:`initializing vector element` || | 8701| |+----------------------------------------------------+| | 8702| ||:diagtext:`capturing value` || | 8703| |+----------------------------------------------------+| | 8704+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 8705 8706+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8707|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 8708+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8709 8710+--------------------------------------------------------------------------------------------------------------------------------------+ 8711|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`| 8712+--------------------------------------------------------------------------------------------------------------------------------------+ 8713 8714+--------------------------------------------------------------------------------------------------------------------------+ 8715|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| 8716+--------------------------------------------------------------------------------------------------------------------------+ 8717 8718+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8719|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`| 8720+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8721 8722+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 8723|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 8724| ||:diagtext:`function`|| | 8725| |+--------------------+| | 8726| ||:diagtext:`variable`|| | 8727| |+--------------------+| | 8728+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 8729 8730+---------------------------------------------------------------------------------------+ 8731|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`| 8732+---------------------------------------------------------------------------------------+ 8733 8734+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 8735|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`| 8736| ||:diagtext:`small`|| | 8737| |+-----------------+| | 8738| ||:diagtext:`large`|| | 8739| |+-----------------+| | 8740+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 8741 8742+--------------------------------------------------------------------------------------------------+ 8743|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`| 8744+--------------------------------------------------------------------------------------------------+ 8745 8746+-----------------------------------------------------------------------------------------------+ 8747|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 8748+-----------------------------------------------------------------------------------------------+ 8749 8750+-------------------------------------------------------------------------------+ 8751|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 8752+-------------------------------------------------------------------------------+ 8753 8754+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 8755|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 8756| ||:diagtext:`sizeof` || | 8757| |+---------------------------------------------------+| | 8758| ||:diagtext:`alignof` || | 8759| |+---------------------------------------------------+| | 8760| ||:diagtext:`vec\_step` || | 8761| |+---------------------------------------------------+| | 8762| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 8763| |+---------------------------------------------------+| | 8764| ||:diagtext:`\_\_alignof` || | 8765| |+---------------------------------------------------+| | 8766+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 8767 8768+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 8769|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 8770| ||:diagtext:`sizeof` || | 8771| |+---------------------------------------------------+| | 8772| ||:diagtext:`alignof` || | 8773| |+---------------------------------------------------+| | 8774| ||:diagtext:`vec\_step` || | 8775| |+---------------------------------------------------+| | 8776| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 8777| |+---------------------------------------------------+| | 8778| ||:diagtext:`\_\_alignof` || | 8779| |+---------------------------------------------------+| | 8780+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 8781 8782+-------------------------------------------------------------------------------------------+ 8783|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`| 8784+-------------------------------------------------------------------------------------------+ 8785 8786+----------------------------------------------------------------------------------------+ 8787|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 8788+----------------------------------------------------------------------------------------+ 8789 8790+-------------------------------------------------------------------------------------------------------+ 8791|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`| 8792+-------------------------------------------------------------------------------------------------------+ 8793 8794+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8795|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`| 8796+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8797 8798+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8799|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 8800+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8801 8802+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 8803|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 8804| || |nbsp| :diagtext:`a`|| || || | 8805| |+---------------------+| |+-------------+| | 8806| || || ||:diagtext:`s`|| | 8807| |+---------------------+| |+-------------+| | 8808+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 8809 8810+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 8811|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 8812| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 8813| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 8814| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 8815| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 8816| | | | | | | | | ||+-----------------------------------------------+|| | 8817| | | | | | | | | |+-------------------------------------------------+| | 8818+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 8819 8820+-----------------------------------------------------------------------------------------------------------------------+ 8821|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`| 8822+-----------------------------------------------------------------------------------------------------------------------+ 8823 8824+--------------------------------------------------------------------------------------------------------------------+ 8825|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`| 8826+--------------------------------------------------------------------------------------------------------------------+ 8827 8828+------------------------------------------------------------------------------------------------------------+ 8829|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`| 8830+------------------------------------------------------------------------------------------------------------+ 8831 8832+-------------------------------------------------------------------------------------------------------------+ 8833|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`| 8834+-------------------------------------------------------------------------------------------------------------+ 8835 8836+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 8837|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 8838| ||:diagtext:`integral` || | 8839| |+-----------------------+| | 8840| ||:diagtext:`enumeration`|| | 8841| |+-----------------------+| | 8842+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 8843 8844+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 8845|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`| 8846| ||:diagtext:`assigning to different types` || | 8847| |+--------------------------------------------------------------+| | 8848| ||:diagtext:`passing to parameter of different type` || | 8849| |+--------------------------------------------------------------+| | 8850| ||:diagtext:`returning from function with different return type`|| | 8851| |+--------------------------------------------------------------+| | 8852| ||:diagtext:`converting between types` || | 8853| |+--------------------------------------------------------------+| | 8854| ||:diagtext:`initializing with expression of different type` || | 8855| |+--------------------------------------------------------------+| | 8856| ||:diagtext:`sending to parameter of different type` || | 8857| |+--------------------------------------------------------------+| | 8858| ||:diagtext:`casting between types` || | 8859| |+--------------------------------------------------------------+| | 8860+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 8861 8862+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 8863|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 8864+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 8865 8866+--------------------------------------------------------------------------------------------------+ 8867|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`| 8868+--------------------------------------------------------------------------------------------------+ 8869 8870+-------------------------------------------------------------------------------------------------------------------------------------+ 8871|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`| 8872+-------------------------------------------------------------------------------------------------------------------------------------+ 8873 8874+---------------------------------------------------------------------------------------------------------------------------+ 8875|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 8876+---------------------------------------------------------------------------------------------------------------------------+ 8877 8878+---------------------------------------------------------------------------------------------------------------------------+ 8879|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 8880+---------------------------------------------------------------------------------------------------------------------------+ 8881 8882+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 8883|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 8884| ||:diagtext:`struct`|| | 8885| |+------------------+| | 8886| ||:diagtext:`union` || | 8887| |+------------------+| | 8888+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 8889 8890+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 8891|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 8892| ||:diagtext:`type` || | 8893| |+---------------------------+| | 8894| ||:diagtext:`underlying type`|| | 8895| |+---------------------------+| | 8896+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 8897 8898+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 8899|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`| 8900| ||:diagtext:`function`|| | 8901| |+--------------------+| | 8902| ||:diagtext:`method` || | 8903| |+--------------------+| | 8904| ||:diagtext:`block` || | 8905| |+--------------------+| | 8906+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 8907 8908+--------------------------------------------------------------------------------------------------+ 8909|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`| 8910+--------------------------------------------------------------------------------------------------+ 8911 8912+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 8913|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 8914| ||:diagtext:`qualifier in` |nbsp| || || || | 8915| |+--------------------------------+| |+---------------------+| | 8916| ||:diagtext:`static` |nbsp| || || || | 8917| |+--------------------------------+| |+---------------------+| | 8918| || || ||:diagtext:`'\[\*\] '`|| | 8919| |+--------------------------------+| |+---------------------+| | 8920+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 8921 8922+--------------------------------------------------------+------------------------------------------------+ 8923|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 8924| ||:diagtext:`outside of a function` || 8925| |+----------------------------------------------+| 8926| ||+--------------------------------------------+|| 8927| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 8928| ||+--------------------------------------------+|| 8929| |+----------------------------------------------+| 8930| ||:diagtext:`inside instance variable list` || 8931| |+----------------------------------------------+| 8932| ||:diagtext:`after member function definition` || 8933| |+----------------------------------------------+| 8934+--------------------------------------------------------+------------------------------------------------+ 8935 8936+-----------------------------------------------------------------------------------------+ 8937|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`| 8938+-----------------------------------------------------------------------------------------+ 8939 8940+----------------------------------------------------------------------------------------+ 8941|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`| 8942+----------------------------------------------------------------------------------------+ 8943 8944+-------------------------------------------------------------------------------------------------+ 8945|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 8946+-------------------------------------------------------------------------------------------------+ 8947 8948+-----------------------------------------------------------------------------------+ 8949|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 8950+-----------------------------------------------------------------------------------+ 8951 8952+-------------------------------------------------------------------------------------------------------+ 8953|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 8954+-------------------------------------------------------------------------------------------------------+ 8955 8956+--------------------------------------------------------------------------------------------------+ 8957|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 8958+--------------------------------------------------------------------------------------------------+ 8959 8960+-----------------------------------------------------------------------------------------------------------+ 8961|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 8962+-----------------------------------------------------------------------------------------------------------+ 8963 8964+-----------------------------------------------------------------------+ 8965|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 8966+-----------------------------------------------------------------------+ 8967 8968+------------------------------------------------------------------------------------------------+ 8969|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 8970+------------------------------------------------------------------------------------------------+ 8971 8972+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 8973|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 8974| ||:diagtext:`a namespace` || | 8975| |+-------------------------+| | 8976| ||:diagtext:`an enumerator`|| | 8977| |+-------------------------+| | 8978+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 8979 8980+-----------------------------------------------------------------------------+ 8981|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 8982+-----------------------------------------------------------------------------+ 8983 8984+------------------------------------------------------------+ 8985|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 8986+------------------------------------------------------------+ 8987 8988+-----------------------------------------------------------------------------------+ 8989|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 8990+-----------------------------------------------------------------------------------+ 8991 8992+----------------------------------------------------------------+ 8993|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 8994+----------------------------------------------------------------+ 8995 8996+------------------------------------------------------------------------------------------------------------+ 8997|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`| 8998+------------------------------------------------------------------------------------------------------------+ 8999 9000+---------------------------------------------------------------------------------------+ 9001|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 9002+---------------------------------------------------------------------------------------+ 9003 9004+----------------------------------------------------------------------------------------+ 9005|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 9006+----------------------------------------------------------------------------------------+ 9007 9008+---------------------------------------------------------------------+ 9009|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`| 9010+---------------------------------------------------------------------+ 9011 9012+-----------------------------------------------------------------------+ 9013|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`| 9014+-----------------------------------------------------------------------+ 9015 9016+-----------------------------------------------------------------------+ 9017|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`| 9018+-----------------------------------------------------------------------+ 9019 9020+----------------------------------------------------------------------------------------------------------------+ 9021|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`| 9022+----------------------------------------------------------------------------------------------------------------+ 9023 9024+------------------------------------------------------------------------+ 9025|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 9026+------------------------------------------------------------------------+ 9027 9028+--------------------------------------------------------------------------------+ 9029|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 9030+--------------------------------------------------------------------------------+ 9031 9032+------------------------------------------------------------------------------+ 9033|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 9034+------------------------------------------------------------------------------+ 9035 9036+----------------------------------------------------------------------------------------------------------------------------------------+ 9037|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`| 9038+----------------------------------------------------------------------------------------------------------------------------------------+ 9039 9040+-------------------------------------------------------------------------------------------------+ 9041|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 9042+-------------------------------------------------------------------------------------------------+ 9043 9044 9045-Wpedantic-core-features 9046------------------------ 9047**Diagnostic text:** 9048 9049+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9050|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`| 9051+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9052 9053 9054-Wpessimizing-move 9055------------------ 9056**Diagnostic text:** 9057 9058+--------------------------------------------------------------------------------------+ 9059|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`| 9060+--------------------------------------------------------------------------------------+ 9061 9062+--------------------------------------------------------------------------------------------------------+ 9063|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`| 9064+--------------------------------------------------------------------------------------------------------+ 9065 9066 9067-Wpointer-arith 9068--------------- 9069Some of the diagnostics controlled by this flag are enabled by default. 9070 9071**Diagnostic text:** 9072 9073+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9074|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 9075| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 9076| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 9077| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 9078| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 9079| | | | | | | | | ||+-----------------------------------------------+|| | 9080| | | | | | | | | |+-------------------------------------------------+| | 9081+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9082 9083+----------------------------------------------------------------------------------------+ 9084|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 9085+----------------------------------------------------------------------------------------+ 9086 9087+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9088|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 9089| || |nbsp| :diagtext:`a`|| || || | 9090| |+---------------------+| |+-------------+| | 9091| || || ||:diagtext:`s`|| | 9092| |+---------------------+| |+-------------+| | 9093+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9094 9095+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9096|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 9097| ||:diagtext:`sizeof` || | 9098| |+---------------------------------------------------+| | 9099| ||:diagtext:`alignof` || | 9100| |+---------------------------------------------------+| | 9101| ||:diagtext:`vec\_step` || | 9102| |+---------------------------------------------------+| | 9103| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9104| |+---------------------------------------------------+| | 9105| ||:diagtext:`\_\_alignof` || | 9106| |+---------------------------------------------------+| | 9107+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9108 9109+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9110|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 9111| ||:diagtext:`sizeof` || | 9112| |+---------------------------------------------------+| | 9113| ||:diagtext:`alignof` || | 9114| |+---------------------------------------------------+| | 9115| ||:diagtext:`vec\_step` || | 9116| |+---------------------------------------------------+| | 9117| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9118| |+---------------------------------------------------+| | 9119| ||:diagtext:`\_\_alignof` || | 9120| |+---------------------------------------------------+| | 9121+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9122 9123+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9124|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`| 9125+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9126 9127 9128-Wpointer-bool-conversion 9129------------------------- 9130This diagnostic is enabled by default. 9131 9132**Diagnostic text:** 9133 9134+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 9135|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`| 9136| ||:diagtext:`function call`|| | 9137| |+-------------------------+| | 9138| ||:diagtext:`parameter` || | 9139| |+-------------------------+| | 9140+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 9141 9142+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 9143|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`| 9144| || || | 9145| |+----------------------------+| | 9146| || |nbsp| :diagtext:`function`|| | 9147| |+----------------------------+| | 9148| || |nbsp| :diagtext:`array` || | 9149| |+----------------------------+| | 9150+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 9151 9152 9153-Wpointer-integer-compare 9154------------------------- 9155This diagnostic is enabled by default. 9156 9157**Diagnostic text:** 9158 9159+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9160|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 9161+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9162 9163 9164-Wpointer-sign 9165-------------- 9166This diagnostic is enabled by default. 9167 9168**Diagnostic text:** 9169 9170+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 9171|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`| 9172| ||:diagtext:`assigning to different types` || | 9173| |+--------------------------------------------------------------+| | 9174| ||:diagtext:`passing to parameter of different type` || | 9175| |+--------------------------------------------------------------+| | 9176| ||:diagtext:`returning from function with different return type`|| | 9177| |+--------------------------------------------------------------+| | 9178| ||:diagtext:`converting between types` || | 9179| |+--------------------------------------------------------------+| | 9180| ||:diagtext:`initializing with expression of different type` || | 9181| |+--------------------------------------------------------------+| | 9182| ||:diagtext:`sending to parameter of different type` || | 9183| |+--------------------------------------------------------------+| | 9184| ||:diagtext:`casting between types` || | 9185| |+--------------------------------------------------------------+| | 9186+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 9187 9188 9189-Wpointer-to-int-cast 9190--------------------- 9191This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9192 9193-Wpointer-type-mismatch 9194----------------------- 9195This diagnostic is enabled by default. 9196 9197**Diagnostic text:** 9198 9199+------------------------------------------------------------+ 9200|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`| 9201+------------------------------------------------------------+ 9202 9203 9204-Wpotentially-evaluated-expression 9205---------------------------------- 9206This diagnostic is enabled by default. 9207 9208**Diagnostic text:** 9209 9210+----------------------------------------------------------------------------------------------------------------------------------+ 9211|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`| 9212+----------------------------------------------------------------------------------------------------------------------------------+ 9213 9214 9215-Wpragma-clang-attribute 9216------------------------ 9217This diagnostic is enabled by default. 9218 9219**Diagnostic text:** 9220 9221+-------------------------------------------------------------------------------------------------------------------------------------------+ 9222|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`| 9223+-------------------------------------------------------------------------------------------------------------------------------------------+ 9224 9225 9226-Wpragma-once-outside-header 9227---------------------------- 9228This diagnostic is enabled by default. 9229 9230**Diagnostic text:** 9231 9232+----------------------------------------------------------------+ 9233|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`| 9234+----------------------------------------------------------------+ 9235 9236 9237-Wpragma-pack 9238------------- 9239Some of the diagnostics controlled by this flag are enabled by default. 9240 9241Also controls `-Wpragma-pack-suspicious-include`_. 9242 9243**Diagnostic text:** 9244 9245+----------------------------------------------------------------------------------------------------------------+ 9246|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`| 9247+----------------------------------------------------------------------------------------------------------------+ 9248 9249+---------------------------------------------------------------------------------------------+ 9250|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`| 9251+---------------------------------------------------------------------------------------------+ 9252 9253 9254-Wpragma-pack-suspicious-include 9255-------------------------------- 9256**Diagnostic text:** 9257 9258+-------------------------------------------------------------------------------------------------------------------------------------------+ 9259|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`| 9260+-------------------------------------------------------------------------------------------------------------------------------------------+ 9261 9262 9263-Wpragma-system-header-outside-header 9264------------------------------------- 9265This diagnostic is enabled by default. 9266 9267**Diagnostic text:** 9268 9269+----------------------------------------------------------------------------------+ 9270|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`| 9271+----------------------------------------------------------------------------------+ 9272 9273 9274-Wpragmas 9275--------- 9276Some of the diagnostics controlled by this flag are enabled by default. 9277 9278Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_. 9279 9280**Diagnostic text:** 9281 9282+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 9283|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`| 9284| ||:diagtext:`function`|| | 9285| |+--------------------+| | 9286| ||:diagtext:`variable`|| | 9287| |+--------------------+| | 9288+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 9289 9290 9291-Wpredefined-identifier-outside-function 9292---------------------------------------- 9293This diagnostic is enabled by default. 9294 9295**Diagnostic text:** 9296 9297+------------------------------------------------------------------------------------------+ 9298|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`| 9299+------------------------------------------------------------------------------------------+ 9300 9301 9302-Wprivate-extern 9303---------------- 9304This diagnostic is enabled by default. 9305 9306**Diagnostic text:** 9307 9308+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9309|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`| 9310+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9311 9312 9313-Wprivate-header 9314---------------- 9315This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error. 9316 9317**Diagnostic text:** 9318 9319+----------------------------------------------------------------------------------------------------------------+ 9320|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`| 9321+----------------------------------------------------------------------------------------------------------------+ 9322 9323 9324-Wprivate-module 9325---------------- 9326This diagnostic is enabled by default. 9327 9328**Diagnostic text:** 9329 9330+----------------------------------------------------------------------------------------------------------------+ 9331|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`| 9332+----------------------------------------------------------------------------------------------------------------+ 9333 9334+----------------------------------------------------------------------------------------------------------------------------------------+ 9335|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`| 9336+----------------------------------------------------------------------------------------------------------------------------------------+ 9337 9338+----------------------------------------------------------------------------------------------------------------------------------+ 9339|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`| 9340+----------------------------------------------------------------------------------------------------------------------------------+ 9341 9342+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9343|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`| 9344+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9345 9346 9347-Wprofile-instr-missing 9348----------------------- 9349**Diagnostic text:** 9350 9351+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 9352|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`no data`| 9353| || || ||:diagtext:`has` || | 9354| |+-------------+| |+----------------+| | 9355| ||:diagtext:`s`|| ||:diagtext:`have`|| | 9356| |+-------------+| |+----------------+| | 9357+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 9358 9359 9360-Wprofile-instr-out-of-date 9361--------------------------- 9362This diagnostic is enabled by default. 9363 9364**Diagnostic text:** 9365 9366+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 9367|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`| 9368| || || ||:diagtext:`has` || | 9369| |+-------------+| |+----------------+| | 9370| ||:diagtext:`s`|| ||:diagtext:`have`|| | 9371| |+-------------+| |+----------------+| | 9372+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 9373 9374 9375-Wprofile-instr-unprofiled 9376-------------------------- 9377This diagnostic is enabled by default. 9378 9379**Diagnostic text:** 9380 9381+--------------------------------------------------------------------------------------------------------+ 9382|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`| 9383+--------------------------------------------------------------------------------------------------------+ 9384 9385 9386-Wproperty-access-dot-syntax 9387---------------------------- 9388This diagnostic is enabled by default. 9389 9390**Diagnostic text:** 9391 9392+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9393|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`| 9394+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9395 9396 9397-Wproperty-attribute-mismatch 9398----------------------------- 9399This diagnostic is enabled by default. 9400 9401**Diagnostic text:** 9402 9403+-------------------------------------------------------------------------------------------------------------+ 9404|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`| 9405+-------------------------------------------------------------------------------------------------------------+ 9406 9407+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9408|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`| 9409+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9410 9411+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9412|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`| 9413+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9414 9415+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9416|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`| 9417+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9418 9419 9420-Wprotocol 9421---------- 9422This diagnostic is enabled by default. 9423 9424**Diagnostic text:** 9425 9426+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9427|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`| 9428+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9429 9430 9431-Wprotocol-property-synthesis-ambiguity 9432--------------------------------------- 9433This diagnostic is enabled by default. 9434 9435**Diagnostic text:** 9436 9437+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 9438|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`| 9439| ||+-------------------------------------------+ || | 9440| |||:diagtext:`of type` |nbsp| :placeholder:`B`| || | 9441| ||+-------------------------------------------+ || | 9442| |+--------------------------------------------------------------+| | 9443| ||+---------------------------------------------------------+ || | 9444| |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || | 9445| ||+---------------------------------------------------------+ || | 9446| |+--------------------------------------------------------------+| | 9447| ||+------------------------------------------------------------+|| | 9448| |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| | 9449| ||+------------------------------------------------------------+|| | 9450| |+--------------------------------------------------------------+| | 9451| ||+-----------------------------------------------+ || | 9452| |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || | 9453| ||+-----------------------------------------------+ || | 9454| |+--------------------------------------------------------------+| | 9455| ||+-----------------------------------------------+ || | 9456| |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || | 9457| ||+-----------------------------------------------+ || | 9458| |+--------------------------------------------------------------+| | 9459+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 9460 9461 9462-Wqualified-void-return-type 9463---------------------------- 9464This diagnostic is enabled by default. 9465 9466**Diagnostic text:** 9467 9468+---------------------------------------------------------------------------------------------------------+ 9469|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`| 9470+---------------------------------------------------------------------------------------------------------+ 9471 9472 9473-Wquoted-include-in-framework-header 9474------------------------------------ 9475**Diagnostic text:** 9476 9477+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9478|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`| 9479+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9480 9481 9482-Wrange-loop-analysis 9483--------------------- 9484**Diagnostic text:** 9485 9486+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9487|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`| 9488+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9489 9490+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9491|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`| 9492+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9493 9494+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9495|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`| 9496+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9497 9498 9499-Wreadonly-iboutlet-property 9500---------------------------- 9501This diagnostic is enabled by default. 9502 9503**Diagnostic text:** 9504 9505+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9506|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`| 9507+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9508 9509 9510-Wreceiver-expr 9511--------------- 9512This diagnostic is enabled by default. 9513 9514**Diagnostic text:** 9515 9516+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9517|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`| 9518+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9519 9520 9521-Wreceiver-forward-class 9522------------------------ 9523Some of the diagnostics controlled by this flag are enabled by default. 9524 9525**Diagnostic text:** 9526 9527+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9528|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`| 9529+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9530 9531+---------------------------------------------------------------------------------------------------------------------------------------------+ 9532|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`| 9533+---------------------------------------------------------------------------------------------------------------------------------------------+ 9534 9535 9536-Wredeclared-class-member 9537------------------------- 9538This diagnostic is enabled by default. 9539 9540**Diagnostic text:** 9541 9542+------------------------------------------------------------------------+ 9543|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`| 9544+------------------------------------------------------------------------+ 9545 9546 9547-Wredundant-decls 9548----------------- 9549This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9550 9551-Wredundant-move 9552---------------- 9553**Diagnostic text:** 9554 9555+-------------------------------------------------------------------------+ 9556|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`| 9557+-------------------------------------------------------------------------+ 9558 9559 9560-Wredundant-parens 9561------------------ 9562**Diagnostic text:** 9563 9564+-----------------------------------------------------------------------------------+ 9565|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`| 9566+-----------------------------------------------------------------------------------+ 9567 9568 9569-Wregister 9570---------- 9571This diagnostic is enabled by default. 9572 9573Also controls `-Wdeprecated-register`_. 9574 9575**Diagnostic text:** 9576 9577+----------------------------------------------------------------------------------------------+ 9578|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`| 9579+----------------------------------------------------------------------------------------------+ 9580 9581 9582-Wreinterpret-base-class 9583------------------------ 9584This diagnostic is enabled by default. 9585 9586**Diagnostic text:** 9587 9588+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 9589|:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`| 9590| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || | 9591| |+----------------+| |+----------------+| |+-----------------------------------+| | 9592| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| | 9593| |+----------------+| |+----------------+| |+-----------------------------------+| | 9594+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 9595 9596 9597-Rremark-backend-plugin 9598----------------------- 9599**Diagnostic text:** 9600 9601The text of this diagnostic is not controlled by Clang. 9602 9603 9604-Wreorder 9605--------- 9606**Diagnostic text:** 9607 9608+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 9609|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`| 9610| ||:diagtext:`field` || ||:diagtext:`field`|| | 9611| |+----------------------+| |+-----------------+| | 9612| ||:diagtext:`base class`|| ||:diagtext:`base` || | 9613| |+----------------------+| |+-----------------+| | 9614+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 9615 9616 9617-Wrequires-super-attribute 9618-------------------------- 9619This diagnostic is enabled by default. 9620 9621**Diagnostic text:** 9622 9623+-----------------------------------------------------------------------------------------------------+----------------------------------+ 9624|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+| 9625| ||:diagtext:`methods in protocols`|| 9626| |+--------------------------------+| 9627| ||:diagtext:`dealloc` || 9628| |+--------------------------------+| 9629+-----------------------------------------------------------------------------------------------------+----------------------------------+ 9630 9631 9632-Wreserved-id-macro 9633------------------- 9634**Diagnostic text:** 9635 9636+--------------------------------------------------------------------------+ 9637|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`| 9638+--------------------------------------------------------------------------+ 9639 9640 9641-Wreserved-user-defined-literal 9642------------------------------- 9643Some of the diagnostics controlled by this flag are enabled by default. 9644 9645Also controls `-Wc++11-compat-reserved-user-defined-literal`_. 9646 9647**Diagnostic text:** 9648 9649+-----------------------------------------------------------------------------------------------------------------------+ 9650|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 9651+-----------------------------------------------------------------------------------------------------------------------+ 9652 9653+-------------------------------------------------------------------------------------------------------------------+ 9654|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 9655+-------------------------------------------------------------------------------------------------------------------+ 9656 9657 9658-Wretained-language-linkage 9659--------------------------- 9660**Diagnostic text:** 9661 9662+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9663|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`| 9664+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9665 9666 9667-Wreturn-stack-address 9668---------------------- 9669This diagnostic is enabled by default. 9670 9671**Diagnostic text:** 9672 9673+---------------------------------------------------------------------------------+ 9674|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`| 9675+---------------------------------------------------------------------------------+ 9676 9677+--------------------------------------------------------+--------------------------+------------------------------------------+ 9678|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`| 9679| ||:diagtext:`address of` || | 9680| |+------------------------+| | 9681| ||:diagtext:`reference to`|| | 9682| |+------------------------+| | 9683+--------------------------------------------------------+--------------------------+------------------------------------------+ 9684 9685+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 9686|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`| 9687| ||:diagtext:`address of` || ||:diagtext:`local variable`|| | 9688| |+------------------------+| |+--------------------------+| | 9689| ||:diagtext:`reference to`|| ||:diagtext:`parameter` || | 9690| |+------------------------+| |+--------------------------+| | 9691+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 9692 9693 9694-Wreturn-std-move 9695----------------- 9696**Diagnostic text:** 9697 9698+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 9699|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`| 9700| ||:diagtext:`returned`|| | 9701| |+--------------------+| | 9702| ||:diagtext:`thrown` || | 9703| |+--------------------+| | 9704+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 9705 9706 9707-Wreturn-std-move-in-c++11 9708-------------------------- 9709**Diagnostic text:** 9710 9711+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9712|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`| 9713+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9714 9715 9716-Wreturn-type 9717------------- 9718This diagnostic is enabled by default. 9719 9720Also controls `-Wreturn-type-c-linkage`_. 9721 9722**Diagnostic text:** 9723 9724+-----------------------+---------------------------+---------------------------------------------------------------------+ 9725|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`| 9726| ||:diagtext:`void function`|| | 9727| |+-------------------------+| | 9728| ||:diagtext:`void method` || | 9729| |+-------------------------+| | 9730| ||:diagtext:`constructor` || | 9731| |+-------------------------+| | 9732| ||:diagtext:`destructor` || | 9733| |+-------------------------+| | 9734+-----------------------+---------------------------+---------------------------------------------------------------------+ 9735 9736+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 9737|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 9738| ||:diagtext:`function`|| | 9739| |+--------------------+| | 9740| ||:diagtext:`method` || | 9741| |+--------------------+| | 9742+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 9743 9744+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9745|:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| 9746+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9747 9748+-------------------------------------------------------------------------------+ 9749|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`| 9750+-------------------------------------------------------------------------------+ 9751 9752+-----------------------------------------------------------------------------+ 9753|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`| 9754+-----------------------------------------------------------------------------+ 9755 9756+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9757|:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| 9758+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9759 9760+---------------------------------------------------------------------------------+ 9761|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`| 9762+---------------------------------------------------------------------------------+ 9763 9764+-------------------------------------------------------------------------------+ 9765|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`| 9766+-------------------------------------------------------------------------------+ 9767 9768+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 9769|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 9770| ||:diagtext:`function`|| | 9771| |+--------------------+| | 9772| ||:diagtext:`method` || | 9773| |+--------------------+| | 9774+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 9775 9776 9777-Wreturn-type-c-linkage 9778----------------------- 9779This diagnostic is enabled by default. 9780 9781**Diagnostic text:** 9782 9783+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9784|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`| 9785+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9786 9787+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9788|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`| 9789+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9790 9791 9792-Rsanitize-address 9793------------------ 9794**Diagnostic text:** 9795 9796+--------------------------------------------------------------------------------------------------------+ 9797|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`| 9798+--------------------------------------------------------------------------------------------------------+ 9799 9800+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 9801|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+| 9802| ||:diagtext:`is not C++` || 9803| |+------------------------------------+| 9804| ||:diagtext:`is packed` || 9805| |+------------------------------------+| 9806| ||:diagtext:`is a union` || 9807| |+------------------------------------+| 9808| ||:diagtext:`is trivially copyable` || 9809| |+------------------------------------+| 9810| ||:diagtext:`has trivial destructor` || 9811| |+------------------------------------+| 9812| ||:diagtext:`is standard layout` || 9813| |+------------------------------------+| 9814| ||:diagtext:`is in a blacklisted file`|| 9815| |+------------------------------------+| 9816| ||:diagtext:`is blacklisted` || 9817| |+------------------------------------+| 9818+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 9819 9820 9821-Wsection 9822--------- 9823This diagnostic is enabled by default. 9824 9825**Diagnostic text:** 9826 9827+--------------------------------------------------------------------------------------------+ 9828|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`| 9829+--------------------------------------------------------------------------------------------+ 9830 9831+------------------------------------------------------------------------+ 9832|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`| 9833+------------------------------------------------------------------------+ 9834 9835+---------------------------+---------------------+-------------------------------------------------------+ 9836|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`| 9837| ||:diagtext:`codeseg`|| | 9838| |+-------------------+| | 9839| ||:diagtext:`section`|| | 9840| |+-------------------+| | 9841+---------------------------+---------------------+-------------------------------------------------------+ 9842 9843 9844-Wselector 9845---------- 9846Also controls `-Wselector-type-mismatch`_. 9847 9848**Diagnostic text:** 9849 9850+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9851|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`| 9852+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9853 9854 9855-Wselector-type-mismatch 9856------------------------ 9857**Diagnostic text:** 9858 9859+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9860|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`| 9861+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9862 9863 9864-Wself-assign 9865------------- 9866Some of the diagnostics controlled by this flag are enabled by default. 9867 9868Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_. 9869 9870**Diagnostic text:** 9871 9872+------------------------------------------------------------------------------------------------------------------------------------------+ 9873|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 9874+------------------------------------------------------------------------------------------------------------------------------------------+ 9875 9876 9877-Wself-assign-field 9878------------------- 9879This diagnostic is enabled by default. 9880 9881**Diagnostic text:** 9882 9883+--------------------------------------------------------+-------------------------------+-----------------------------+ 9884|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`| 9885| ||:diagtext:`field` || | 9886| |+-----------------------------+| | 9887| ||:diagtext:`instance variable`|| | 9888| |+-----------------------------+| | 9889+--------------------------------------------------------+-------------------------------+-----------------------------+ 9890 9891 9892-Wself-assign-overloaded 9893------------------------ 9894**Diagnostic text:** 9895 9896+------------------------------------------------------------------------------------------------------------------------------------------+ 9897|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 9898+------------------------------------------------------------------------------------------------------------------------------------------+ 9899 9900 9901-Wself-move 9902----------- 9903**Diagnostic text:** 9904 9905+------------------------------------------------------------------------------------------------------------------------------+ 9906|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 9907+------------------------------------------------------------------------------------------------------------------------------+ 9908 9909 9910-Wsemicolon-before-method-body 9911------------------------------ 9912**Diagnostic text:** 9913 9914+------------------------------------------------------------------------------+ 9915|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`| 9916+------------------------------------------------------------------------------+ 9917 9918 9919-Wsentinel 9920---------- 9921This diagnostic is enabled by default. 9922 9923**Diagnostic text:** 9924 9925+------------------------------------------------------------------+-----------------------------+ 9926|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+| 9927| ||:diagtext:`function call` || 9928| |+---------------------------+| 9929| ||:diagtext:`method dispatch`|| 9930| |+---------------------------+| 9931| ||:diagtext:`block call` || 9932| |+---------------------------+| 9933+------------------------------------------------------------------+-----------------------------+ 9934 9935+------------------------------------------------------------------------------------------------------------------------------------------------+ 9936|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`| 9937+------------------------------------------------------------------------------------------------------------------------------------------------+ 9938 9939 9940-Wsequence-point 9941---------------- 9942Synonym for `-Wunsequenced`_. 9943 9944 9945-Wserialized-diagnostics 9946------------------------ 9947This diagnostic is enabled by default. 9948 9949**Diagnostic text:** 9950 9951+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9952|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`| 9953+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9954 9955+--------------------------------------------------------------------------------------------+ 9956|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`| 9957+--------------------------------------------------------------------------------------------+ 9958 9959 9960-Wshadow 9961-------- 9962Some of the diagnostics controlled by this flag are enabled by default. 9963 9964Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_. 9965 9966**Diagnostic text:** 9967 9968+--------------------------------------------------------------------+-------------------------------------------------------------+ 9969|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 9970| ||:diagtext:`local variable` || 9971| |+-----------------------------------------------------------+| 9972| ||+-----------------------------------------------+ || 9973| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 9974| ||+-----------------------------------------------+ || 9975| |+-----------------------------------------------------------+| 9976| ||+---------------------------------------------------------+|| 9977| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 9978| ||+---------------------------------------------------------+|| 9979| |+-----------------------------------------------------------+| 9980| ||+--------------------------------------------+ || 9981| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 9982| ||+--------------------------------------------+ || 9983| |+-----------------------------------------------------------+| 9984| ||+----------------------------------------------+ || 9985| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 9986| ||+----------------------------------------------+ || 9987| |+-----------------------------------------------------------+| 9988| ||+-------------------------------------------------+ || 9989| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 9990| ||+-------------------------------------------------+ || 9991| |+-----------------------------------------------------------+| 9992+--------------------------------------------------------------------+-------------------------------------------------------------+ 9993 9994 9995-Wshadow-all 9996------------ 9997Some of the diagnostics controlled by this flag are enabled by default. 9998 9999Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_. 10000 10001 10002-Wshadow-field 10003-------------- 10004**Diagnostic text:** 10005 10006+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 10007|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`| 10008| ||:diagtext:`parameter` || || || | 10009| |+----------------------------------+| |+------------------------------------------------+| | 10010| ||:diagtext:`non-static data member`|| ||+----------------------------------------------+|| | 10011| |+----------------------------------+| |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| ||| | 10012| | | ||+----------------------------------------------+|| | 10013| | | |+------------------------------------------------+| | 10014+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 10015 10016 10017-Wshadow-field-in-constructor 10018----------------------------- 10019Also controls `-Wshadow-field-in-constructor-modified`_. 10020 10021**Diagnostic text:** 10022 10023+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10024|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 10025+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10026 10027 10028-Wshadow-field-in-constructor-modified 10029-------------------------------------- 10030**Diagnostic text:** 10031 10032+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10033|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`| 10034+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10035 10036 10037-Wshadow-ivar 10038------------- 10039This diagnostic is enabled by default. 10040 10041**Diagnostic text:** 10042 10043+------------------------------------------------------------------------------------------------------------------------------+ 10044|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`| 10045+------------------------------------------------------------------------------------------------------------------------------+ 10046 10047 10048-Wshadow-uncaptured-local 10049------------------------- 10050**Diagnostic text:** 10051 10052+--------------------------------------------------------------------+-------------------------------------------------------------+ 10053|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 10054| ||:diagtext:`local variable` || 10055| |+-----------------------------------------------------------+| 10056| ||+-----------------------------------------------+ || 10057| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 10058| ||+-----------------------------------------------+ || 10059| |+-----------------------------------------------------------+| 10060| ||+---------------------------------------------------------+|| 10061| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 10062| ||+---------------------------------------------------------+|| 10063| |+-----------------------------------------------------------+| 10064| ||+--------------------------------------------+ || 10065| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 10066| ||+--------------------------------------------+ || 10067| |+-----------------------------------------------------------+| 10068| ||+----------------------------------------------+ || 10069| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 10070| ||+----------------------------------------------+ || 10071| |+-----------------------------------------------------------+| 10072| ||+-------------------------------------------------+ || 10073| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 10074| ||+-------------------------------------------------+ || 10075| |+-----------------------------------------------------------+| 10076+--------------------------------------------------------------------+-------------------------------------------------------------+ 10077 10078 10079-Wshift-count-negative 10080---------------------- 10081This diagnostic is enabled by default. 10082 10083**Diagnostic text:** 10084 10085+--------------------------------------------------------------+ 10086|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`| 10087+--------------------------------------------------------------+ 10088 10089 10090-Wshift-count-overflow 10091---------------------- 10092This diagnostic is enabled by default. 10093 10094**Diagnostic text:** 10095 10096+-------------------------------------------------------------------+ 10097|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`| 10098+-------------------------------------------------------------------+ 10099 10100 10101-Wshift-negative-value 10102---------------------- 10103This diagnostic is enabled by default. 10104 10105**Diagnostic text:** 10106 10107+------------------------------------------------------------------------------------+ 10108|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`| 10109+------------------------------------------------------------------------------------+ 10110 10111 10112-Wshift-op-parentheses 10113---------------------- 10114This diagnostic is enabled by default. 10115 10116**Diagnostic text:** 10117 10118+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10119|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`| 10120+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10121 10122 10123-Wshift-overflow 10124---------------- 10125This diagnostic is enabled by default. 10126 10127**Diagnostic text:** 10128 10129+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10130|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`| 10131+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10132 10133 10134-Wshift-sign-overflow 10135--------------------- 10136**Diagnostic text:** 10137 10138+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10139|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`| 10140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10141 10142 10143-Wshorten-64-to-32 10144------------------ 10145**Diagnostic text:** 10146 10147+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 10148|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10149+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 10150 10151 10152-Wsign-compare 10153-------------- 10154**Diagnostic text:** 10155 10156+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10157|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`| 10158+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10159 10160 10161-Wsign-conversion 10162----------------- 10163**Diagnostic text:** 10164 10165+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10166|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10167+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10168 10169+---------------------------------------------------------------------------------------------------------------------------------------------+ 10170|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10171+---------------------------------------------------------------------------------------------------------------------------------------------+ 10172 10173+-----------------------------------------------------------------------------------------------------------+ 10174|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`| 10175+-----------------------------------------------------------------------------------------------------------+ 10176 10177 10178-Wsign-promo 10179------------ 10180This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10181 10182-Wsigned-enum-bitfield 10183---------------------- 10184**Diagnostic text:** 10185 10186+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10187|:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`| 10188+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10189 10190 10191-Wsizeof-array-argument 10192----------------------- 10193This diagnostic is enabled by default. 10194 10195**Diagnostic text:** 10196 10197+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10198|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 10199+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10200 10201 10202-Wsizeof-array-decay 10203-------------------- 10204This diagnostic is enabled by default. 10205 10206**Diagnostic text:** 10207 10208+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10209|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 10210+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10211 10212 10213-Wsizeof-pointer-div 10214-------------------- 10215This diagnostic is enabled by default. 10216 10217**Diagnostic text:** 10218 10219+-------------------------------------------------------------------------------------------------------------------------------+ 10220|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`| 10221+-------------------------------------------------------------------------------------------------------------------------------+ 10222 10223 10224-Wsizeof-pointer-memaccess 10225-------------------------- 10226This diagnostic is enabled by default. 10227 10228**Diagnostic text:** 10229 10230+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10231|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`| 10232+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10233 10234+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 10235|:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`| 10236| ||:diagtext:`destination`|| | 10237| |+-----------------------+| | 10238| ||:diagtext:`source` || | 10239| |+-----------------------+| | 10240+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 10241 10242 10243-Wslash-u-filename 10244------------------ 10245This diagnostic is enabled by default. 10246 10247**Diagnostic text:** 10248 10249+--------------------------------------------------------------------------------------------------+ 10250|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`| 10251+--------------------------------------------------------------------------------------------------+ 10252 10253 10254-Wsometimes-uninitialized 10255------------------------- 10256**Diagnostic text:** 10257 10258+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 10259|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+| 10260| ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ || 10261| |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| || 10262| ||:diagtext:`captured`|| ||| ||:diagtext:`true` || || 10263| |+--------------------+| ||| |+-----------------+| || 10264| | | ||| ||:diagtext:`false`|| || 10265| | | ||| |+-----------------+| || 10266| | | ||+---------------------------------------------------------------+-------------------+ || 10267| | | |+------------------------------------------------------------------------------------------------------------+| 10268| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10269| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 10270| | | ||| ||:diagtext:`is entered` |||| 10271| | | ||| |+------------------------------------------------+||| 10272| | | ||| ||:diagtext:`exits because its condition is false`|||| 10273| | | ||| |+------------------------------------------------+||| 10274| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10275| | | |+------------------------------------------------------------------------------------------------------------+| 10276| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10277| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 10278| | | ||| ||:diagtext:`condition is true` |||| 10279| | | ||| |+------------------------------------------------+||| 10280| | | ||| ||:diagtext:`exits because its condition is false`|||| 10281| | | ||| |+------------------------------------------------+||| 10282| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10283| | | |+------------------------------------------------------------------------------------------------------------+| 10284| | | ||+----------------------------------------------------------------------+ || 10285| | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| || 10286| | | ||+----------------------------------------------------------------------+ || 10287| | | |+------------------------------------------------------------------------------------------------------------+| 10288| | | ||:diagtext:`its declaration is reached` || 10289| | | |+------------------------------------------------------------------------------------------------------------+| 10290| | | ||+---------------------------------------------+ || 10291| | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| || 10292| | | ||+---------------------------------------------+ || 10293| | | |+------------------------------------------------------------------------------------------------------------+| 10294+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 10295 10296 10297-Wsource-uses-openmp 10298-------------------- 10299Some of the diagnostics controlled by this flag are enabled by default. 10300 10301**Diagnostic text:** 10302 10303+------------------------------------------------------------------------------------------------------------------------------+ 10304|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`| 10305+------------------------------------------------------------------------------------------------------------------------------+ 10306 10307+------------------------------------------------------------------------------+ 10308|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`| 10309+------------------------------------------------------------------------------+ 10310 10311 10312-Wspir-compat 10313------------- 10314**Diagnostic text:** 10315 10316+----------------------------------------------------------------------------------------------------------------------+ 10317|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`| 10318+----------------------------------------------------------------------------------------------------------------------+ 10319 10320 10321-Wstack-protector 10322----------------- 10323This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10324 10325-Wstatic-float-init 10326------------------- 10327This diagnostic is enabled by default. 10328 10329Also controls `-Wgnu-static-float-init`_. 10330 10331**Diagnostic text:** 10332 10333+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10334|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`| 10335+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10336 10337 10338-Wstatic-in-inline 10339------------------ 10340Some of the diagnostics controlled by this flag are enabled by default. 10341 10342**Diagnostic text:** 10343 10344+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10345|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 10346| ||:diagtext:`function`|| | 10347| |+--------------------+| | 10348| ||:diagtext:`variable`|| | 10349| |+--------------------+| | 10350+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10351 10352+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10353|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 10354| ||:diagtext:`function`|| | 10355| |+--------------------+| | 10356| ||:diagtext:`variable`|| | 10357| |+--------------------+| | 10358+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10359 10360 10361-Wstatic-inline-explicit-instantiation 10362-------------------------------------- 10363This diagnostic is enabled by default. 10364 10365**Diagnostic text:** 10366 10367+-------------------------------------------------+--------------------+--------------------------------------------------------+ 10368|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`| 10369| ||:diagtext:`static`|| | 10370| |+------------------+| | 10371| ||:diagtext:`inline`|| | 10372| |+------------------+| | 10373+-------------------------------------------------+--------------------+--------------------------------------------------------+ 10374 10375 10376-Wstatic-local-in-inline 10377------------------------ 10378This diagnostic is enabled by default. 10379 10380**Diagnostic text:** 10381 10382+--------------------------------------------------------------------------------------------------------------------------------+ 10383|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`| 10384+--------------------------------------------------------------------------------------------------------------------------------+ 10385 10386 10387-Wstatic-self-init 10388------------------ 10389This diagnostic is enabled by default. 10390 10391**Diagnostic text:** 10392 10393+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10394|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`| 10395+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10396 10397 10398-Wstdlibcxx-not-found 10399--------------------- 10400This diagnostic is enabled by default. 10401 10402**Diagnostic text:** 10403 10404+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10405|:warning:`warning:` |nbsp| :diagtext:`include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`| 10406+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10407 10408 10409-Wstrict-aliasing 10410----------------- 10411This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10412 10413-Wstrict-aliasing=0 10414------------------- 10415This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10416 10417-Wstrict-aliasing=1 10418------------------- 10419This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10420 10421-Wstrict-aliasing=2 10422------------------- 10423This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10424 10425-Wstrict-overflow 10426----------------- 10427This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10428 10429-Wstrict-overflow=0 10430------------------- 10431This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10432 10433-Wstrict-overflow=1 10434------------------- 10435This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10436 10437-Wstrict-overflow=2 10438------------------- 10439This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10440 10441-Wstrict-overflow=3 10442------------------- 10443This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10444 10445-Wstrict-overflow=4 10446------------------- 10447This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10448 10449-Wstrict-overflow=5 10450------------------- 10451This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10452 10453-Wstrict-prototypes 10454------------------- 10455**Diagnostic text:** 10456 10457+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10458|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 10459| ||:diagtext:`function declaration is not` || | 10460| |+------------------------------------------------------------+| | 10461| ||:diagtext:`block declaration is not` || | 10462| |+------------------------------------------------------------+| | 10463| ||:diagtext:`old-style function definition is not preceded by`|| | 10464| |+------------------------------------------------------------+| | 10465+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10466 10467 10468-Wstrict-prototypes 10469------------------- 10470**Diagnostic text:** 10471 10472+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10473|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 10474| ||:diagtext:`function declaration is not` || | 10475| |+------------------------------------------------------------+| | 10476| ||:diagtext:`block declaration is not` || | 10477| |+------------------------------------------------------------+| | 10478| ||:diagtext:`old-style function definition is not preceded by`|| | 10479| |+------------------------------------------------------------+| | 10480+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10481 10482 10483-Wstrict-selector-match 10484----------------------- 10485**Diagnostic text:** 10486 10487+--------------------------------------------------------------------------------------------------------------+ 10488|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 10489+--------------------------------------------------------------------------------------------------------------+ 10490 10491 10492-Wstring-compare 10493---------------- 10494This diagnostic is enabled by default. 10495 10496**Diagnostic text:** 10497 10498+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ 10499|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`| 10500| ||:diagtext:`a string literal`|| | 10501| |+----------------------------+| | 10502| ||:diagtext:`@encode` || | 10503| |+----------------------------+| | 10504+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ 10505 10506 10507-Wstring-conversion 10508------------------- 10509**Diagnostic text:** 10510 10511+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10512|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10513+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10514 10515 10516-Wstring-plus-char 10517------------------ 10518This diagnostic is enabled by default. 10519 10520**Diagnostic text:** 10521 10522+------------------------------------------------------------------------------------------------------------------------------------------+ 10523|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`| 10524+------------------------------------------------------------------------------------------------------------------------------------------+ 10525 10526 10527-Wstring-plus-int 10528----------------- 10529This diagnostic is enabled by default. 10530 10531**Diagnostic text:** 10532 10533+----------------------------------------------------------------------------------------------------------------------------------+ 10534|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`| 10535+----------------------------------------------------------------------------------------------------------------------------------+ 10536 10537 10538-Wstrlcpy-strlcat-size 10539---------------------- 10540This diagnostic is enabled by default. 10541 10542**Diagnostic text:** 10543 10544+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10545|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`| 10546+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10547 10548 10549-Wstrncat-size 10550-------------- 10551This diagnostic is enabled by default. 10552 10553**Diagnostic text:** 10554 10555+--------------------------------------------------------------------------------------------------------------------------------+ 10556|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`| 10557+--------------------------------------------------------------------------------------------------------------------------------+ 10558 10559+-------------------------------------------------------------------------------------------------------+ 10560|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`| 10561+-------------------------------------------------------------------------------------------------------+ 10562 10563+-------------------------------------------------------------------------------------------+ 10564|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`| 10565+-------------------------------------------------------------------------------------------+ 10566 10567 10568-Wsuper-class-method-mismatch 10569----------------------------- 10570**Diagnostic text:** 10571 10572+--------------------------------------------------------------------------------------------------------------------------------+ 10573|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`| 10574+--------------------------------------------------------------------------------------------------------------------------------+ 10575 10576 10577-Wsuspicious-bzero 10578------------------ 10579This diagnostic is enabled by default. 10580 10581**Diagnostic text:** 10582 10583+----------------------------------------------------------------------+ 10584|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`| 10585+----------------------------------------------------------------------+ 10586 10587 10588-Wsuspicious-memaccess 10589---------------------- 10590This diagnostic is enabled by default. 10591 10592Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_. 10593 10594 10595-Wswitch 10596-------- 10597This diagnostic is enabled by default. 10598 10599**Diagnostic text:** 10600 10601+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10602|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`| 10603+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10604 10605+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10606|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10607| ||+----------------------------------------------------------------------------------------------+ || 10608| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| || 10609| ||+----------------------------------------------------------------------------------------------+ || 10610| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10611| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 10612| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| || 10613| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 10614| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10615| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10616| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| || 10617| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10618| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10619| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10620| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 10621| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10622| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10623+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10624 10625+------------------------------------------------------------------------------------------------+ 10626|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`| 10627+------------------------------------------------------------------------------------------------+ 10628 10629 10630-Wswitch-bool 10631------------- 10632This diagnostic is enabled by default. 10633 10634**Diagnostic text:** 10635 10636+-------------------------------------------------------------------------+ 10637|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`| 10638+-------------------------------------------------------------------------+ 10639 10640 10641-Wswitch-default 10642---------------- 10643This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10644 10645-Wswitch-enum 10646------------- 10647**Diagnostic text:** 10648 10649+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10650|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10651| ||+---------------------------------------------------------------------------------------------------------+ || 10652| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| || 10653| ||+---------------------------------------------------------------------------------------------------------+ || 10654| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10655| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10656| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| || 10657| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10658| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10659| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10660| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| || 10661| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10662| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10663| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10664| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 10665| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10666| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10667+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10668 10669 10670-Wsync-fetch-and-nand-semantics-changed 10671--------------------------------------- 10672This diagnostic is enabled by default. 10673 10674**Diagnostic text:** 10675 10676+-------------------------------------------------------------------------------------------------------------------------------------------+ 10677|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`| 10678+-------------------------------------------------------------------------------------------------------------------------------------------+ 10679 10680 10681-Wsynth 10682------- 10683This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10684 10685-Wtautological-compare 10686---------------------- 10687Some of the diagnostics controlled by this flag are enabled by default. 10688 10689Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_. 10690 10691**Diagnostic text:** 10692 10693+---------------------------+---------------------------+--------------------------------------------------+------------------------+ 10694|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+| 10695| ||:diagtext:`self-` || ||:diagtext:`a constant`|| 10696| |+-------------------------+| |+----------------------+| 10697| ||:diagtext:`array` |nbsp| || ||:placeholder:`C` || 10698| |+-------------------------+| |+----------------------+| 10699+---------------------------+---------------------------+--------------------------------------------------+------------------------+ 10700 10701+-------------------------------------------------------------------------------------+-------------------+ 10702|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+| 10703| ||:diagtext:`false`|| 10704| |+-----------------+| 10705| ||:diagtext:`true` || 10706| |+-----------------+| 10707+-------------------------------------------------------------------------------------+-------------------+ 10708 10709 10710-Wtautological-constant-compare 10711------------------------------- 10712This diagnostic is enabled by default. 10713 10714Also controls `-Wtautological-constant-out-of-range-compare`_. 10715 10716**Diagnostic text:** 10717 10718+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 10719|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 10720| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 10721| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 10722| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 10723| |+----------------------------------------------+| |+--------------------------------------------------------+| | 10724| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 10725| |+----------------------------------------------+| |+--------------------------------------------------------+| | 10726| ||:diagtext:`false` || | | | 10727| |+----------------------------------------------+| | | | 10728+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 10729 10730 10731-Wtautological-constant-in-range-compare 10732---------------------------------------- 10733Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_. 10734 10735 10736-Wtautological-constant-out-of-range-compare 10737-------------------------------------------- 10738This diagnostic is enabled by default. 10739 10740**Diagnostic text:** 10741 10742+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 10743|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 10744| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 10745| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 10746| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 10747| |+----------------------------------------------+| |+--------------------------------------------------------+| | 10748| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 10749| |+----------------------------------------------+| |+--------------------------------------------------------+| | 10750| ||:diagtext:`false` || | | | 10751| |+----------------------------------------------+| | | | 10752+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 10753 10754 10755-Wtautological-overlap-compare 10756------------------------------ 10757**Diagnostic text:** 10758 10759+-----------------------------------------------------------------------------------------+-------------------+ 10760|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+| 10761| ||:diagtext:`false`|| 10762| |+-----------------+| 10763| ||:diagtext:`true` || 10764| |+-----------------+| 10765+-----------------------------------------------------------------------------------------+-------------------+ 10766 10767 10768-Wtautological-pointer-compare 10769------------------------------ 10770This diagnostic is enabled by default. 10771 10772**Diagnostic text:** 10773 10774+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 10775|:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`| 10776| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || | 10777| |+-------------------------+| |+-----------------------+| |+-----------------+| | 10778| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| | 10779| |+-------------------------+| |+-----------------------+| |+-----------------+| | 10780+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 10781 10782+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 10783|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+| 10784| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || 10785| |+----------------------+| |+-----------------------+| |+-----------------+| 10786| ||:diagtext:`function` || || || ||:diagtext:`false`|| 10787| |+----------------------+| |+-----------------------+| |+-----------------+| 10788| ||:diagtext:`array` || | | | | 10789| |+----------------------+| | | | | 10790+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 10791 10792 10793-Wtautological-type-limit-compare 10794--------------------------------- 10795**Diagnostic text:** 10796 10797+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 10798|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 10799| ||:placeholder:`D`|| ||:placeholder:`B`|| | 10800| |+----------------+| |+----------------+| | 10801| ||:placeholder:`B`|| ||:placeholder:`D`|| | 10802| |+----------------+| |+----------------+| | 10803+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 10804 10805 10806-Wtautological-undefined-compare 10807-------------------------------- 10808This diagnostic is enabled by default. 10809 10810**Diagnostic text:** 10811 10812+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 10813|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 10814| ||:diagtext:`true` || 10815| |+-----------------+| 10816| ||:diagtext:`false`|| 10817| |+-----------------+| 10818+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 10819 10820+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 10821|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 10822| ||:diagtext:`true` || 10823| |+-----------------+| 10824| ||:diagtext:`false`|| 10825| |+-----------------+| 10826+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 10827 10828 10829-Wtautological-unsigned-enum-zero-compare 10830----------------------------------------- 10831**Diagnostic text:** 10832 10833+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 10834|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 10835| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| | 10836| |+------------------------------------+| |+------------------------------------+| | 10837| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || | 10838| |+------------------------------------+| |+------------------------------------+| | 10839+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 10840 10841 10842-Wtautological-unsigned-zero-compare 10843------------------------------------ 10844**Diagnostic text:** 10845 10846+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 10847|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 10848| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| | 10849| |+-------------------------------+| |+-------------------------------+| | 10850| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || | 10851| |+-------------------------------+| |+-------------------------------+| | 10852+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 10853 10854 10855-Wtentative-definition-incomplete-type 10856-------------------------------------- 10857This diagnostic is enabled by default. 10858 10859**Diagnostic text:** 10860 10861+---------------------------------------------------------------------------------------------------------------------------------------------------+ 10862|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`| 10863+---------------------------------------------------------------------------------------------------------------------------------------------------+ 10864 10865 10866-Wthread-safety 10867--------------- 10868Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_. 10869 10870 10871-Wthread-safety-analysis 10872------------------------ 10873**Diagnostic text:** 10874 10875+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10876|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`| 10877+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10878 10879+---------------------------------------------------------------------------------------------------------------------------------+ 10880|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`| 10881+---------------------------------------------------------------------------------------------------------------------------------+ 10882 10883+---------------------------------------------------------------------+ 10884|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`| 10885+---------------------------------------------------------------------+ 10886 10887+-----------------------------------------------------------------------------------------------------------------------------------------------+ 10888|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`| 10889+-----------------------------------------------------------------------------------------------------------------------------------------------+ 10890 10891+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 10892|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`| 10893+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 10894 10895+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10896|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`| 10897+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10898 10899+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10900|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`| 10901+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10902 10903+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10904|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 10905| ||+------------------------------------------+ || 10906| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 10907| ||+------------------------------------------+ || 10908| |+--------------------------------------------------------+| 10909| ||+------------------------------------------------------+|| 10910| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 10911| ||+------------------------------------------------------+|| 10912| |+--------------------------------------------------------+| 10913+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10914 10915+--------------------------------------------------------------------------------------------------------------------------------------------------+ 10916|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`| 10917+--------------------------------------------------------------------------------------------------------------------------------------------------+ 10918 10919+------------------------------------------------------------------------------------------------------------------------------------+ 10920|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`| 10921+------------------------------------------------------------------------------------------------------------------------------------+ 10922 10923+----------------------------------------------------------------------------------------------------------------------------------+ 10924|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`| 10925+----------------------------------------------------------------------------------------------------------------------------------+ 10926 10927+--------------------------------------------------------------------------------------------------------------------------------------------+ 10928|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`| 10929+--------------------------------------------------------------------------------------------------------------------------------------------+ 10930 10931+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 10932|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`| 10933| ||:diagtext:`shared` || ||:diagtext:`shared` || | 10934| |+---------------------+| |+---------------------+| | 10935| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| | 10936| |+---------------------+| |+---------------------+| | 10937+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 10938 10939+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 10940|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 10941| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 10942| |+-------------------+| |+---------------------------------+| 10943| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 10944| |+-------------------+| |+---------------------------------+| 10945+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 10946 10947+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10948|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 10949| ||:diagtext:`reading`|| ||+------------------------------------------+ || 10950| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 10951| ||:diagtext:`writing`|| ||+------------------------------------------+ || 10952| |+-------------------+| |+--------------------------------------------------------+| 10953| | | ||+------------------------------------------------------+|| 10954| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 10955| | | ||+------------------------------------------------------+|| 10956| | | |+--------------------------------------------------------+| 10957+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10958 10959+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 10960|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 10961| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 10962| |+-------------------+| |+---------------------------------+| 10963| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 10964| |+-------------------+| |+---------------------------------+| 10965+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 10966 10967+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10968|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 10969| ||:diagtext:`reading`|| ||+------------------------------------------+ || 10970| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 10971| ||:diagtext:`writing`|| ||+------------------------------------------+ || 10972| |+-------------------+| |+--------------------------------------------------------+| 10973| | | ||+------------------------------------------------------+|| 10974| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 10975| | | ||+------------------------------------------------------+|| 10976| | | |+--------------------------------------------------------+| 10977+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 10978 10979 10980-Wthread-safety-attributes 10981-------------------------- 10982**Diagnostic text:** 10983 10984+----------------------------------------------------------------------------------------------------------------------------------------+ 10985|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`| 10986+----------------------------------------------------------------------------------------------------------------------------------------+ 10987 10988+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10989|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`| 10990+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10991 10992+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10993|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`| 10994+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10995 10996+----------------------------------------------------------------------------------------------------------------------------------+ 10997|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`| 10998+----------------------------------------------------------------------------------------------------------------------------------+ 10999 11000+------------------------------------------------------------------------------------------------------------------------------------+ 11001|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`| 11002+------------------------------------------------------------------------------------------------------------------------------------+ 11003 11004+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11005|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`| 11006+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11007 11008+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11009|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`| 11010+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11011 11012 11013-Wthread-safety-beta 11014-------------------- 11015**Diagnostic text:** 11016 11017+------------------------------------------------------------------+ 11018|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`| 11019+------------------------------------------------------------------+ 11020 11021 11022-Wthread-safety-negative 11023------------------------ 11024**Diagnostic text:** 11025 11026+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11027|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`| 11028+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11029 11030 11031-Wthread-safety-precise 11032----------------------- 11033**Diagnostic text:** 11034 11035+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11036|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11037| ||+------------------------------------------+ || 11038| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11039| ||+------------------------------------------+ || 11040| |+--------------------------------------------------------+| 11041| ||+------------------------------------------------------+|| 11042| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11043| ||+------------------------------------------------------+|| 11044| |+--------------------------------------------------------+| 11045+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11046 11047+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11048|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11049| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11050| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11051| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11052| |+-------------------+| |+--------------------------------------------------------+| 11053| | | ||+------------------------------------------------------+|| 11054| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11055| | | ||+------------------------------------------------------+|| 11056| | | |+--------------------------------------------------------+| 11057+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11058 11059+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11060|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11061| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11062| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11063| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11064| |+-------------------+| |+--------------------------------------------------------+| 11065| | | ||+------------------------------------------------------+|| 11066| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11067| | | ||+------------------------------------------------------+|| 11068| | | |+--------------------------------------------------------+| 11069+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11070 11071 11072-Wthread-safety-reference 11073------------------------- 11074**Diagnostic text:** 11075 11076+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11077|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11078| ||+------------------------------------------+ || 11079| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11080| ||+------------------------------------------+ || 11081| |+--------------------------------------------------------+| 11082| ||+------------------------------------------------------+|| 11083| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11084| ||+------------------------------------------------------+|| 11085| |+--------------------------------------------------------+| 11086+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11087 11088+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11089|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11090| ||+------------------------------------------+ || 11091| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11092| ||+------------------------------------------+ || 11093| |+--------------------------------------------------------+| 11094| ||+------------------------------------------------------+|| 11095| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11096| ||+------------------------------------------------------+|| 11097| |+--------------------------------------------------------+| 11098+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11099 11100 11101-Wthread-safety-verbose 11102----------------------- 11103**Diagnostic text:** 11104 11105+---------------------------------------------------------------------+ 11106|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`| 11107+---------------------------------------------------------------------+ 11108 11109 11110-Wtrigraphs 11111----------- 11112This diagnostic is enabled by default. 11113 11114**Diagnostic text:** 11115 11116+-----------------------------------------------------------------------------------------------------+ 11117|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`| 11118+-----------------------------------------------------------------------------------------------------+ 11119 11120+------------------------------------------------------------------+ 11121|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`| 11122+------------------------------------------------------------------+ 11123 11124+-------------------------------------------------------+ 11125|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`| 11126+-------------------------------------------------------+ 11127 11128+-------------------------------------------------------------------------------+ 11129|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`| 11130+-------------------------------------------------------------------------------+ 11131 11132 11133-Wtype-limits 11134------------- 11135This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11136 11137-Wtype-safety 11138------------- 11139This diagnostic is enabled by default. 11140 11141**Diagnostic text:** 11142 11143+----------------------------------------------------------------------------------------------------------------------------+ 11144|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`| 11145+----------------------------------------------------------------------------------------------------------------------------+ 11146 11147+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 11148|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+| 11149| ||+-------------------------------------------------+|| 11150| |||:diagtext:`that requires` |nbsp| :placeholder:`D`||| 11151| ||+-------------------------------------------------+|| 11152| |+---------------------------------------------------+| 11153| || || 11154| |+---------------------------------------------------+| 11155+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 11156 11157+---------------------------------------------------------------------------------------------------+ 11158|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`| 11159+---------------------------------------------------------------------------------------------------+ 11160 11161 11162-Wtypedef-redefinition 11163---------------------- 11164This diagnostic is enabled by default. 11165 11166**Diagnostic text:** 11167 11168+--------------------------------------------------------------------------------------------------------------------------+ 11169|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`| 11170+--------------------------------------------------------------------------------------------------------------------------+ 11171 11172 11173-Wtypename-missing 11174------------------ 11175This diagnostic is enabled by default. 11176 11177**Diagnostic text:** 11178 11179+-------------------------------------------------------------------------------------------------------------------------------------+ 11180|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`| 11181+-------------------------------------------------------------------------------------------------------------------------------------+ 11182 11183 11184-Wunable-to-open-stats-file 11185--------------------------- 11186This diagnostic is enabled by default. 11187 11188**Diagnostic text:** 11189 11190+-------------------------------------------------------------------------------------------------------------------------------------------+ 11191|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 11192+-------------------------------------------------------------------------------------------------------------------------------------------+ 11193 11194 11195-Wunavailable-declarations 11196-------------------------- 11197This diagnostic is enabled by default. 11198 11199**Diagnostic text:** 11200 11201+----------------------------------------------------------------------------------------------------------------------+ 11202|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`| 11203+----------------------------------------------------------------------------------------------------------------------+ 11204 11205 11206-Wundeclared-selector 11207--------------------- 11208**Diagnostic text:** 11209 11210+----------------------------------------------------------------------------------+ 11211|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`| 11212+----------------------------------------------------------------------------------+ 11213 11214+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11215|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`| 11216+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11217 11218 11219-Wundef 11220------- 11221**Diagnostic text:** 11222 11223+---------------------------------------------------------------------------------------------+ 11224|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`| 11225+---------------------------------------------------------------------------------------------+ 11226 11227 11228-Wundefined-bool-conversion 11229--------------------------- 11230This diagnostic is enabled by default. 11231 11232**Diagnostic text:** 11233 11234+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11235|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`| 11236+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11237 11238+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11239|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`| 11240+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11241 11242 11243-Wundefined-func-template 11244------------------------- 11245**Diagnostic text:** 11246 11247+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11248|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 11249+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11250 11251 11252-Wundefined-inline 11253------------------ 11254This diagnostic is enabled by default. 11255 11256**Diagnostic text:** 11257 11258+----------------------------------------------------------------------------------------------------------------+ 11259|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`| 11260+----------------------------------------------------------------------------------------------------------------+ 11261 11262 11263-Wundefined-internal 11264-------------------- 11265This diagnostic is enabled by default. 11266 11267**Diagnostic text:** 11268 11269+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 11270|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`| 11271| ||:diagtext:`function`|| | 11272| |+--------------------+| | 11273| ||:diagtext:`variable`|| | 11274| |+--------------------+| | 11275+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 11276 11277 11278-Wundefined-internal-type 11279------------------------- 11280**Diagnostic text:** 11281 11282+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 11283|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`| 11284| ||:diagtext:`function`|| | 11285| |+--------------------+| | 11286| ||:diagtext:`variable`|| | 11287| |+--------------------+| | 11288+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 11289 11290 11291-Wundefined-reinterpret-cast 11292---------------------------- 11293**Diagnostic text:** 11294 11295+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11296|:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`| 11297+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11298 11299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11300|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`| 11301+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11302 11303 11304-Wundefined-var-template 11305------------------------ 11306This diagnostic is enabled by default. 11307 11308**Diagnostic text:** 11309 11310+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11311|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 11312+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11313 11314 11315-Wunevaluated-expression 11316------------------------ 11317This diagnostic is enabled by default. 11318 11319Also controls `-Wpotentially-evaluated-expression`_. 11320 11321**Diagnostic text:** 11322 11323+-----------------------------------------------------------------------------------------------------------+ 11324|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`| 11325+-----------------------------------------------------------------------------------------------------------+ 11326 11327 11328-Wunguarded-availability 11329------------------------ 11330Some of the diagnostics controlled by this flag are enabled by default. 11331 11332Also controls `-Wunguarded-availability-new`_. 11333 11334**Diagnostic text:** 11335 11336+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11337|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 11338+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11339 11340 11341-Wunguarded-availability-new 11342---------------------------- 11343This diagnostic is enabled by default. 11344 11345**Diagnostic text:** 11346 11347+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11348|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 11349+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11350 11351 11352-Wunicode 11353--------- 11354This diagnostic is enabled by default. 11355 11356**Diagnostic text:** 11357 11358+-------------------------------------------------------------------------------------------------------------------+ 11359|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`| 11360+-------------------------------------------------------------------------------------------------------------------+ 11361 11362+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 11363|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`| 11364+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 11365 11366+-----------------------------------------------------------------------------------------------+ 11367|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`| 11368+-----------------------------------------------------------------------------------------------+ 11369 11370+--------------------------------------------------------------------------------------------------------------------------------------+ 11371|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`| 11372+--------------------------------------------------------------------------------------------------------------------------------------+ 11373 11374+---------------------------------------------------------------------------------------------+ 11375|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`| 11376+---------------------------------------------------------------------------------------------+ 11377 11378 11379-Wunicode-homoglyph 11380------------------- 11381This diagnostic is enabled by default. 11382 11383**Diagnostic text:** 11384 11385+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11386|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`| 11387+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11388 11389 11390-Wunicode-whitespace 11391-------------------- 11392This diagnostic is enabled by default. 11393 11394**Diagnostic text:** 11395 11396+-------------------------------------------------------------------------------+ 11397|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`| 11398+-------------------------------------------------------------------------------+ 11399 11400 11401-Wunicode-zero-width 11402-------------------- 11403This diagnostic is enabled by default. 11404 11405**Diagnostic text:** 11406 11407+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11408|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`| 11409+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11410 11411 11412-Wuninitialized 11413--------------- 11414Some of the diagnostics controlled by this flag are enabled by default. 11415 11416Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_. 11417 11418**Diagnostic text:** 11419 11420+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11421|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`| 11422+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11423 11424+-----------------------------------------------------------------------------------------------------------------------+ 11425|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`| 11426+-----------------------------------------------------------------------------------------------------------------------+ 11427 11428+--------------------------------------------------------------------------------------------------------------------------------------+ 11429|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`| 11430+--------------------------------------------------------------------------------------------------------------------------------------+ 11431 11432+------------------------------------------------------------------------------------------------------------------------------------------------+ 11433|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`| 11434+------------------------------------------------------------------------------------------------------------------------------------------------+ 11435 11436+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11437|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`| 11438+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11439 11440+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11441|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`| 11442+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11443 11444+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 11445|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+| 11446| ||:diagtext:`used here` || 11447| |+-----------------------------+| 11448| ||:diagtext:`captured by block`|| 11449| |+-----------------------------+| 11450+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 11451 11452 11453-Wunknown-argument 11454------------------ 11455This diagnostic is enabled by default. 11456 11457**Diagnostic text:** 11458 11459+-----------------------------------------------------------------------------------------------------------+ 11460|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`| 11461+-----------------------------------------------------------------------------------------------------------+ 11462 11463+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11464|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`' (did you mean '`:placeholder:`B`:diagtext:`'?)`| 11465+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11466 11467 11468-Wunknown-attributes 11469-------------------- 11470This diagnostic is enabled by default. 11471 11472**Diagnostic text:** 11473 11474+-----------------------------------------------------------------------------------------------------------+ 11475|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`| 11476+-----------------------------------------------------------------------------------------------------------+ 11477 11478 11479-Wunknown-escape-sequence 11480------------------------- 11481This diagnostic is enabled by default. 11482 11483**Diagnostic text:** 11484 11485+-----------------------------------------------------------------------------------------------+ 11486|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`| 11487+-----------------------------------------------------------------------------------------------+ 11488 11489 11490-Wunknown-pragmas 11491----------------- 11492Some of the diagnostics controlled by this flag are enabled by default. 11493 11494**Diagnostic text:** 11495 11496+------------------------------------------------------------------------------------+ 11497|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`| 11498+------------------------------------------------------------------------------------+ 11499 11500+--------------------------------------------------------------------------+ 11501|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`| 11502+--------------------------------------------------------------------------+ 11503 11504+-----------------------------------------------------------------------+ 11505|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`| 11506+-----------------------------------------------------------------------+ 11507 11508+--------------------------------------------------------------------------------------------+ 11509|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`| 11510+--------------------------------------------------------------------------------------------+ 11511 11512+--------------------------------------------------------------------------------------------------------------------------+ 11513|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`| 11514+--------------------------------------------------------------------------------------------------------------------------+ 11515 11516+----------------------------------------------------------------------------------------------+ 11517|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`| 11518+----------------------------------------------------------------------------------------------+ 11519 11520+----------------------------------------------------------------------------+ 11521|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`| 11522+----------------------------------------------------------------------------+ 11523 11524+-------------------------------------------------------------+ 11525|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`| 11526+-------------------------------------------------------------+ 11527 11528+----------------------------------------------------------------------------------------------------+ 11529|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`| 11530+----------------------------------------------------------------------------------------------------+ 11531 11532+--------------------------------------------------------------------------------------+ 11533|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`| 11534+--------------------------------------------------------------------------------------+ 11535 11536+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11537|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`| 11538+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11539 11540+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11541|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`| 11542+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11543 11544+----------------------------------------------------------------------------------------------+ 11545|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`| 11546+----------------------------------------------------------------------------------------------+ 11547 11548+--------------------------------------------------------------------------------+ 11549|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`| 11550+--------------------------------------------------------------------------------+ 11551 11552+----------------------------------------------------------------------------------------------------+ 11553|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`| 11554+----------------------------------------------------------------------------------------------------+ 11555 11556+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11557|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`| 11558+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11559 11560+----------------------------------------------------------------------------------------------------+ 11561|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`| 11562+----------------------------------------------------------------------------------------------------+ 11563 11564 11565-Wunknown-sanitizers 11566-------------------- 11567This diagnostic is enabled by default. 11568 11569**Diagnostic text:** 11570 11571+-----------------------------------------------------------------------------------------------+ 11572|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`| 11573+-----------------------------------------------------------------------------------------------+ 11574 11575 11576-Wunknown-warning-option 11577------------------------ 11578This diagnostic is enabled by default. 11579 11580**Diagnostic text:** 11581 11582+----------------------------------------------------------------------------------------------------+ 11583|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`| 11584+----------------------------------------------------------------------------------------------------+ 11585 11586+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 11587|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+| 11588| ||:diagtext:`warning`|| || || 11589| |+-------------------+| |+------------------------------------------------------------+| 11590| ||:diagtext:`remark` || ||+----------------------------------------------------------+|| 11591| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`||| 11592| | | ||+----------------------------------------------------------+|| 11593| | | |+------------------------------------------------------------+| 11594+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 11595 11596+-------------------------------------------------------------------------------------------------------------------------------------------+ 11597|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`| 11598+-------------------------------------------------------------------------------------------------------------------------------------------+ 11599 11600 11601-Wunnamed-type-template-args 11602---------------------------- 11603Some of the diagnostics controlled by this flag are enabled by default. 11604 11605Also controls `-Wc++98-compat-unnamed-type-template-args`_. 11606 11607**Diagnostic text:** 11608 11609+--------------------------------------------------------------------------+ 11610|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`| 11611+--------------------------------------------------------------------------+ 11612 11613 11614-Wunneeded-internal-declaration 11615------------------------------- 11616**Diagnostic text:** 11617 11618+---------------------------+----------------------+---------------------------------------------------------------------------------+ 11619|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`| 11620| ||:diagtext:`function`|| | 11621| |+--------------------+| | 11622| ||:diagtext:`variable`|| | 11623| |+--------------------+| | 11624+---------------------------+----------------------+---------------------------------------------------------------------------------+ 11625 11626+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11627|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`| 11628+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11629 11630 11631-Wunneeded-member-function 11632-------------------------- 11633**Diagnostic text:** 11634 11635+---------------------------------------------------------------------------------------------------------------------------------------+ 11636|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`| 11637+---------------------------------------------------------------------------------------------------------------------------------------+ 11638 11639 11640-Wunreachable-code 11641------------------ 11642Also controls `-Wunreachable-code-loop-increment`_. 11643 11644**Diagnostic text:** 11645 11646+------------------------------------------------------------------+ 11647|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`| 11648+------------------------------------------------------------------+ 11649 11650 11651-Wunreachable-code-aggressive 11652----------------------------- 11653Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_. 11654 11655 11656-Wunreachable-code-break 11657------------------------ 11658**Diagnostic text:** 11659 11660+---------------------------------------------------------------------+ 11661|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`| 11662+---------------------------------------------------------------------+ 11663 11664 11665-Wunreachable-code-loop-increment 11666--------------------------------- 11667**Diagnostic text:** 11668 11669+-------------------------------------------------------------------------------------------------+ 11670|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`| 11671+-------------------------------------------------------------------------------------------------+ 11672 11673 11674-Wunreachable-code-return 11675------------------------- 11676**Diagnostic text:** 11677 11678+----------------------------------------------------------------------+ 11679|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`| 11680+----------------------------------------------------------------------+ 11681 11682 11683-Wunsequenced 11684------------- 11685This diagnostic is enabled by default. 11686 11687**Diagnostic text:** 11688 11689+----------------------------------------------------------------------------------------------------+ 11690|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`| 11691+----------------------------------------------------------------------------------------------------+ 11692 11693+-----------------------------------------------------------------------------------------------------+ 11694|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`| 11695+-----------------------------------------------------------------------------------------------------+ 11696 11697 11698-Wunsupported-abs 11699----------------- 11700This diagnostic is enabled by default. 11701 11702**Diagnostic text:** 11703 11704+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11705|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 11706+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11707 11708+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11709|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 11710+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11711 11712 11713-Wunsupported-availability-guard 11714-------------------------------- 11715This diagnostic is enabled by default. 11716 11717**Diagnostic text:** 11718 11719+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 11720|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`| 11721| ||:diagtext:`@available` || ||:diagtext:`@available` || | 11722| |+----------------------------------+| |+----------------------------------+| | 11723| ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| | 11724| |+----------------------------------+| |+----------------------------------+| | 11725+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 11726 11727 11728-Wunsupported-cb 11729---------------- 11730This diagnostic is enabled by default. 11731 11732**Diagnostic text:** 11733 11734+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11735|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 11736+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11737 11738 11739-Wunsupported-dll-base-class-template 11740------------------------------------- 11741**Diagnostic text:** 11742 11743+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 11744|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`| 11745| ||:diagtext:`already instantiated` || | 11746| |+----------------------------------+| | 11747| ||:diagtext:`explicitly specialized`|| | 11748| |+----------------------------------+| | 11749+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 11750 11751 11752-Wunsupported-friend 11753-------------------- 11754This diagnostic is enabled by default. 11755 11756**Diagnostic text:** 11757 11758+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11759|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`| 11760+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11761 11762+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11763|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`| 11764+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11765 11766 11767-Wunsupported-gpopt 11768------------------- 11769This diagnostic is enabled by default. 11770 11771**Diagnostic text:** 11772 11773+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 11774|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 11775| || || | 11776| |+-----------------------------------------+| | 11777| ||:diagtext:`the implicit usage of` |nbsp| || | 11778| |+-----------------------------------------+| | 11779+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 11780 11781 11782-Wunsupported-nan 11783----------------- 11784This diagnostic is enabled by default. 11785 11786**Diagnostic text:** 11787 11788+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11789|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 11790+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11791 11792+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11793|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 11794+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11795 11796 11797-Wunsupported-target-opt 11798------------------------ 11799This diagnostic is enabled by default. 11800 11801**Diagnostic text:** 11802 11803+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11804|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 11805+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11806 11807 11808-Wunsupported-visibility 11809------------------------ 11810This diagnostic is enabled by default. 11811 11812**Diagnostic text:** 11813 11814+------------------------------------------------------------------------------------------------------+ 11815|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`| 11816+------------------------------------------------------------------------------------------------------+ 11817 11818 11819-Wunusable-partial-specialization 11820--------------------------------- 11821This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error. 11822 11823**Diagnostic text:** 11824 11825+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 11826|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`| 11827| ||:diagtext:`class` || ||:diagtext:`a template parameter`|| | 11828| |+--------------------+| |+--------------------------------+| | 11829| ||:diagtext:`variable`|| ||:diagtext:`template parameters` || | 11830| |+--------------------+| |+--------------------------------+| | 11831+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 11832 11833 11834-Wunused 11835-------- 11836Some of the diagnostics controlled by this flag are enabled by default. 11837 11838Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_. 11839 11840 11841-Wunused-argument 11842----------------- 11843This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11844 11845-Wunused-command-line-argument 11846------------------------------ 11847This diagnostic is enabled by default. 11848 11849**Diagnostic text:** 11850 11851+-------------------------------------------------------------------------------------------------------------------------------+ 11852|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`| 11853+-------------------------------------------------------------------------------------------------------------------------------+ 11854 11855+---------------------------------------------------------------------------------------------------------------+ 11856|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`| 11857+---------------------------------------------------------------------------------------------------------------+ 11858 11859+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 11860|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+| 11861| ||+------------------------------------------------------------------+|| 11862| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`||| 11863| ||+------------------------------------------------------------------+|| 11864| |+--------------------------------------------------------------------+| 11865| || || 11866| |+--------------------------------------------------------------------+| 11867+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 11868 11869+----------------------------------------------------------------------------------------------------------------+ 11870|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`| 11871+----------------------------------------------------------------------------------------------------------------+ 11872 11873+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 11874|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+| 11875| ||+-------------------------------------------------------------------------+|| 11876| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`||| 11877| ||+-------------------------------------------------------------------------+|| 11878| |+---------------------------------------------------------------------------+| 11879| || || 11880| |+---------------------------------------------------------------------------+| 11881+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 11882 11883+---------------------------------------------------------------------------------------------------------+ 11884|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`| 11885+---------------------------------------------------------------------------------------------------------+ 11886 11887+----------------------------------------------------------------------------------------------------------------------+ 11888|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`| 11889+----------------------------------------------------------------------------------------------------------------------+ 11890 11891 11892-Wunused-comparison 11893------------------- 11894This diagnostic is enabled by default. 11895 11896**Diagnostic text:** 11897 11898+---------------------------+------------------------+--------------------------------------------+ 11899|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`| 11900| ||:diagtext:`equality` || | 11901| |+----------------------+| | 11902| ||:diagtext:`inequality`|| | 11903| |+----------------------+| | 11904| ||:diagtext:`relational`|| | 11905| |+----------------------+| | 11906| ||:diagtext:`three-way` || | 11907| |+----------------------+| | 11908+---------------------------+------------------------+--------------------------------------------+ 11909 11910 11911-Wunused-const-variable 11912----------------------- 11913**Diagnostic text:** 11914 11915+------------------------------------------------------------------------------+ 11916|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 11917+------------------------------------------------------------------------------+ 11918 11919 11920-Wunused-exception-parameter 11921---------------------------- 11922**Diagnostic text:** 11923 11924+-----------------------------------------------------------------------------------------+ 11925|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`| 11926+-----------------------------------------------------------------------------------------+ 11927 11928 11929-Wunused-function 11930----------------- 11931Also controls `-Wunneeded-internal-declaration`_. 11932 11933**Diagnostic text:** 11934 11935+------------------------------------------------------------------------------+ 11936|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`| 11937+------------------------------------------------------------------------------+ 11938 11939 11940-Wunused-getter-return-value 11941---------------------------- 11942This diagnostic is enabled by default. 11943 11944**Diagnostic text:** 11945 11946+------------------------------------------------------------------------------------------------------------------+ 11947|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`| 11948+------------------------------------------------------------------------------------------------------------------+ 11949 11950 11951-Wunused-label 11952-------------- 11953**Diagnostic text:** 11954 11955+---------------------------------------------------------------------------+ 11956|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`| 11957+---------------------------------------------------------------------------+ 11958 11959 11960-Wunused-lambda-capture 11961----------------------- 11962**Diagnostic text:** 11963 11964+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 11965|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+| 11966| ||:diagtext:`used` || 11967| |+------------------------------------------------+| 11968| ||:diagtext:`required to be captured for this use`|| 11969| |+------------------------------------------------+| 11970+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 11971 11972 11973-Wunused-local-typedef 11974---------------------- 11975**Diagnostic text:** 11976 11977+-----------------------------------------------------+------------------------+------------------------+ 11978|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`| 11979| ||:diagtext:`typedef` || | 11980| |+----------------------+| | 11981| ||:diagtext:`type alias`|| | 11982| |+----------------------+| | 11983+-----------------------------------------------------+------------------------+------------------------+ 11984 11985 11986-Wunused-local-typedefs 11987----------------------- 11988Synonym for `-Wunused-local-typedef`_. 11989 11990 11991-Wunused-macros 11992--------------- 11993**Diagnostic text:** 11994 11995+--------------------------------------------------------+ 11996|:warning:`warning:` |nbsp| :diagtext:`macro is not used`| 11997+--------------------------------------------------------+ 11998 11999 12000-Wunused-member-function 12001------------------------ 12002Also controls `-Wunneeded-member-function`_. 12003 12004**Diagnostic text:** 12005 12006+-------------------------------------------------------------------------------------+ 12007|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`| 12008+-------------------------------------------------------------------------------------+ 12009 12010 12011-Wunused-parameter 12012------------------ 12013**Diagnostic text:** 12014 12015+-------------------------------------------------------------------------------+ 12016|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`| 12017+-------------------------------------------------------------------------------+ 12018 12019 12020-Wunused-private-field 12021---------------------- 12022**Diagnostic text:** 12023 12024+-----------------------------------------------------------------------------------------------------------+ 12025|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`| 12026+-----------------------------------------------------------------------------------------------------------+ 12027 12028 12029-Wunused-property-ivar 12030---------------------- 12031**Diagnostic text:** 12032 12033+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12034|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`| 12035+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12036 12037 12038-Wunused-result 12039--------------- 12040This diagnostic is enabled by default. 12041 12042**Diagnostic text:** 12043 12044+-------------------------------------------------------------------------------------------------------------------------------------------+ 12045|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 12046+-------------------------------------------------------------------------------------------------------------------------------------------+ 12047 12048 12049-Wunused-template 12050----------------- 12051Also controls `-Wunneeded-internal-declaration`_. 12052 12053**Diagnostic text:** 12054 12055+-----------------------------------------------------+----------------------+----------------------------------------------------+ 12056|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`| 12057| ||:diagtext:`function`|| | 12058| |+--------------------+| | 12059| ||:diagtext:`variable`|| | 12060| |+--------------------+| | 12061+-----------------------------------------------------+----------------------+----------------------------------------------------+ 12062 12063 12064-Wunused-value 12065-------------- 12066This diagnostic is enabled by default. 12067 12068Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_. 12069 12070**Diagnostic text:** 12071 12072+-------------------------------------------------------------------------------------------------------------------------------------------+ 12073|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 12074+-------------------------------------------------------------------------------------------------------------------------------------------+ 12075 12076+----------------------------------------------------------------------------------------------------------------------------+ 12077|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`| 12078+----------------------------------------------------------------------------------------------------------------------------+ 12079 12080+---------------------------------------------------------------+ 12081|:warning:`warning:` |nbsp| :diagtext:`expression result unused`| 12082+---------------------------------------------------------------+ 12083 12084+-----------------------------------------------------------------------------------------------+ 12085|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`| 12086+-----------------------------------------------------------------------------------------------+ 12087 12088 12089-Wunused-variable 12090----------------- 12091Also controls `-Wunused-const-variable`_. 12092 12093**Diagnostic text:** 12094 12095+------------------------------------------------------------------------------+ 12096|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 12097+------------------------------------------------------------------------------+ 12098 12099 12100-Wunused-volatile-lvalue 12101------------------------ 12102This diagnostic is enabled by default. 12103 12104**Diagnostic text:** 12105 12106+----------------------------------------------------------------------------------------------------------------+ 12107|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`| 12108+----------------------------------------------------------------------------------------------------------------+ 12109 12110 12111-Wused-but-marked-unused 12112------------------------ 12113**Diagnostic text:** 12114 12115+---------------------------------------------------------------------------------------------+ 12116|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`| 12117+---------------------------------------------------------------------------------------------+ 12118 12119 12120-Wuser-defined-literals 12121----------------------- 12122This diagnostic is enabled by default. 12123 12124**Diagnostic text:** 12125 12126+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 12127|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+| 12128| ||:diagtext:`; no literal will invoke this operator`|| 12129| |+--------------------------------------------------+| 12130| || || 12131| |+--------------------------------------------------+| 12132+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 12133 12134 12135-Wuser-defined-warnings 12136----------------------- 12137This diagnostic is enabled by default. 12138 12139**Diagnostic text:** 12140 12141The text of this diagnostic is not controlled by Clang. 12142 12143 12144-Wvarargs 12145--------- 12146This diagnostic is enabled by default. 12147 12148**Diagnostic text:** 12149 12150+-----------------------------------------------------------------------------------------------------+ 12151|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`| 12152+-----------------------------------------------------------------------------------------------------+ 12153 12154+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12155|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`| 12156+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12157 12158+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 12159|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`| 12160| ||:diagtext:`an object that undergoes default argument promotion`|| | 12161| |+---------------------------------------------------------------+| | 12162| ||:diagtext:`an object of reference type` || | 12163| |+---------------------------------------------------------------+| | 12164| ||:diagtext:`a parameter declared with the 'register' keyword` || | 12165| |+---------------------------------------------------------------+| | 12166+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 12167 12168 12169-Wvariadic-macros 12170----------------- 12171Some of the diagnostics controlled by this flag are enabled by default. 12172 12173**Diagnostic text:** 12174 12175+--------------------------------------------------------------------------------+ 12176|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 12177+--------------------------------------------------------------------------------+ 12178 12179+-----------------------------------------------------------------------------------------------------------+ 12180|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`| 12181+-----------------------------------------------------------------------------------------------------------+ 12182 12183+------------------------------------------------------------------------+ 12184|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 12185+------------------------------------------------------------------------+ 12186 12187 12188-Wvec-elem-size 12189--------------- 12190This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error. 12191 12192**Diagnostic text:** 12193 12194+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12195|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 12196+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12197 12198 12199-Wvector-conversion 12200------------------- 12201**Diagnostic text:** 12202 12203+------------------------------------------------------------------------+----------------------------------------------------------------+ 12204|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+| 12205| ||:diagtext:`assigning to different types` || 12206| |+--------------------------------------------------------------+| 12207| ||:diagtext:`passing to parameter of different type` || 12208| |+--------------------------------------------------------------+| 12209| ||:diagtext:`returning from function with different return type`|| 12210| |+--------------------------------------------------------------+| 12211| ||:diagtext:`converting between types` || 12212| |+--------------------------------------------------------------+| 12213| ||:diagtext:`initializing with expression of different type` || 12214| |+--------------------------------------------------------------+| 12215| ||:diagtext:`sending to parameter of different type` || 12216| |+--------------------------------------------------------------+| 12217| ||:diagtext:`casting between types` || 12218| |+--------------------------------------------------------------+| 12219+------------------------------------------------------------------------+----------------------------------------------------------------+ 12220 12221 12222-Wvector-conversions 12223-------------------- 12224Synonym for `-Wvector-conversion`_. 12225 12226 12227-Wvexing-parse 12228-------------- 12229This diagnostic is enabled by default. 12230 12231**Diagnostic text:** 12232 12233+----------------------------------------------------------------------------------------------+ 12234|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`| 12235+----------------------------------------------------------------------------------------------+ 12236 12237+-----------------------------------------------------------------------------------------------+ 12238|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`| 12239+-----------------------------------------------------------------------------------------------+ 12240 12241+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12242|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`| 12243+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12244 12245 12246-Wvisibility 12247------------ 12248This diagnostic is enabled by default. 12249 12250**Diagnostic text:** 12251 12252+---------------------------------------------------------------------------------------------------------------------------------------------+ 12253|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 12254+---------------------------------------------------------------------------------------------------------------------------------------------+ 12255 12256+----------------------------------------------------------------------------------------------------------------------------------------------+ 12257|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 12258+----------------------------------------------------------------------------------------------------------------------------------------------+ 12259 12260 12261-Wvla 12262----- 12263**Diagnostic text:** 12264 12265+-----------------------------------------------------------------+ 12266|:warning:`warning:` |nbsp| :diagtext:`variable length array used`| 12267+-----------------------------------------------------------------+ 12268 12269 12270-Wvla-extension 12271--------------- 12272**Diagnostic text:** 12273 12274+-------------------------------------------------------------------------------+ 12275|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`| 12276+-------------------------------------------------------------------------------+ 12277 12278 12279-Wvoid-ptr-dereference 12280---------------------- 12281This diagnostic is enabled by default. 12282 12283**Diagnostic text:** 12284 12285+--------------------------------------------------------------------------------------------------------------------+ 12286|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`| 12287+--------------------------------------------------------------------------------------------------------------------+ 12288 12289 12290-Wvolatile-register-var 12291----------------------- 12292This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 12293 12294-Wweak-template-vtables 12295----------------------- 12296**Diagnostic text:** 12297 12298+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12299|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`| 12300+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12301 12302 12303-Wweak-vtables 12304-------------- 12305**Diagnostic text:** 12306 12307+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12308|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`| 12309+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12310 12311 12312-Wwritable-strings 12313------------------ 12314This diagnostic is enabled by default. 12315 12316Also controls `-Wdeprecated-writable-strings`_. 12317 12318**Diagnostic text:** 12319 12320+-------------------------------------------------------------------------------------------------------------------------+ 12321|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`| 12322+-------------------------------------------------------------------------------------------------------------------------+ 12323 12324 12325-Wwrite-strings 12326--------------- 12327Synonym for `-Wwritable-strings`_. 12328 12329 12330-Wzero-as-null-pointer-constant 12331------------------------------- 12332**Diagnostic text:** 12333 12334+--------------------------------------------------------------------+ 12335|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`| 12336+--------------------------------------------------------------------+ 12337 12338 12339-Wzero-length-array 12340------------------- 12341**Diagnostic text:** 12342 12343+------------------------------------------------------------------------+ 12344|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`| 12345+------------------------------------------------------------------------+ 12346 12347 12348