1.. 2 ------------------------------------------------------------------- 3 NOTE: This file is automatically generated by running clang-tblgen 4 -gen-diag-docs. Do not edit this file by hand!! 5 ------------------------------------------------------------------- 6 7.. Add custom CSS to output. FIXME: This should be put into <head> rather 8 than the start of <body>. 9.. raw:: html 10 11 <style> 12 table.docutils { 13 width: 1px; 14 } 15 table.docutils td { 16 border: none; 17 padding: 0 0 0 0.2em; 18 vertical-align: middle; 19 white-space: nowrap; 20 width: 1px; 21 font-family: monospace; 22 } 23 table.docutils tr + tr { 24 border-top: 0.2em solid #aaa; 25 } 26 .error { 27 font-family: monospace; 28 font-weight: bold; 29 color: #c00; 30 } 31 .warning { 32 font-family: monospace; 33 font-weight: bold; 34 color: #80a; 35 } 36 .remark { 37 font-family: monospace; 38 font-weight: bold; 39 color: #00c; 40 } 41 .diagtext { 42 font-family: monospace; 43 font-weight: bold; 44 } 45 </style> 46 47.. FIXME: rST doesn't support formatting this, so we format all <td> elements 48 as monospace font face instead. 49.. |nbsp| unicode:: 0xA0 50 :trim: 51 52.. Roles generated by clang-tblgen. 53.. role:: error 54.. role:: warning 55.. role:: remark 56.. role:: diagtext 57.. role:: placeholder(emphasis) 58 59========================= 60Diagnostic flags in Clang 61========================= 62.. contents:: 63 :local: 64 65Introduction 66============ 67 68This page lists the diagnostic flags currently supported by Clang. 69 70Diagnostic flags 71================ 72 73-W 74-- 75Synonym for `-Wextra`_. 76 77 78-W#pragma-messages 79------------------ 80This diagnostic is enabled by default. 81 82**Diagnostic text:** 83 84The text of this diagnostic is not controlled by Clang. 85 86 87-W#warnings 88----------- 89This diagnostic is enabled by default. 90 91**Diagnostic text:** 92 93The text of this diagnostic is not controlled by Clang. 94 95 96-WCFString-literal 97------------------ 98This diagnostic is enabled by default. 99 100**Diagnostic text:** 101 102+------------------------------------------------------------------------------------------------------------------------------------+ 103|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`| 104+------------------------------------------------------------------------------------------------------------------------------------+ 105 106 107-WCL4 108----- 109Some of the diagnostics controlled by this flag are enabled by default. 110 111Controls `-Wall`_, `-Wextra`_. 112 113 114-WIndependentClass-attribute 115---------------------------- 116This diagnostic is enabled by default. 117 118**Diagnostic text:** 119 120+------------------------------------------------------------------------------------------------------------------------------+ 121|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`| 122+------------------------------------------------------------------------------------------------------------------------------+ 123 124+----------------------------------------------------------------------------------------------------------------------------------------------------+ 125|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`| 126+----------------------------------------------------------------------------------------------------------------------------------------------------+ 127 128 129-WNSObject-attribute 130-------------------- 131This diagnostic is enabled by default. 132 133**Diagnostic text:** 134 135+--------------------------------------------------------------------------------------------------------------+ 136|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`| 137+--------------------------------------------------------------------------------------------------------------+ 138 139 140-Wabi 141----- 142This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 143 144-Wabsolute-value 145---------------- 146This diagnostic is enabled by default. 147 148**Diagnostic text:** 149 150+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 151|:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`| 152+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 153 154+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 155|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`| 156| ||:diagtext:`pointer` || | 157| |+--------------------+| | 158| ||:diagtext:`function`|| | 159| |+--------------------+| | 160| ||:diagtext:`array` || | 161| |+--------------------+| | 162+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 163 164+------------------------------------------------------------------------------------------------------------------------------------------+ 165|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`| 166+------------------------------------------------------------------------------------------------------------------------------------------+ 167 168+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 169|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`| 170| ||:diagtext:`integer` || ||:diagtext:`integer` || | 171| |+--------------------------+| |+--------------------------+| | 172| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| | 173| |+--------------------------+| |+--------------------------+| | 174| ||:diagtext:`complex` || ||:diagtext:`complex` || | 175| |+--------------------------+| |+--------------------------+| | 176+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 177 178 179-Wabstract-final-class 180---------------------- 181This diagnostic is enabled by default. 182 183**Diagnostic text:** 184 185+-----------------------------------------------------------------+--------------------+-------------+ 186|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`| 187| ||:diagtext:`final` || | 188| |+------------------+| | 189| ||:diagtext:`sealed`|| | 190| |+------------------+| | 191+-----------------------------------------------------------------+--------------------+-------------+ 192 193 194-Wabstract-vbase-init 195--------------------- 196**Diagnostic text:** 197 198+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 199|:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`| 200+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 201 202 203-Waddress 204--------- 205This diagnostic is enabled by default. 206 207Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_. 208 209 210-Waddress-of-packed-member 211-------------------------- 212This diagnostic is enabled by default. 213 214**Diagnostic text:** 215 216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 217|:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`| 218+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 219 220 221-Waddress-of-temporary 222---------------------- 223This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error. 224 225**Diagnostic text:** 226 227+-----------------------------------------------------------------------------------------------------------+ 228|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`| 229+-----------------------------------------------------------------------------------------------------------+ 230 231 232-Waggregate-return 233------------------ 234This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 235 236-Wall 237----- 238Some of the diagnostics controlled by this flag are enabled by default. 239 240Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_. 241 242 243-Walloca-with-align-alignof 244--------------------------- 245This diagnostic is enabled by default. 246 247**Diagnostic text:** 248 249+--------------------------------------------------------------------------------------------------------------------+ 250|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`| 251+--------------------------------------------------------------------------------------------------------------------+ 252 253 254-Wambiguous-delete 255------------------ 256This diagnostic is enabled by default. 257 258**Diagnostic text:** 259 260+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 261|:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`| 262+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 263 264 265-Wambiguous-ellipsis 266-------------------- 267This diagnostic is enabled by default. 268 269**Diagnostic text:** 270 271+------------------------------------------------------------------------------------------------+---------------------------------------------+ 272|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+| 273| ||:diagtext:`, not a function parameter pack`|| 274| |+-------------------------------------------+| 275| || || 276| |+-------------------------------------------+| 277+------------------------------------------------------------------------------------------------+---------------------------------------------+ 278 279 280-Wambiguous-macro 281----------------- 282This diagnostic is enabled by default. 283 284**Diagnostic text:** 285 286+-------------------------------------------------------------------------------------------+ 287|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`| 288+-------------------------------------------------------------------------------------------+ 289 290 291-Wambiguous-member-template 292--------------------------- 293This diagnostic is enabled by default. 294 295**Diagnostic text:** 296 297+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 298|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`| 299+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 300 301 302-Wanalyzer-incompatible-plugin 303------------------------------ 304This diagnostic is enabled by default. 305 306**Diagnostic text:** 307 308+----------------------------------------------------------------------------------------------------------------------------------------+ 309|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`| 310+----------------------------------------------------------------------------------------------------------------------------------------+ 311 312 313-Wanonymous-pack-parens 314----------------------- 315This diagnostic is enabled by default. 316 317**Diagnostic text:** 318 319+---------------------------------------------------------------------------------------------------------+ 320|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`| 321+---------------------------------------------------------------------------------------------------------+ 322 323 324-Warc 325----- 326This diagnostic is enabled by default. 327 328Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_. 329 330 331-Warc-bridge-casts-disallowed-in-nonarc 332--------------------------------------- 333This diagnostic is enabled by default. 334 335**Diagnostic text:** 336 337+-------------------------------------------------------------------------------------------------------------+ 338|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`| 339+-------------------------------------------------------------------------------------------------------------+ 340 341 342-Warc-maybe-repeated-use-of-weak 343-------------------------------- 344**Diagnostic text:** 345 346+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 347|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 348| ||:diagtext:`variable` || ||:diagtext:`function`|| | 349| |+-----------------------------+| |+--------------------+| | 350| ||:diagtext:`property` || ||:diagtext:`method` || | 351| |+-----------------------------+| |+--------------------+| | 352| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 353| |+-----------------------------+| |+--------------------+| | 354| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 355| |+-----------------------------+| |+--------------------+| | 356+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 357 358 359-Warc-non-pod-memaccess 360----------------------- 361This diagnostic is enabled by default. 362 363**Diagnostic text:** 364 365+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 366|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`| 367| ||:diagtext:`destination for`|| | 368| |+---------------------------+| | 369| ||:diagtext:`source of` || | 370| |+---------------------------+| | 371+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 372 373 374-Warc-performSelector-leaks 375--------------------------- 376This diagnostic is enabled by default. 377 378**Diagnostic text:** 379 380+-------------------------------------------------------------------------------------------------------+ 381|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`| 382+-------------------------------------------------------------------------------------------------------+ 383 384 385-Warc-repeated-use-of-weak 386-------------------------- 387Also controls `-Warc-maybe-repeated-use-of-weak`_. 388 389**Diagnostic text:** 390 391+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 392|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 393| ||:diagtext:`variable` || ||:diagtext:`function`|| | 394| |+-----------------------------+| |+--------------------+| | 395| ||:diagtext:`property` || ||:diagtext:`method` || | 396| |+-----------------------------+| |+--------------------+| | 397| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 398| |+-----------------------------+| |+--------------------+| | 399| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 400| |+-----------------------------+| |+--------------------+| | 401+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 402 403 404-Warc-retain-cycles 405------------------- 406This diagnostic is enabled by default. 407 408**Diagnostic text:** 409 410+------------------------------------------------------------------------------------------------------------------------------------------------------+ 411|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`| 412+------------------------------------------------------------------------------------------------------------------------------------------------------+ 413 414 415-Warc-unsafe-retained-assign 416---------------------------- 417This diagnostic is enabled by default. 418 419**Diagnostic text:** 420 421+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 422|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 423| ||:diagtext:`array literal` || ||:diagtext:`property`|| | 424| |+-------------------------------+| |+--------------------+| | 425| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| | 426| |+-------------------------------+| |+--------------------+| | 427| ||:diagtext:`numeric literal` || | | | 428| |+-------------------------------+| | | | 429| ||:diagtext:`boxed expression` || | | | 430| |+-------------------------------+| | | | 431| ||:diagtext:`<should not happen>`|| | | | 432| |+-------------------------------+| | | | 433| ||:diagtext:`block literal` || | | | 434| |+-------------------------------+| | | | 435+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 436 437+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 438|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 439| ||:diagtext:`weak` || ||:diagtext:`property`|| | 440| |+------------------------------+| |+--------------------+| | 441| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| | 442| |+------------------------------+| |+--------------------+| | 443+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 444 445+-----------------------------------------------------------------------------------------------------------------------------+ 446|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`| 447+-----------------------------------------------------------------------------------------------------------------------------+ 448 449 450-Wargument-outside-range 451------------------------ 452This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error. 453 454**Diagnostic text:** 455 456+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 457|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`| 458+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 459 460 461-Warray-bounds 462-------------- 463This diagnostic is enabled by default. 464 465**Diagnostic text:** 466 467+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 468|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 469| || || | 470| |+-------------+| | 471| ||:diagtext:`s`|| | 472| |+-------------+| | 473+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 474 475+----------------------------------------------------------------------------------------------------------------------------------+ 476|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`| 477+----------------------------------------------------------------------------------------------------------------------------------+ 478 479+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+ 480|:warning:`warning:` |nbsp| :diagtext:`array argument is too small;` |nbsp| |+--------------------------------------------------------------------------+|:diagtext:`, callee requires at least` |nbsp| :placeholder:`B`| 481| ||+------------------------------------------------------------------------+|| | 482| |||:diagtext:`contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements`||| | 483| ||+------------------------------------------------------------------------+|| | 484| |+--------------------------------------------------------------------------+| | 485| ||+----------------------------------------------+ || | 486| |||:diagtext:`is of size` |nbsp| :placeholder:`A`| || | 487| ||+----------------------------------------------+ || | 488| |+--------------------------------------------------------------------------+| | 489+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+ 490 491+-----------------------------------------------------------------------------------+ 492|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`| 493+-----------------------------------------------------------------------------------+ 494 495 496-Warray-bounds-pointer-arithmetic 497--------------------------------- 498**Diagnostic text:** 499 500+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 501|:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 502| || || | 503| |+-------------+| | 504| ||:diagtext:`s`|| | 505| |+-------------+| | 506+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 507 508+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 509|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`| 510+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 511 512 513-Wasm 514----- 515This diagnostic is enabled by default. 516 517Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_. 518 519 520-Wasm-ignored-qualifier 521----------------------- 522This diagnostic is enabled by default. 523 524**Diagnostic text:** 525 526+----------------------------------------------------------------------------------------------------------+ 527|:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`| 528+----------------------------------------------------------------------------------------------------------+ 529 530+-------------------------------------------------------------------------------------+ 531|:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`| 532+-------------------------------------------------------------------------------------+ 533 534 535-Wasm-operand-widths 536-------------------- 537This diagnostic is enabled by default. 538 539**Diagnostic text:** 540 541+-----------------------------------------------------------------------------------------------------------------------+ 542|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`| 543+-----------------------------------------------------------------------------------------------------------------------+ 544 545 546-Wassign-enum 547------------- 548**Diagnostic text:** 549 550+---------------------------------------------------------------------------------------------------------------+ 551|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`| 552+---------------------------------------------------------------------------------------------------------------+ 553 554 555-Wassume 556-------- 557This diagnostic is enabled by default. 558 559**Diagnostic text:** 560 561+-----------------------------------------------------------------------------------------------------------------------------------------+ 562|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`| 563+-----------------------------------------------------------------------------------------------------------------------------------------+ 564 565 566-Wat-protocol 567------------- 568This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 569 570-Watimport-in-framework-header 571------------------------------ 572This diagnostic is enabled by default. 573 574**Diagnostic text:** 575 576+------------------------------------------------------------------------------------------------------------------------------------+ 577|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`| 578+------------------------------------------------------------------------------------------------------------------------------------+ 579 580 581-Watomic-alignment 582------------------ 583This diagnostic is enabled by default. 584 585**Diagnostic text:** 586 587+---------------------------+------------------------+------------------------------------------------------------------------------+ 588|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`| 589| ||:diagtext:`large` || | 590| |+----------------------+| | 591| ||:diagtext:`misaligned`|| | 592| |+----------------------+| | 593+---------------------------+------------------------+------------------------------------------------------------------------------+ 594 595 596-Watomic-implicit-seq-cst 597------------------------- 598**Diagnostic text:** 599 600+---------------------------------------------------------------------------------------------------------------------------------------+ 601|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`| 602+---------------------------------------------------------------------------------------------------------------------------------------+ 603 604 605-Watomic-memory-ordering 606------------------------ 607This diagnostic is enabled by default. 608 609**Diagnostic text:** 610 611+-------------------------------------------------------------------------------------------+ 612|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`| 613+-------------------------------------------------------------------------------------------+ 614 615 616-Watomic-properties 617------------------- 618Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_. 619 620 621-Watomic-property-with-user-defined-accessor 622-------------------------------------------- 623This diagnostic is enabled by default. 624 625**Diagnostic text:** 626 627+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 628|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+| 629| ||:diagtext:`getter`|| ||:diagtext:`getter`|| 630| |+------------------+| |+------------------+| 631| ||:diagtext:`setter`|| ||:diagtext:`setter`|| 632| |+------------------+| |+------------------+| 633+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 634 635 636-Wattribute-packed-for-bitfield 637------------------------------- 638This diagnostic is enabled by default. 639 640**Diagnostic text:** 641 642+-------------------------------------------------------------------------------------------------------------------------------------------------+ 643|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`| 644+-------------------------------------------------------------------------------------------------------------------------------------------------+ 645 646 647-Wattributes 648------------ 649This diagnostic is enabled by default. 650 651Controls `-Wignored-attributes`_, `-Wunknown-attributes`_. 652 653 654-Wauto-disable-vptr-sanitizer 655----------------------------- 656This diagnostic is enabled by default. 657 658**Diagnostic text:** 659 660+------------------------------------------------------------------------------------------------------+ 661|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`| 662+------------------------------------------------------------------------------------------------------+ 663 664 665-Wauto-import 666------------- 667**Diagnostic text:** 668 669+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 670|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`| 671| ||:diagtext:`include` || | 672| |+-------------------------------+| | 673| ||:diagtext:`import` || | 674| |+-------------------------------+| | 675| ||:diagtext:`include\_next` || | 676| |+-------------------------------+| | 677| ||:diagtext:`\_\_include\_macros`|| | 678| |+-------------------------------+| | 679+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 680 681 682-Wauto-storage-class 683-------------------- 684This diagnostic is enabled by default. 685 686**Diagnostic text:** 687 688+---------------------------------------------------------------------------------------------------------------------------------------------+ 689|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`| 690+---------------------------------------------------------------------------------------------------------------------------------------------+ 691 692 693-Wauto-var-id 694------------- 695This diagnostic is enabled by default. 696 697**Diagnostic text:** 698 699+-------------------------------------------------------------------------------------------------------+ 700|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`| 701+-------------------------------------------------------------------------------------------------------+ 702 703 704-Wavailability 705-------------- 706This diagnostic is enabled by default. 707 708**Diagnostic text:** 709 710+--------------------------------------------------------------------------------------------------------------+ 711|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`| 712+--------------------------------------------------------------------------------------------------------------+ 713 714+------------------------------------------------------------------------------+----------------------------------------+ 715|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+| 716| ||:diagtext:`on '+load' method` || 717| |+--------------------------------------+| 718| ||:diagtext:`with constructor attribute`|| 719| |+--------------------------------------+| 720| ||:diagtext:`with destructor attribute` || 721| |+--------------------------------------+| 722+------------------------------------------------------------------------------+----------------------------------------+ 723 724+---------------------------------------------------------------------------------------------------------------+ 725|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`| 726+---------------------------------------------------------------------------------------------------------------+ 727 728+------------------------------------------------------------------------------------------------------------------------+ 729|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`| 730+------------------------------------------------------------------------------------------------------------------------+ 731 732+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 733|:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`| 734| ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| | 735| |+----------------------+| |+----------------------+| | 736| ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| | 737| |+----------------------+| |+----------------------+| | 738| ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || | 739| |+----------------------+| |+----------------------+| | 740+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 741 742+---------------------------------------------------------------------------------------------------------------------------+ 743|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`| 744+---------------------------------------------------------------------------------------------------------------------------+ 745 746+---------------------------------------------------------------------------------------+ 747|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`| 748+---------------------------------------------------------------------------------------+ 749 750+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 751|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 752| || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| | 753| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 754| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || | 755| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 756| | | ||:diagtext:`obsoleted before` || | | | 757| | | |+-----------------------------+| | | | 758+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 759 760+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 761|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`| 762| || || ||:diagtext:`the protocol method it implements`|| | 763| |+------------------------------+| |+---------------------------------------------+| | 764| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || | 765| |+------------------------------+| |+---------------------------------------------+| | 766+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 767 768 769-Wavr-rtlib-linking-quirks 770-------------------------- 771This diagnostic is enabled by default. 772 773**Diagnostic text:** 774 775+----------------------------------------------------------------------------------------------------------------------------------------+ 776|:warning:`warning:` |nbsp| :diagtext:`support for linking stdlibs for microcontroller '`:placeholder:`A`:diagtext:`' is not implemented`| 777+----------------------------------------------------------------------------------------------------------------------------------------+ 778 779+-------------------------------------------------------------------------------------------------------------------------+ 780|:warning:`warning:` |nbsp| :diagtext:`no avr-gcc installation can be found on the system, cannot link standard libraries`| 781+-------------------------------------------------------------------------------------------------------------------------+ 782 783+--------------------------------------------------------------------------------------------------------------------------+ 784|:warning:`warning:` |nbsp| :diagtext:`no avr-libc installation can be found on the system, cannot link standard libraries`| 785+--------------------------------------------------------------------------------------------------------------------------+ 786 787+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 788|:warning:`warning:` |nbsp| :diagtext:`no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>`| 789+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 790 791+-----------------------------------------------------------------------------------------------------------------------------------------------+ 792|:warning:`warning:` |nbsp| :diagtext:`standard library not linked and so no interrupt vector table or compiler runtime routines will be linked`| 793+-----------------------------------------------------------------------------------------------------------------------------------------------+ 794 795 796-Wbackend-plugin 797---------------- 798This diagnostic is enabled by default. 799 800**Diagnostic text:** 801 802The text of this diagnostic is not controlled by Clang. 803 804 805-Wbackslash-newline-escape 806-------------------------- 807This diagnostic is enabled by default. 808 809**Diagnostic text:** 810 811+-------------------------------------------------------------------------------+ 812|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`| 813+-------------------------------------------------------------------------------+ 814 815 816-Wbad-function-cast 817------------------- 818**Diagnostic text:** 819 820+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 821|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`| 822+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 823 824 825-Wbinary-literal 826---------------- 827Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_. 828 829 830-Wbind-to-temporary-copy 831------------------------ 832Also controls `-Wc++98-compat-bind-to-temporary-copy`_. 833 834**Diagnostic text:** 835 836+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 837|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 838| ||:diagtext:`private` || 839| |+---------------------+| 840| ||:diagtext:`protected`|| 841| |+---------------------+| 842+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 843 844+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 845|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 846| ||:diagtext:`copying variable` || | 847| |+----------------------------------------------------+| | 848| ||:diagtext:`copying parameter` || | 849| |+----------------------------------------------------+| | 850| ||:diagtext:`returning object` || | 851| |+----------------------------------------------------+| | 852| ||:diagtext:`initializing statement expression result`|| | 853| |+----------------------------------------------------+| | 854| ||:diagtext:`throwing object` || | 855| |+----------------------------------------------------+| | 856| ||:diagtext:`copying member subobject` || | 857| |+----------------------------------------------------+| | 858| ||:diagtext:`copying array element` || | 859| |+----------------------------------------------------+| | 860| ||:diagtext:`allocating object` || | 861| |+----------------------------------------------------+| | 862| ||:diagtext:`copying temporary` || | 863| |+----------------------------------------------------+| | 864| ||:diagtext:`initializing base subobject` || | 865| |+----------------------------------------------------+| | 866| ||:diagtext:`initializing vector element` || | 867| |+----------------------------------------------------+| | 868| ||:diagtext:`capturing value` || | 869| |+----------------------------------------------------+| | 870+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 871 872 873-Wbinding-in-condition 874---------------------- 875This diagnostic is enabled by default. 876 877**Diagnostic text:** 878 879+--------------------------------------------------------------------------------------------------------------+ 880|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`| 881+--------------------------------------------------------------------------------------------------------------+ 882 883 884-Wbitfield-constant-conversion 885------------------------------ 886This diagnostic is enabled by default. 887 888**Diagnostic text:** 889 890+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 891|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 892+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 893 894 895-Wbitfield-enum-conversion 896-------------------------- 897**Diagnostic text:** 898 899+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 900|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`| 901+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 902 903+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 904|:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`| 905+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 906 907+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 908|:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`| 909+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 910 911 912-Wbitfield-width 913---------------- 914This diagnostic is enabled by default. 915 916**Diagnostic text:** 917 918+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 919|:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+| 920| || || 921| |+-------------+| 922| ||:diagtext:`s`|| 923| |+-------------+| 924+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 925 926+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 927|:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+| 928| || || 929| |+-------------+| 930| ||:diagtext:`s`|| 931| |+-------------+| 932+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 933 934 935-Wbitwise-op-parentheses 936------------------------ 937This diagnostic is enabled by default. 938 939**Diagnostic text:** 940 941+-----------------------------------------------------------------------------------------------------------+ 942|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`| 943+-----------------------------------------------------------------------------------------------------------+ 944 945 946-Wblock-capture-autoreleasing 947----------------------------- 948This diagnostic is enabled by default. 949 950**Diagnostic text:** 951 952+-----------------------------------------------------------------------------------------------------------------------------+ 953|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`| 954+-----------------------------------------------------------------------------------------------------------------------------+ 955 956 957-Wbool-conversion 958----------------- 959This diagnostic is enabled by default. 960 961Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_. 962 963**Diagnostic text:** 964 965+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 966|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`| 967+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 968 969 970-Wbool-conversions 971------------------ 972Synonym for `-Wbool-conversion`_. 973 974 975-Wbraced-scalar-init 976-------------------- 977This diagnostic is enabled by default. 978 979**Diagnostic text:** 980 981+-----------------------------------------------------------------------+ 982|:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`| 983+-----------------------------------------------------------------------+ 984 985 986-Wbridge-cast 987------------- 988This diagnostic is enabled by default. 989 990**Diagnostic text:** 991 992+------------------------------------------------------------------------------------------------------------------------------------------+ 993|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`| 994+------------------------------------------------------------------------------------------------------------------------------------------+ 995 996+-------------------------------------------------------------------------------------------------------+ 997|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`| 998+-------------------------------------------------------------------------------------------------------+ 999 1000 1001-Wbuiltin-macro-redefined 1002------------------------- 1003This diagnostic is enabled by default. 1004 1005**Diagnostic text:** 1006 1007+---------------------------------------------------------------+ 1008|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`| 1009+---------------------------------------------------------------+ 1010 1011+---------------------------------------------------------------+ 1012|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`| 1013+---------------------------------------------------------------+ 1014 1015 1016-Wbuiltin-memcpy-chk-size 1017------------------------- 1018This diagnostic is enabled by default. 1019 1020**Diagnostic text:** 1021 1022+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1023|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 1024+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1025 1026 1027-Wbuiltin-requires-header 1028------------------------- 1029This diagnostic is enabled by default. 1030 1031**Diagnostic text:** 1032 1033+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1034|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`| 1035+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1036 1037 1038-Wc++-compat 1039------------ 1040**Diagnostic text:** 1041 1042+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1043|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 1044| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 1045| |+-------------------------+|+------------------+| |+-------------------------+| | 1046| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 1047| |+-------------------------+|+------------------+| |+-------------------------+| | 1048+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1049 1050 1051-Wc++0x-compat 1052-------------- 1053Synonym for `-Wc++11-compat`_. 1054 1055 1056-Wc++0x-extensions 1057------------------ 1058Synonym for `-Wc++11-extensions`_. 1059 1060 1061-Wc++0x-narrowing 1062----------------- 1063Synonym for `-Wc++11-narrowing`_. 1064 1065 1066-Wc++11-compat 1067-------------- 1068Some of the diagnostics controlled by this flag are enabled by default. 1069 1070Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_. 1071 1072**Diagnostic text:** 1073 1074+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1075|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1076| ||:diagtext:`have type 'long long'`|| | 1077| |+---------------------------------+| | 1078| ||:diagtext:`be ill-formed` || | 1079| |+---------------------------------+| | 1080+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1081 1082+--------------------------------------------------------------------------------------------------------------+ 1083|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`| 1084+--------------------------------------------------------------------------------------------------------------+ 1085 1086+-------------------------------------------------------------------------------------------------------------------------+ 1087|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`| 1088+-------------------------------------------------------------------------------------------------------------------------+ 1089 1090+-------------------------------------------------------------------------------------------+ 1091|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`| 1092+-------------------------------------------------------------------------------------------+ 1093 1094+--------------------------------------------------------------------------------------------------------------------------------+ 1095|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`| 1096+--------------------------------------------------------------------------------------------------------------------------------+ 1097 1098+--------------------------------------------------------------------------------+ 1099|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`| 1100+--------------------------------------------------------------------------------+ 1101 1102+--------------------------------------------------------------------------------------------------------------------------------------+ 1103|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`| 1104+--------------------------------------------------------------------------------------------------------------------------------------+ 1105 1106+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1107|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`| 1108+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1109 1110+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1111|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`| 1112+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1113 1114+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1115|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1116| ||:diagtext:`have type 'long long'`|| | 1117| |+---------------------------------+| | 1118| ||:diagtext:`be ill-formed` || | 1119| |+---------------------------------+| | 1120+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1121 1122 1123-Wc++11-compat-deprecated-writable-strings 1124------------------------------------------ 1125This diagnostic is enabled by default. 1126 1127**Diagnostic text:** 1128 1129+---------------------------------------------------------------------------------------------------------------------------------+ 1130|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 1131+---------------------------------------------------------------------------------------------------------------------------------+ 1132 1133 1134-Wc++11-compat-pedantic 1135----------------------- 1136Some of the diagnostics controlled by this flag are enabled by default. 1137 1138Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_. 1139 1140 1141-Wc++11-compat-reserved-user-defined-literal 1142-------------------------------------------- 1143**Diagnostic text:** 1144 1145+----------------------------------------------------------------------------------------------------------------------------------+ 1146|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`| 1147+----------------------------------------------------------------------------------------------------------------------------------+ 1148 1149 1150-Wc++11-extensions 1151------------------ 1152Some of the diagnostics controlled by this flag are enabled by default. 1153 1154Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_. 1155 1156**Diagnostic text:** 1157 1158+-------------------------------------------------------------------------------+ 1159|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`| 1160+-------------------------------------------------------------------------------+ 1161 1162+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1163|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 1164| ||:diagtext:`integral` || | 1165| |+-----------------------+| | 1166| ||:diagtext:`enumeration`|| | 1167| |+-----------------------+| | 1168+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1169 1170+---------------------------------------------------------------------------------+ 1171|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`| 1172+---------------------------------------------------------------------------------+ 1173 1174+-----------------------------------------------------------------------------------------------------------+ 1175|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 1176+-----------------------------------------------------------------------------------------------------------+ 1177 1178+---------------------------+-----------------------+--------------------------------------------------------------+ 1179|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`| 1180| ||:diagtext:`defaulted`|| | 1181| |+---------------------+| | 1182| ||:diagtext:`deleted` || | 1183| |+---------------------+| | 1184+---------------------------+-----------------------+--------------------------------------------------------------+ 1185 1186+-----------------------------------------------------------------------------------------------------------------------------------+ 1187|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1188+-----------------------------------------------------------------------------------------------------------------------------------+ 1189 1190+--------------------------------------------------------------------------------------------------+ 1191|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 1192+--------------------------------------------------------------------------------------------------+ 1193 1194+------------------------------------------------------------------------------------------+ 1195|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`| 1196+------------------------------------------------------------------------------------------+ 1197 1198+-----------------------------------------------------------------------------+ 1199|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 1200+-----------------------------------------------------------------------------+ 1201 1202+--------------------------------------------------------------------------------+ 1203|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`| 1204+--------------------------------------------------------------------------------+ 1205 1206+------------------------------------------------------------------------------------------+ 1207|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`| 1208+------------------------------------------------------------------------------------------+ 1209 1210+---------------------------------------------------------------------------------------------------------+ 1211|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`| 1212+---------------------------------------------------------------------------------------------------------+ 1213 1214+----------------------------------------------------------------------------------------------------------------------------+ 1215|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1216+----------------------------------------------------------------------------------------------------------------------------+ 1217 1218+-------------------------------------------------------------------------------------------------------------+ 1219|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`| 1220+-------------------------------------------------------------------------------------------------------------+ 1221 1222+--------------------------------------------------------------------------------------------------+ 1223|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`| 1224+--------------------------------------------------------------------------------------------------+ 1225 1226+----------------------------------------------------------------------------------------------+ 1227|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`| 1228+----------------------------------------------------------------------------------------------+ 1229 1230+------------------------------------------------------------------------------+ 1231|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`| 1232+------------------------------------------------------------------------------+ 1233 1234+--------------------------------------------------------------------------------+ 1235|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`| 1236+--------------------------------------------------------------------------------+ 1237 1238+----------------------------------------------------------------------------------------------------------------------------------+ 1239|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`| 1240+----------------------------------------------------------------------------------------------------------------------------------+ 1241 1242+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1243|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`| 1244| ||:diagtext:`function`|| | 1245| |+--------------------+| | 1246| ||:diagtext:`object` || | 1247| |+--------------------+| | 1248+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1249 1250+-------------------------------------------------------------------------------+ 1251|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`| 1252+-------------------------------------------------------------------------------+ 1253 1254+---------------------------------------------------------------------------------------------------------------+ 1255|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`| 1256+---------------------------------------------------------------------------------------------------------------+ 1257 1258+------------------------------------------------------------------------------+ 1259|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`| 1260+------------------------------------------------------------------------------+ 1261 1262+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1263|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`| 1264| ||:diagtext:`struct` || | 1265| |+---------------------+| | 1266| ||:diagtext:`interface`|| | 1267| |+---------------------+| | 1268| ||:diagtext:`union` || | 1269| |+---------------------+| | 1270| ||:diagtext:`class` || | 1271| |+---------------------+| | 1272| ||:diagtext:`enum` || | 1273| |+---------------------+| | 1274+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1275 1276+-------------------------------------------------------------------------------+ 1277|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`| 1278+-------------------------------------------------------------------------------+ 1279 1280 1281-Wc++11-extra-semi 1282------------------ 1283**Diagnostic text:** 1284 1285+-------------------------------------------------------------------------------------------+ 1286|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`| 1287+-------------------------------------------------------------------------------------------+ 1288 1289 1290-Wc++11-inline-namespace 1291------------------------ 1292This diagnostic is enabled by default. 1293 1294**Diagnostic text:** 1295 1296+----------------------------------------------------------------------------+ 1297|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`| 1298+----------------------------------------------------------------------------+ 1299 1300 1301-Wc++11-long-long 1302----------------- 1303**Diagnostic text:** 1304 1305+-----------------------------------------------------------------------+ 1306|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`| 1307+-----------------------------------------------------------------------+ 1308 1309 1310-Wc++11-narrowing 1311----------------- 1312Some of the diagnostics controlled by this flag are enabled by default. 1313 1314**Diagnostic text:** 1315 1316+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1317|:error:`error:` |nbsp| |+---------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+| 1318| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1319| |+---------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| || 1320| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1321| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1322| ||:diagtext:`non-type template argument` || ||+----------------------------------------------------------------------------------------------------------------------+|| 1323| |+---------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`||| 1324| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+|| 1325| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1326| ||:diagtext:`constexpr if condition` || | | 1327| |+---------------------------------------+| | | 1328| ||:diagtext:`explicit specifier argument`|| | | 1329| |+---------------------------------------+| | | 1330+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1331 1332+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1333|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`| 1334+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1335 1336+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1337|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1338+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1339 1340+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1341|:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1342+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1343 1344+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1345|:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`| 1346+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1347 1348+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1349|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1350+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1351 1352+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1353|:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1354+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1355 1356 1357-Wc++14-binary-literal 1358---------------------- 1359**Diagnostic text:** 1360 1361+------------------------------------------------------------------------------------+ 1362|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`| 1363+------------------------------------------------------------------------------------+ 1364 1365 1366-Wc++14-compat 1367-------------- 1368Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_. 1369 1370 1371-Wc++14-compat-pedantic 1372----------------------- 1373Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_. 1374 1375 1376-Wc++14-extensions 1377------------------ 1378Some of the diagnostics controlled by this flag are enabled by default. 1379 1380Also controls `-Wc++14-binary-literal`_. 1381 1382**Diagnostic text:** 1383 1384+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1385|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1386| ||:diagtext:`function` || | 1387| |+-----------------------+| | 1388| ||:diagtext:`constructor`|| | 1389| |+-----------------------+| | 1390+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1391 1392+------------------------------------------------------------------------------------------------------------+ 1393|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`| 1394+------------------------------------------------------------------------------------------------------------+ 1395 1396+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1397|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1398| ||:diagtext:`function` || | 1399| |+-----------------------+| | 1400| ||:diagtext:`constructor`|| | 1401| |+-----------------------+| | 1402+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1403 1404+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1405|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1406| ||:diagtext:`function` || | 1407| |+-----------------------+| | 1408| ||:diagtext:`constructor`|| | 1409| |+-----------------------+| | 1410+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1411 1412+---------------------------------------------------------------------------------------------------------------------------+ 1413|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 1414+---------------------------------------------------------------------------------------------------------------------------+ 1415 1416+-------------------------------------------------------------------------------------------+ 1417|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`| 1418+-------------------------------------------------------------------------------------------+ 1419 1420+----------------------------------------------------------------------------------------+ 1421|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`| 1422+----------------------------------------------------------------------------------------+ 1423 1424+-------------------------------------------------------------------------------+ 1425|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`| 1426+-------------------------------------------------------------------------------+ 1427 1428 1429-Wc++17-compat 1430-------------- 1431Some of the diagnostics controlled by this flag are enabled by default. 1432 1433Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_. 1434 1435 1436-Wc++17-compat-mangling 1437----------------------- 1438This diagnostic is enabled by default. 1439 1440**Diagnostic text:** 1441 1442+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1443|:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`| 1444+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1445 1446 1447-Wc++17-compat-pedantic 1448----------------------- 1449Some of the diagnostics controlled by this flag are enabled by default. 1450 1451Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_. 1452 1453 1454-Wc++17-extensions 1455------------------ 1456Some of the diagnostics controlled by this flag are enabled by default. 1457 1458**Diagnostic text:** 1459 1460+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1461|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 1462+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1463 1464+------------------------------------------------------------------------+ 1465|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`| 1466+------------------------------------------------------------------------+ 1467 1468+---------------------------------------------------------------------------------------------+ 1469|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`| 1470+---------------------------------------------------------------------------------------------+ 1471 1472+---------------------------------------------------------------------------------------------------------------------------+ 1473|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 1474+---------------------------------------------------------------------------------------------------------------------------+ 1475 1476+---------------------------------------------------------------------------------------+ 1477|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`| 1478+---------------------------------------------------------------------------------------+ 1479 1480+--------------------------------------------------------------------------------+ 1481|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`| 1482+--------------------------------------------------------------------------------+ 1483 1484+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1485|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`| 1486+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1487 1488+----------------------------------------------------------------------------------------+ 1489|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 1490+----------------------------------------------------------------------------------------+ 1491 1492+----------------------------------------+--------------------+-------------------------------------------------------------+ 1493|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`| 1494| ||:diagtext:`if` || | 1495| |+------------------+| | 1496| ||:diagtext:`switch`|| | 1497| |+------------------+| | 1498+----------------------------------------+--------------------+-------------------------------------------------------------+ 1499 1500+-----------------------------------------------------------------------------+ 1501|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`| 1502+-----------------------------------------------------------------------------+ 1503 1504+---------------------------------------------------------------------------------------------------------------------+ 1505|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`| 1506+---------------------------------------------------------------------------------------------------------------------+ 1507 1508+-------------------------------------------------------------------------------------------------------------------------+ 1509|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`| 1510+-------------------------------------------------------------------------------------------------------------------------+ 1511 1512+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1513|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 1514| ||:diagtext:`a namespace` || | 1515| |+-------------------------+| | 1516| ||:diagtext:`an enumerator`|| | 1517| |+-------------------------+| | 1518+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1519 1520+---------------------------------------------------------------------------------------+ 1521|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`| 1522+---------------------------------------------------------------------------------------+ 1523 1524+------------------------------------------------------------------------------------------+ 1525|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`| 1526+------------------------------------------------------------------------------------------+ 1527 1528+--------------------------------------------------------------------------------------------------------+ 1529|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`| 1530+--------------------------------------------------------------------------------------------------------+ 1531 1532+--------------------------------------------------------------------------------------------------+ 1533|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`| 1534+--------------------------------------------------------------------------------------------------+ 1535 1536+-----------------------------------------------------------------------------------------------+ 1537|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`| 1538+-----------------------------------------------------------------------------------------------+ 1539 1540 1541-Wc++1y-extensions 1542------------------ 1543Synonym for `-Wc++14-extensions`_. 1544 1545 1546-Wc++1z-compat 1547-------------- 1548Synonym for `-Wc++17-compat`_. 1549 1550 1551-Wc++1z-compat-mangling 1552----------------------- 1553Synonym for `-Wc++17-compat-mangling`_. 1554 1555 1556-Wc++1z-extensions 1557------------------ 1558Synonym for `-Wc++17-extensions`_. 1559 1560 1561-Wc++2a-compat 1562-------------- 1563Some of the diagnostics controlled by this flag are enabled by default. 1564 1565**Diagnostic text:** 1566 1567+------------------------------------------------------------------------------------------------+ 1568|:warning:`warning:` |nbsp| :diagtext:`consteval is incompatible with C++ standards before C++20`| 1569+------------------------------------------------------------------------------------------------+ 1570 1571+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1572|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++2a`| 1573+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1574 1575+------------------------------------------------------------------------------------------------+ 1576|:warning:`warning:` |nbsp| :diagtext:`this expression will be parsed as explicit(bool) in C++2a`| 1577+------------------------------------------------------------------------------------------------+ 1578 1579+------------------------------------------------------------------------------------------------------------------+ 1580|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++2a; add a space to avoid a change in behavior`| 1581+------------------------------------------------------------------------------------------------------------------+ 1582 1583+--------------------------------------------------------------------------------------------------------------------------------------------+ 1584|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++2a`| 1585+--------------------------------------------------------------------------------------------------------------------------------------------+ 1586 1587+-------------------------------------------------------------------------------------------+ 1588|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`| 1589+-------------------------------------------------------------------------------------------+ 1590 1591 1592-Wc++2a-compat-pedantic 1593----------------------- 1594Synonym for `-Wc++2a-compat`_. 1595 1596 1597-Wc++2a-extensions 1598------------------ 1599Some of the diagnostics controlled by this flag are enabled by default. 1600 1601**Diagnostic text:** 1602 1603+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1604|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior declaration in function call with explicit template arguments is a C++2a extension`| 1605+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1606 1607+----------------------------------------------------------------------------------------------------+ 1608|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`| 1609+----------------------------------------------------------------------------------------------------+ 1610 1611+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1612|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`| 1613| ||:diagtext:`function` || | 1614| |+-----------------------+| | 1615| ||:diagtext:`constructor`|| | 1616| |+-----------------------+| | 1617+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1618 1619+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1620|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++2a extension`| 1621| ||:diagtext:`function` || | 1622| |+-----------------------+| | 1623| ||:diagtext:`constructor`|| | 1624| |+-----------------------+| | 1625+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1626 1627+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+ 1628|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is a C++2a extension`| 1629| ||+------------------------------------------+ || | 1630| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || | 1631| ||+------------------------------------------+ || | 1632| |+------------------------------------------------------------+| | 1633| ||+----------------------------------------------------------+|| | 1634| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| | 1635| ||+----------------------------------------------------------+|| | 1636| |+------------------------------------------------------------+| | 1637+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+ 1638 1639+--------------------------------------------------------------------------------------------------------------------+ 1640|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`| 1641+--------------------------------------------------------------------------------------------------------------------+ 1642 1643+-----------------------------------------------------------------------------------------------------------+ 1644|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++2a extension`| 1645+-----------------------------------------------------------------------------------------------------------+ 1646 1647+---------------------------------------------------------------------------------------------+ 1648|:warning:`warning:` |nbsp| :diagtext:`initialized lambda pack captures are a C++2a extension`| 1649+---------------------------------------------------------------------------------------------+ 1650 1651+----------------------------------------------------------------------------------------------+ 1652|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++2a extension`| 1653+----------------------------------------------------------------------------------------------+ 1654 1655+--------------------------------------------------------------------------------------------------------+ 1656|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is a C++2a extension`| 1657+--------------------------------------------------------------------------------------------------------+ 1658 1659+--------------------------------------------------------------------------------------------------------------------------+ 1660|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| 1661+--------------------------------------------------------------------------------------------------------------------------+ 1662 1663 1664-Wc++98-c++11-c++14-c++17-compat 1665-------------------------------- 1666**Diagnostic text:** 1667 1668+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1669|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++2a`| 1670+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1671 1672+-------------------------------------------------------------------------------------------------------------------------------+ 1673|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`| 1674+-------------------------------------------------------------------------------------------------------------------------------+ 1675 1676+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1677|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`| 1678| ||:diagtext:`function` || | 1679| |+-----------------------+| | 1680| ||:diagtext:`constructor`|| | 1681| |+-----------------------+| | 1682+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1683 1684+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1685|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`| 1686| ||:diagtext:`function` || | 1687| |+-----------------------+| | 1688| ||:diagtext:`constructor`|| | 1689| |+-----------------------+| | 1690+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1691 1692+-------------------------------------------------------------------------------------------------------------------+ 1693|:warning:`warning:` |nbsp| :diagtext:`virtual constexpr functions are incompatible with C++ standards before C++2a`| 1694+-------------------------------------------------------------------------------------------------------------------+ 1695 1696+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+ 1697|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++2a`| 1698| ||+------------------------------------------+ || | 1699| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || | 1700| ||+------------------------------------------+ || | 1701| |+------------------------------------------------------------+| | 1702| ||+----------------------------------------------------------+|| | 1703| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| | 1704| ||+----------------------------------------------------------+|| | 1705| |+------------------------------------------------------------+| | 1706+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+ 1707 1708+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1709|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++2a`| 1710| ||:diagtext:`default constructor` || | 1711| |+------------------------------------+| | 1712| ||:diagtext:`copy constructor` || | 1713| |+------------------------------------+| | 1714| ||:diagtext:`move constructor` || | 1715| |+------------------------------------+| | 1716| ||:diagtext:`copy assignment operator`|| | 1717| |+------------------------------------+| | 1718| ||:diagtext:`move assignment operator`|| | 1719| |+------------------------------------+| | 1720| ||:diagtext:`destructor` || | 1721| |+------------------------------------+| | 1722+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1723 1724+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1725|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`| 1726+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1727 1728+--------------------------------------------------------------------------------------------------------------------------------------+ 1729|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++2a`| 1730+--------------------------------------------------------------------------------------------------------------------------------------+ 1731 1732+------------------------------------------------------------------------------------------------------------------------+ 1733|:warning:`warning:` |nbsp| :diagtext:`initialized lambda capture packs are incompatible with C++ standards before C++2a`| 1734+------------------------------------------------------------------------------------------------------------------------+ 1735 1736+-------------------------------------------------------------------------------------------------------------------------+ 1737|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++2a`| 1738+-------------------------------------------------------------------------------------------------------------------------+ 1739 1740+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1741|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++2a`| 1742| ||:diagtext:`default construction`|| | 1743| |+--------------------------------+| | 1744| ||:diagtext:`assignment` || | 1745| |+--------------------------------+| | 1746+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1747 1748+-----------------------------------------------------------------------------------------------------------------------------------+ 1749|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is incompatible with C++ standards before C++2a`| 1750+-----------------------------------------------------------------------------------------------------------------------------------+ 1751 1752+-----------------------------------------------------------------------------------------------------+ 1753|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++2a`| 1754+-----------------------------------------------------------------------------------------------------+ 1755 1756+----------------------------------------------------------------------------------------------------------------+ 1757|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`| 1758+----------------------------------------------------------------------------------------------------------------+ 1759 1760 1761-Wc++98-c++11-c++14-c++17-compat-pedantic 1762----------------------------------------- 1763Also controls `-Wc++98-c++11-c++14-c++17-compat`_. 1764 1765**Diagnostic text:** 1766 1767+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1768|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`| 1769+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1770 1771 1772-Wc++98-c++11-c++14-compat 1773-------------------------- 1774**Diagnostic text:** 1775 1776+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1777|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+| 1778| || || 1779| |+---------------------------------------------------------------------------------+| 1780| ||+-------------------------------------------------------------------------------+|| 1781| |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`||| 1782| ||+-------------------------------------------------------------------------------+|| 1783| |+---------------------------------------------------------------------------------+| 1784+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1785 1786+---------------------------------------------------------------------------------------------------+ 1787|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`| 1788+---------------------------------------------------------------------------------------------------+ 1789 1790+----------------------------------------------------------------------------------------------------------------------+ 1791|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`| 1792+----------------------------------------------------------------------------------------------------------------------+ 1793 1794+------------------------------------------------------------------------------------------------------------------+ 1795|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`| 1796+------------------------------------------------------------------------------------------------------------------+ 1797 1798+-----------------------------------------------------------------------------------------------------------+ 1799|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`| 1800+-----------------------------------------------------------------------------------------------------------+ 1801 1802+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1803|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`| 1804| ||:diagtext:`if` || | 1805| |+------------------+| | 1806| ||:diagtext:`switch`|| | 1807| |+------------------+| | 1808+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1809 1810+--------------------------------------------------------------------------------------------------------+ 1811|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`| 1812+--------------------------------------------------------------------------------------------------------+ 1813 1814+------------------------------------------------------------------------------------------------------------------+ 1815|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`| 1816+------------------------------------------------------------------------------------------------------------------+ 1817 1818+-------------------------------------------------------------------------------------------------------------------+ 1819|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`| 1820+-------------------------------------------------------------------------------------------------------------------+ 1821 1822+---------------------------------------------------------------------------------------------------------------------+ 1823|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`| 1824+---------------------------------------------------------------------------------------------------------------------+ 1825 1826+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1827|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`| 1828+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1829 1830+-----------------------------------------------------------------------------------------------------------------------------------+ 1831|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`| 1832+-----------------------------------------------------------------------------------------------------------------------------------+ 1833 1834+--------------------------------------------------------------------------------------------------------+ 1835|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`| 1836+--------------------------------------------------------------------------------------------------------+ 1837 1838+-----------------------------------------------------------------------------------------------------------------------------+ 1839|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`| 1840+-----------------------------------------------------------------------------------------------------------------------------+ 1841 1842+------------------------------------------------------------------------------------------------------------------------------------------------+ 1843|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`| 1844+------------------------------------------------------------------------------------------------------------------------------------------------+ 1845 1846+-----------------------------------------------------------------------------------------------------------------------+ 1847|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`| 1848+-----------------------------------------------------------------------------------------------------------------------+ 1849 1850+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1851|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`| 1852+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1853 1854 1855-Wc++98-c++11-c++14-compat-pedantic 1856----------------------------------- 1857Also controls `-Wc++98-c++11-c++14-compat`_. 1858 1859**Diagnostic text:** 1860 1861+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 1862|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`| 1863| ||:diagtext:`a namespace` || | 1864| |+-------------------------+| | 1865| ||:diagtext:`an enumerator`|| | 1866| |+-------------------------+| | 1867+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 1868 1869+---------------------------------------------------------------------------------------------------------------------+ 1870|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`| 1871+---------------------------------------------------------------------------------------------------------------------+ 1872 1873 1874-Wc++98-c++11-compat 1875-------------------- 1876**Diagnostic text:** 1877 1878+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1879|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1880| ||:diagtext:`function` || | 1881| |+-----------------------+| | 1882| ||:diagtext:`constructor`|| | 1883| |+-----------------------+| | 1884+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1885 1886+---------------------------------------------------------------------------------------------------------------------------------------+ 1887|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`| 1888+---------------------------------------------------------------------------------------------------------------------------------------+ 1889 1890+-----------------------------------------------------------------------------------------------------------------------------------+ 1891|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`| 1892+-----------------------------------------------------------------------------------------------------------------------------------+ 1893 1894+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1895|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1896| ||:diagtext:`function` || | 1897| |+-----------------------+| | 1898| ||:diagtext:`constructor`|| | 1899| |+-----------------------+| | 1900+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1901 1902+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1903|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 1904| ||:diagtext:`function` || | 1905| |+-----------------------+| | 1906| ||:diagtext:`constructor`|| | 1907| |+-----------------------+| | 1908+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1909 1910+----------------------------------------------------------------------------------------------------------------------+ 1911|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`| 1912+----------------------------------------------------------------------------------------------------------------------+ 1913 1914+------------------------------------------------------------------------------------------------------------+ 1915|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`| 1916+------------------------------------------------------------------------------------------------------------+ 1917 1918+--------------------------------------------------------------------------------------------------------+ 1919|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`| 1920+--------------------------------------------------------------------------------------------------------+ 1921 1922+----------------------------------------------------------------------------------+ 1923|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`| 1924+----------------------------------------------------------------------------------+ 1925 1926+-------------------------------------------------------------------------------------------------------------------+ 1927|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`| 1928+-------------------------------------------------------------------------------------------------------------------+ 1929 1930+----------------------------------------------------------------------------------------------------------+ 1931|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`| 1932+----------------------------------------------------------------------------------------------------------+ 1933 1934 1935-Wc++98-c++11-compat-binary-literal 1936----------------------------------- 1937**Diagnostic text:** 1938 1939+---------------------------------------------------------------------------------------------------------------+ 1940|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`| 1941+---------------------------------------------------------------------------------------------------------------+ 1942 1943 1944-Wc++98-c++11-compat-pedantic 1945----------------------------- 1946Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_. 1947 1948 1949-Wc++98-compat 1950-------------- 1951Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_. 1952 1953**Diagnostic text:** 1954 1955+-------------------------------------------------------------------------------------+ 1956|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`| 1957+-------------------------------------------------------------------------------------+ 1958 1959+---------------------------------------------------------------------------+ 1960|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`| 1961+---------------------------------------------------------------------------+ 1962 1963+--------------------------------------------------------------------------------------+ 1964|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`| 1965+--------------------------------------------------------------------------------------+ 1966 1967+----------------------------------------------------------------------------------------+ 1968|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`| 1969+----------------------------------------------------------------------------------------+ 1970 1971+---------------------------------------------------------------------------------------+ 1972|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`| 1973+---------------------------------------------------------------------------------------+ 1974 1975+---------------------------------------------------------------------------------------+ 1976|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`| 1977+---------------------------------------------------------------------------------------+ 1978 1979+--------------------------------------------------------------------------------------------------------+ 1980|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`| 1981+--------------------------------------------------------------------------------------------------------+ 1982 1983+-------------------------------------------------------------------------------------------+ 1984|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`| 1985+-------------------------------------------------------------------------------------------+ 1986 1987+---------------------------+-----------------------+--------------------------------------------------------------------+ 1988|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`| 1989| ||:diagtext:`defaulted`|| | 1990| |+---------------------+| | 1991| ||:diagtext:`deleted` || | 1992| |+---------------------+| | 1993+---------------------------+-----------------------+--------------------------------------------------------------------+ 1994 1995+------------------------------------------------------------------------------------------+ 1996|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`| 1997+------------------------------------------------------------------------------------------+ 1998 1999+----------------------------------------------------------------------------------------------------------------+ 2000|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`| 2001+----------------------------------------------------------------------------------------------------------------+ 2002 2003+-----------------------------------------------------------------------------------------------------------------+ 2004|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`| 2005+-----------------------------------------------------------------------------------------------------------------+ 2006 2007+-----------------------------------------------------------------------------------------------------------------------------------------+ 2008|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 2009+-----------------------------------------------------------------------------------------------------------------------------------------+ 2010 2011+-----------------------------------------------------------------------------------------------------------+ 2012|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`| 2013+-----------------------------------------------------------------------------------------------------------+ 2014 2015+------------------------------------------------------------------------------------------------+ 2016|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`| 2017+------------------------------------------------------------------------------------------------+ 2018 2019+--------------------------------------------------------------------------------------+ 2020|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`| 2021+--------------------------------------------------------------------------------------+ 2022 2023+---------------------------------------------------------------------------------------------------------------------------+ 2024|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`| 2025+---------------------------------------------------------------------------------------------------------------------------+ 2026 2027+------------------------------------------------------------------------------------------------+ 2028|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`| 2029+------------------------------------------------------------------------------------------------+ 2030 2031+------------------------------------------------------------------------------------------------------------+ 2032|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`| 2033+------------------------------------------------------------------------------------------------------------+ 2034 2035+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2036|:warning:`warning:` |nbsp| :diagtext:`jump from this` |nbsp| |+--------------------+| |nbsp| :diagtext:`goto statement to one of its possible targets is incompatible with C++98`| 2037| ||:diagtext:`indirect`|| | 2038| |+--------------------+| | 2039| ||:diagtext:`asm` || | 2040| |+--------------------+| | 2041+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2042 2043+------------------------------------------------------------------------------------------------------------+ 2044|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`| 2045+------------------------------------------------------------------------------------------------------------+ 2046 2047+------------------------------------------------------------------------------------+ 2048|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`| 2049+------------------------------------------------------------------------------------+ 2050 2051+-------------------------------------------------------------------------------------+ 2052|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`| 2053+-------------------------------------------------------------------------------------+ 2054 2055+-----------------------------------------------------------------------------------------------------------+ 2056|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`| 2057+-----------------------------------------------------------------------------------------------------------+ 2058 2059+------------------------------------------------------------------------------------+ 2060|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`| 2061+------------------------------------------------------------------------------------+ 2062 2063+---------------------------------------------------------------------------------------------------------------------------+ 2064|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`| 2065+---------------------------------------------------------------------------------------------------------------------------+ 2066 2067+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2068|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`| 2069+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2070 2071+------------------------------------------------------------------------------------------+ 2072|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`| 2073+------------------------------------------------------------------------------------------+ 2074 2075+---------------------------------------------------------------------------------------+ 2076|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`| 2077+---------------------------------------------------------------------------------------+ 2078 2079+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2080|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`| 2081+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2082 2083+----------------------------------------------------------------------------------------------------------------------------------+ 2084|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 2085+----------------------------------------------------------------------------------------------------------------------------------+ 2086 2087+--------------------------------------------------------------------------------------------------------------------+ 2088|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`| 2089+--------------------------------------------------------------------------------------------------------------------+ 2090 2091+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 2092|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 2093| ||:diagtext:`anonymous struct`|| ||:diagtext:`default constructor` || | 2094| |+----------------------------+| |+------------------------------------+| | 2095| ||:diagtext:`union` || ||:diagtext:`copy constructor` || | 2096| |+----------------------------+| |+------------------------------------+| | 2097| | | ||:diagtext:`move constructor` || | 2098| | | |+------------------------------------+| | 2099| | | ||:diagtext:`copy assignment operator`|| | 2100| | | |+------------------------------------+| | 2101| | | ||:diagtext:`move assignment operator`|| | 2102| | | |+------------------------------------+| | 2103| | | ||:diagtext:`destructor` || | 2104| | | |+------------------------------------+| | 2105+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 2106 2107+---------------------------------------------------------------------------+ 2108|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`| 2109+---------------------------------------------------------------------------+ 2110 2111+--------------------------------------------------------------------------------------------------------+ 2112|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`| 2113+--------------------------------------------------------------------------------------------------------+ 2114 2115+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2116|:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 2117| ||:diagtext:`function` || | 2118| |+-----------------------+| | 2119| ||:diagtext:`block` || | 2120| |+-----------------------+| | 2121| ||:diagtext:`method` || | 2122| |+-----------------------+| | 2123| ||:diagtext:`constructor`|| | 2124| |+-----------------------+| | 2125+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2126 2127+--------------------------------------------------------------------------------------+ 2128|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`| 2129+--------------------------------------------------------------------------------------+ 2130 2131+----------------------------------------------------------------------------------------------------+ 2132|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`| 2133+----------------------------------------------------------------------------------------------------+ 2134 2135+-------------------------------------------------------------------------------------------------------------+ 2136|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`| 2137+-------------------------------------------------------------------------------------------------------------+ 2138 2139+------------------------------------------------------------------------------------+ 2140|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`| 2141+------------------------------------------------------------------------------------+ 2142 2143+--------------------------------------------------------------------------------------+ 2144|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`| 2145+--------------------------------------------------------------------------------------+ 2146 2147+------------------------------------------------------------------------------------------------------------+ 2148|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`| 2149+------------------------------------------------------------------------------------------------------------+ 2150 2151+----------------------------------------------------------------------------------------------+ 2152|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`| 2153+----------------------------------------------------------------------------------------------+ 2154 2155+----------------------------------------------------------------------------------------------------------------------------------------+ 2156|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`| 2157+----------------------------------------------------------------------------------------------------------------------------------------+ 2158 2159+---------------------------------------------------------------------------------------------------------------+ 2160|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`| 2161+---------------------------------------------------------------------------------------------------------------+ 2162 2163+---------------------------------------------------------------------------------------------------------------------------------------+ 2164|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`| 2165+---------------------------------------------------------------------------------------------------------------------------------------+ 2166 2167+-------------------------------------------------------------------------------------------------------------------+ 2168|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`| 2169+-------------------------------------------------------------------------------------------------------------------+ 2170 2171+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2172|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`| 2173| ||:diagtext:`function`|| | 2174| |+--------------------+| | 2175| ||:diagtext:`object` || | 2176| |+--------------------+| | 2177+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2178 2179+-----------------------------------------------------------------------------------------------------------------+ 2180|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`| 2181+-----------------------------------------------------------------------------------------------------------------+ 2182 2183+---------------------------------------------------------------------------------------------------------------------+ 2184|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`| 2185+---------------------------------------------------------------------------------------------------------------------+ 2186 2187+----------------------------------------------------------------------------------------+ 2188|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`| 2189+----------------------------------------------------------------------------------------+ 2190 2191+---------------------------------------------------------------------------------------------------------------+ 2192|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`| 2193+---------------------------------------------------------------------------------------------------------------+ 2194 2195+---------------------------------------------------------------------------------------------------------+ 2196|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`| 2197+---------------------------------------------------------------------------------------------------------+ 2198 2199+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2200|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`| 2201| ||:diagtext:`struct` || | 2202| |+---------------------+| | 2203| ||:diagtext:`interface`|| | 2204| |+---------------------+| | 2205| ||:diagtext:`union` || | 2206| |+---------------------+| | 2207| ||:diagtext:`class` || | 2208| |+---------------------+| | 2209| ||:diagtext:`enum` || | 2210| |+---------------------+| | 2211+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2212 2213+-------------------------------------------------------------------------------------------------------+ 2214|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`| 2215+-------------------------------------------------------------------------------------------------------+ 2216 2217+-----------------------------------------------------------------------------------+ 2218|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`| 2219+-----------------------------------------------------------------------------------+ 2220 2221+---------------------------------------------------------------------------------------------------------------+ 2222|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`| 2223+---------------------------------------------------------------------------------------------------------------+ 2224 2225+------------------------------------------------------------------------------------------+ 2226|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`| 2227+------------------------------------------------------------------------------------------+ 2228 2229+-------------------------------------------------------------------------------------+ 2230|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`| 2231+-------------------------------------------------------------------------------------+ 2232 2233 2234-Wc++98-compat-bind-to-temporary-copy 2235------------------------------------- 2236**Diagnostic text:** 2237 2238+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2239|:warning:`warning:` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`| 2240| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| | 2241| |+----------------------------------------------------+| |+----------------------------------------------+| | 2242| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || | 2243| |+----------------------------------------------------+| |+----------------------------------------------+| | 2244| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || | 2245| |+----------------------------------------------------+| |+----------------------------------------------+| | 2246| ||:diagtext:`initializing statement expression result`|| ||:diagtext:`invoke a deleted constructor` || | 2247| |+----------------------------------------------------+| |+----------------------------------------------+| | 2248| ||:diagtext:`throwing object` || | | | 2249| |+----------------------------------------------------+| | | | 2250| ||:diagtext:`copying member subobject` || | | | 2251| |+----------------------------------------------------+| | | | 2252| ||:diagtext:`copying array element` || | | | 2253| |+----------------------------------------------------+| | | | 2254| ||:diagtext:`allocating object` || | | | 2255| |+----------------------------------------------------+| | | | 2256| ||:diagtext:`copying temporary` || | | | 2257| |+----------------------------------------------------+| | | | 2258| ||:diagtext:`initializing base subobject` || | | | 2259| |+----------------------------------------------------+| | | | 2260| ||:diagtext:`initializing vector element` || | | | 2261| |+----------------------------------------------------+| | | | 2262| ||:diagtext:`capturing value` || | | | 2263| |+----------------------------------------------------+| | | | 2264+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2265 2266 2267-Wc++98-compat-extra-semi 2268------------------------- 2269**Diagnostic text:** 2270 2271+-------------------------------------------------------------------------------------------------+ 2272|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`| 2273+-------------------------------------------------------------------------------------------------+ 2274 2275 2276-Wc++98-compat-local-type-template-args 2277--------------------------------------- 2278**Diagnostic text:** 2279 2280+--------------------------------------------------------------------------------------------------------------------------------------------+ 2281|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`| 2282+--------------------------------------------------------------------------------------------------------------------------------------------+ 2283 2284 2285-Wc++98-compat-pedantic 2286----------------------- 2287Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_. 2288 2289**Diagnostic text:** 2290 2291+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2292|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| 2293| ||:diagtext:`integral` || | 2294| |+-----------------------+| | 2295| ||:diagtext:`enumeration`|| | 2296| |+-----------------------+| | 2297+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2298 2299+------------------------------------------------------------------------------------------------------------------------+ 2300|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`| 2301+------------------------------------------------------------------------------------------------------------------------+ 2302 2303+----------------------------------------------------------------------------------------+ 2304|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`| 2305+----------------------------------------------------------------------------------------+ 2306 2307+--------------------------------------------------------------------------------------------------------+ 2308|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`| 2309+--------------------------------------------------------------------------------------------------------+ 2310 2311+-----------------------------------------------------------------------------------+ 2312|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`| 2313+-----------------------------------------------------------------------------------+ 2314 2315+-----------------------------------------------------------------------------+ 2316|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`| 2317+-----------------------------------------------------------------------------+ 2318 2319+----------------------------------------------------------------------------+ 2320|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`| 2321+----------------------------------------------------------------------------+ 2322 2323+-------------------------------------------------------------------------------------------------+ 2324|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`| 2325+-------------------------------------------------------------------------------------------------+ 2326 2327+----------------------------------------------------------------------------------+ 2328|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`| 2329+----------------------------------------------------------------------------------+ 2330 2331 2332-Wc++98-compat-unnamed-type-template-args 2333----------------------------------------- 2334**Diagnostic text:** 2335 2336+---------------------------------------------------------------------------------------------------+ 2337|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`| 2338+---------------------------------------------------------------------------------------------------+ 2339 2340 2341-Wc11-extensions 2342---------------- 2343**Diagnostic text:** 2344 2345+---------------------------------------------------------------------------+ 2346|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`| 2347+---------------------------------------------------------------------------+ 2348 2349+----------------------------------------------------------------------------------------+ 2350|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`| 2351+----------------------------------------------------------------------------------------+ 2352 2353+----------------------------------------------------------------------------+ 2354|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`| 2355+----------------------------------------------------------------------------+ 2356 2357+------------------------------------------------------------------------------------+ 2358|:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`| 2359+------------------------------------------------------------------------------------+ 2360 2361+--------------------------------------------------------------------------------------+ 2362|:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`| 2363+--------------------------------------------------------------------------------------+ 2364 2365+---------------------------------------------------------------------------------+ 2366|:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`| 2367+---------------------------------------------------------------------------------+ 2368 2369 2370-Wc99-compat 2371------------ 2372Some of the diagnostics controlled by this flag are enabled by default. 2373 2374**Diagnostic text:** 2375 2376+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2377|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`| 2378| ||:diagtext:`using this character in an identifier` || | 2379| |+------------------------------------------------------+| | 2380| ||:diagtext:`starting an identifier with this character`|| | 2381| |+------------------------------------------------------+| | 2382+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2383 2384+---------------------------------------------------------------------------------+ 2385|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`| 2386+---------------------------------------------------------------------------------+ 2387 2388+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2389|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`| 2390| ||:diagtext:`have type 'long long'`|| | 2391| |+---------------------------------+| | 2392| ||:diagtext:`be ill-formed` || | 2393| |+---------------------------------+| | 2394+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2395 2396 2397-Wc99-extensions 2398---------------- 2399Some of the diagnostics controlled by this flag are enabled by default. 2400 2401**Diagnostic text:** 2402 2403+-----------------------------------------------------------------------------------------------+ 2404|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 2405+-----------------------------------------------------------------------------------------------+ 2406 2407+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2408|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 2409| ||:diagtext:`qualifier in` |nbsp| || || || | 2410| |+--------------------------------+| |+---------------------+| | 2411| ||:diagtext:`static` |nbsp| || || || | 2412| |+--------------------------------+| |+---------------------+| | 2413| || || ||:diagtext:`'\[\*\] '`|| | 2414| |+--------------------------------+| |+---------------------+| | 2415+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2416 2417+-----------------------------------------------------------------------------------+ 2418|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 2419+-----------------------------------------------------------------------------------+ 2420 2421+-------------------------------------------------------------------------------+ 2422|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 2423+-------------------------------------------------------------------------------+ 2424 2425+-------------------------------------------------------------------------------------------------+ 2426|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 2427+-------------------------------------------------------------------------------------------------+ 2428 2429+---------------------------------------------------------------------------------------+ 2430|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`| 2431+---------------------------------------------------------------------------------------+ 2432 2433+--------------------------------------------------------------------------------+ 2434|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 2435+--------------------------------------------------------------------------------+ 2436 2437+------------------------------------------------------------------------------+ 2438|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 2439+------------------------------------------------------------------------------+ 2440 2441+-------------------------------------------------------------------------------------------------------+ 2442|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 2443+-------------------------------------------------------------------------------------------------------+ 2444 2445+---------------------------------------------------------------------------------------+ 2446|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 2447+---------------------------------------------------------------------------------------+ 2448 2449 2450-Wcall-to-pure-virtual-from-ctor-dtor 2451------------------------------------- 2452This diagnostic is enabled by default. 2453 2454**Diagnostic text:** 2455 2456+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2457|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 2458| ||:diagtext:`constructor`|| | 2459| |+-----------------------+| | 2460| ||:diagtext:`destructor` || | 2461| |+-----------------------+| | 2462+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2463 2464 2465-Wcast-align 2466------------ 2467**Diagnostic text:** 2468 2469+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2470|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 2471+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2472 2473 2474-Wcast-calling-convention 2475------------------------- 2476This diagnostic is enabled by default. 2477 2478**Diagnostic text:** 2479 2480+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2481|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`| 2482+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2483 2484 2485-Wcast-of-sel-type 2486------------------ 2487This diagnostic is enabled by default. 2488 2489**Diagnostic text:** 2490 2491+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2492|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`| 2493+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2494 2495 2496-Wcast-qual 2497----------- 2498**Diagnostic text:** 2499 2500+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2501|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+| 2502| ||:diagtext:`const and volatile qualifiers`|| 2503| |+-----------------------------------------+| 2504| ||:diagtext:`const qualifier` || 2505| |+-----------------------------------------+| 2506| ||:diagtext:`volatile qualifier` || 2507| |+-----------------------------------------+| 2508+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2509 2510+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2511|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`| 2512+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2513 2514 2515-Wcast-qual-unrelated 2516--------------------- 2517This diagnostic is enabled by default. 2518 2519**Diagnostic text:** 2520 2521+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2522|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`| 2523| ||:diagtext:`const\_cast` || | 2524| |+---------------------------------+| | 2525| ||:diagtext:`static\_cast` || | 2526| |+---------------------------------+| | 2527| ||:diagtext:`reinterpret\_cast` || | 2528| |+---------------------------------+| | 2529| ||:diagtext:`dynamic\_cast` || | 2530| |+---------------------------------+| | 2531| ||:diagtext:`C-style cast` || | 2532| |+---------------------------------+| | 2533| ||:diagtext:`functional-style cast`|| | 2534| |+---------------------------------+| | 2535+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2536 2537 2538-Wchar-align 2539------------ 2540This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 2541 2542-Wchar-subscripts 2543----------------- 2544**Diagnostic text:** 2545 2546+------------------------------------------------------------+-------------------------+-------------------------------------+ 2547|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`| 2548| ||:diagtext:`lower bound`|| | 2549| |+-----------------------+| | 2550| ||:diagtext:`length` || | 2551| |+-----------------------+| | 2552+------------------------------------------------------------+-------------------------+-------------------------------------+ 2553 2554+------------------------------------------------------------------------+ 2555|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`| 2556+------------------------------------------------------------------------+ 2557 2558 2559-Wclang-cl-pch 2560-------------- 2561This diagnostic is enabled by default. 2562 2563**Diagnostic text:** 2564 2565+-------------------------------------------------------------------------------------------------------------------------+ 2566|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`| 2567+-------------------------------------------------------------------------------------------------------------------------+ 2568 2569+------------------------------------------------------------------------------------------------------------------------------+ 2570|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`| 2571+------------------------------------------------------------------------------------------------------------------------------+ 2572 2573+----------------------------------------------------------------------------------------------------------------------------------------------------+ 2574|:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`| 2575+----------------------------------------------------------------------------------------------------------------------------------------------------+ 2576 2577+-------------------------------------------------------------------------------------------------------------------------------------+ 2578|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`| 2579+-------------------------------------------------------------------------------------------------------------------------------------+ 2580 2581+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2582|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`| 2583+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2584 2585 2586-Wclass-varargs 2587--------------- 2588Some of the diagnostics controlled by this flag are enabled by default. 2589 2590Also controls `-Wnon-pod-varargs`_. 2591 2592**Diagnostic text:** 2593 2594+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2595|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+| 2596| ||:diagtext:`function` ||| || 2597| |+-----------------------+|+--------------------------------------------------------------------+| 2598| ||:diagtext:`block` |||+------------------------------------------------------------------+|| 2599| |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`||| 2600| ||:diagtext:`method` |||+------------------------------------------------------------------+|| 2601| |+-----------------------+|+--------------------------------------------------------------------+| 2602| ||:diagtext:`constructor`|| | 2603| |+-----------------------+| | 2604+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2605 2606 2607-Wcomma 2608------- 2609**Diagnostic text:** 2610 2611+-----------------------------------------------------------------------------+ 2612|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`| 2613+-----------------------------------------------------------------------------+ 2614 2615 2616-Wcomment 2617--------- 2618Some of the diagnostics controlled by this flag are enabled by default. 2619 2620**Diagnostic text:** 2621 2622+--------------------------------------------------------------------------------------------------+ 2623|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`| 2624+--------------------------------------------------------------------------------------------------+ 2625 2626+-----------------------------------------------------------------------------------+ 2627|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 2628+-----------------------------------------------------------------------------------+ 2629 2630+------------------------------------------------------------+ 2631|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 2632+------------------------------------------------------------+ 2633 2634+-----------------------------------------------------------------+ 2635|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`| 2636+-----------------------------------------------------------------+ 2637 2638 2639-Wcomments 2640---------- 2641Synonym for `-Wcomment`_. 2642 2643 2644-Wcompare-distinct-pointer-types 2645-------------------------------- 2646This diagnostic is enabled by default. 2647 2648**Diagnostic text:** 2649 2650+---------------------------------------------------------------------------+ 2651|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`| 2652+---------------------------------------------------------------------------+ 2653 2654 2655-Wcomplex-component-init 2656------------------------ 2657**Diagnostic text:** 2658 2659+----------------------------------------------------------------------------------------------------------------------+ 2660|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`| 2661+----------------------------------------------------------------------------------------------------------------------+ 2662 2663 2664-Wconcepts-ts-compat 2665-------------------- 2666This diagnostic is enabled by default. 2667 2668**Diagnostic text:** 2669 2670+---------------------------------------------------------------------------------------------------+ 2671|:warning:`warning:` |nbsp| :diagtext:`ISO C++2a does not permit the 'bool' keyword after 'concept'`| 2672+---------------------------------------------------------------------------------------------------+ 2673 2674 2675-Wconditional-type-mismatch 2676--------------------------- 2677This diagnostic is enabled by default. 2678 2679**Diagnostic text:** 2680 2681+----------------------------------------------------------------------------------------------+ 2682|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`| 2683+----------------------------------------------------------------------------------------------+ 2684 2685 2686-Wconditional-uninitialized 2687--------------------------- 2688**Diagnostic text:** 2689 2690+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2691|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+| 2692| ||:diagtext:`used here` || 2693| |+-----------------------------+| 2694| ||:diagtext:`captured by block`|| 2695| |+-----------------------------+| 2696+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2697 2698 2699-Wconfig-macros 2700--------------- 2701This diagnostic is enabled by default. 2702 2703**Diagnostic text:** 2704 2705+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2706|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`| 2707| ||:diagtext:`definition`|| ||+----------------------------------------------+|| | 2708| |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| | 2709| ||:diagtext:`#undef` || ||+----------------------------------------------+|| | 2710| |+----------------------+| |+------------------------------------------------+| | 2711| | | ||+------------------------------+ || | 2712| | | |||:diagtext:`-U`:placeholder:`B`| || | 2713| | | ||+------------------------------+ || | 2714| | | |+------------------------------------------------+| | 2715+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2716 2717 2718-Wconstant-conversion 2719--------------------- 2720This diagnostic is enabled by default. 2721 2722Also controls `-Wbitfield-constant-conversion`_, `-Wobjc-bool-constant-conversion`_. 2723 2724**Diagnostic text:** 2725 2726+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2727|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2728+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2729 2730 2731-Wconstant-logical-operand 2732-------------------------- 2733This diagnostic is enabled by default. 2734 2735**Diagnostic text:** 2736 2737+----------------------------------------------------------------------------------------------------------+ 2738|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`| 2739+----------------------------------------------------------------------------------------------------------+ 2740 2741 2742-Wconstexpr-not-const 2743--------------------- 2744This diagnostic is enabled by default. 2745 2746**Diagnostic text:** 2747 2748+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2749|:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`| 2750+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2751 2752 2753-Wconsumed 2754---------- 2755**Diagnostic text:** 2756 2757+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2758|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`| 2759+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2760 2761+--------------------------------------------------------------------------------------------------------------------------------+ 2762|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`| 2763+--------------------------------------------------------------------------------------------------------------------------------+ 2764 2765+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2766|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`| 2767+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2768 2769+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2770|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2771+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2772 2773+---------------------------------------------------------------------------------------------------------------+ 2774|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`| 2775+---------------------------------------------------------------------------------------------------------------+ 2776 2777+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2778|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2779+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2780 2781+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2782|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`| 2783+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2784 2785+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2786|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`| 2787+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2788 2789 2790-Wconversion 2791------------ 2792Some of the diagnostics controlled by this flag are enabled by default. 2793 2794Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wimplicit-float-conversion`_, `-Wimplicit-int-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_. 2795 2796**Diagnostic text:** 2797 2798+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2799|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2800+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2801 2802+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2803|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2804+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2805 2806+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2807|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`| 2808+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2809 2810+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2811|:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`| 2812+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2813 2814+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2815|:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`| 2816+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2817 2818 2819-Wconversion-null 2820----------------- 2821Synonym for `-Wnull-conversion`_. 2822 2823 2824-Wcoroutine 2825----------- 2826Synonym for `-Wcoroutine-missing-unhandled-exception`_. 2827 2828 2829-Wcoroutine-missing-unhandled-exception 2830--------------------------------------- 2831This diagnostic is enabled by default. 2832 2833**Diagnostic text:** 2834 2835+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2836|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`| 2837+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2838 2839 2840-Wcovered-switch-default 2841------------------------ 2842**Diagnostic text:** 2843 2844+--------------------------------------------------------------------------------------------------+ 2845|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`| 2846+--------------------------------------------------------------------------------------------------+ 2847 2848 2849-Wcpp 2850----- 2851Synonym for `-W#warnings`_. 2852 2853 2854-Wcstring-format-directive 2855-------------------------- 2856**Diagnostic text:** 2857 2858+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 2859|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+| 2860| ||:diagtext:`NSString`|| ||:diagtext:`method` || 2861| |+--------------------+| |+----------------------+| 2862| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`|| 2863| |+--------------------+| |+----------------------+| 2864+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 2865 2866 2867-Wctad-maybe-unsupported 2868------------------------ 2869**Diagnostic text:** 2870 2871+--------------------------------------------------------------------------------------------------------------------------+ 2872|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not intend to support class template argument deduction`| 2873+--------------------------------------------------------------------------------------------------------------------------+ 2874 2875 2876-Wctor-dtor-privacy 2877------------------- 2878This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 2879 2880-Wctu 2881----- 2882This diagnostic is enabled by default. 2883 2884**Diagnostic text:** 2885 2886+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2887|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`| 2888+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2889 2890 2891-Wcuda-compat 2892------------- 2893Some of the diagnostics controlled by this flag are enabled by default. 2894 2895**Diagnostic text:** 2896 2897+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2898|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`| 2899+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2900 2901+---------------------------------------------------------------------------------------------------------------------------------+ 2902|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`| 2903+---------------------------------------------------------------------------------------------------------------------------------+ 2904 2905+------------------------------------------------------------------------------------------------------------+ 2906|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`| 2907+------------------------------------------------------------------------------------------------------------+ 2908 2909+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2910|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 2911+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2912 2913+--------------------------------------------------------------------------------------------------------------+ 2914|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`| 2915+--------------------------------------------------------------------------------------------------------------+ 2916 2917 2918-Wcustom-atomic-properties 2919-------------------------- 2920**Diagnostic text:** 2921 2922+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 2923|:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`| 2924| ||:diagtext:`getter`|| | 2925| |+------------------+| | 2926| ||:diagtext:`setter`|| | 2927| |+------------------+| | 2928+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 2929 2930 2931-Wdangling 2932---------- 2933This diagnostic is enabled by default. 2934 2935Also controls `-Wdangling-field`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_. 2936 2937**Diagnostic text:** 2938 2939+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 2940|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`| 2941| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| ||+------------------------+|| | 2942| |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+||| |||:placeholder:`D` |nbsp| ||| | 2943| ||| ||:diagtext:`whose address is used as value of` || ||+-------------------------------+------------------------------------+|||| ||+------------------------+|| | 2944| ||| |+-------------------------------------------------------+| |||+-----------------------------+|:diagtext:`member of local variable`||||| |+--------------------------+| | 2945| ||| ||+--------------------------------+--------------------+|| |||| || ||||| || || | 2946| ||| |||+------------------------------+|:diagtext:`bound to`||| |||+-----------------------------+| ||||| |+--------------------------+| | 2947| ||| |||| || ||| ||||:diagtext:`reference` |nbsp| || ||||| | | | 2948| ||| |||+------------------------------+| ||| |||+-----------------------------+| ||||| | | | 2949| ||| ||||:diagtext:`implicitly` |nbsp| || ||| ||+-------------------------------+------------------------------------+|||| | | | 2950| ||| |||+------------------------------+| ||| |+----------------------------------------------------------------------+||| | | | 2951| ||| ||+--------------------------------+--------------------+|| ||+-------------------------+-----------------------+ |||| | | | 2952| ||| |+-------------------------------------------------------+| |||:diagtext:`local` |nbsp| |+---------------------+| |||| | | | 2953| ||| | | ||| ||:diagtext:`variable` || |||| | | | 2954| ||| | | ||| |+---------------------+| |||| | | | 2955| ||| | | ||| ||:diagtext:`reference`|| |||| | | | 2956| ||| | | ||| |+---------------------+| |||| | | | 2957| ||| | | ||+-------------------------+-----------------------+ |||| | | | 2958| ||| | | |+----------------------------------------------------------------------+||| | | | 2959| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| | | | 2960| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 2961| ||+---------------------------------+----------------------------------------------------------+ || | | | 2962| |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+| || | | | 2963| ||| ||:diagtext:`initializer list subobject of local variable`|| || | | | 2964| ||| |+--------------------------------------------------------+| || | | | 2965| ||| ||:diagtext:`local initializer list` || || | | | 2966| ||| |+--------------------------------------------------------+| || | | | 2967| ||+---------------------------------+----------------------------------------------------------+ || | | | 2968| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 2969+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 2970 2971+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 2972|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`| 2973| ||:diagtext:`temporary` || ||:diagtext:`temporary` || | 2974| |+---------------------------------------------+| |+-------------------------+| | 2975| ||:diagtext:`backing array of initializer list`|| ||:diagtext:`backing array`|| | 2976| |+---------------------------------------------+| |+-------------------------+| | 2977+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 2978 2979 2980-Wdangling-else 2981--------------- 2982This diagnostic is enabled by default. 2983 2984**Diagnostic text:** 2985 2986+---------------------------------------------------------------------------------+ 2987|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`| 2988+---------------------------------------------------------------------------------+ 2989 2990 2991-Wdangling-field 2992---------------- 2993This diagnostic is enabled by default. 2994 2995**Diagnostic text:** 2996 2997+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 2998|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 2999| ||:diagtext:`variable` || | 3000| |+---------------------+| | 3001| ||:diagtext:`parameter`|| | 3002| |+---------------------+| | 3003+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3004 3005+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 3006|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`| 3007| ||:diagtext:`reference` || || || ||:diagtext:`binds to`|| | 3008| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 3009| ||:diagtext:`backing array for 'std::initializer\_list'`|| ||:diagtext:`subobject of` |nbsp| || ||:diagtext:`is` || | 3010| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 3011+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 3012 3013+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3014|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 3015| ||:diagtext:`variable` || | 3016| |+---------------------+| | 3017| ||:diagtext:`parameter`|| | 3018| |+---------------------+| | 3019+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3020 3021+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3022|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`| 3023+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3024 3025 3026-Wdangling-initializer-list 3027--------------------------- 3028This diagnostic is enabled by default. 3029 3030**Diagnostic text:** 3031 3032+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 3033|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`| 3034| ||:diagtext:`initializer list subobject of the allocated object`|| | 3035| |+--------------------------------------------------------------+| | 3036| ||:diagtext:`the allocated initializer list` || | 3037| |+--------------------------------------------------------------+| | 3038+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 3039 3040 3041-Wdarwin-sdk-settings 3042--------------------- 3043This diagnostic is enabled by default. 3044 3045**Diagnostic text:** 3046 3047+----------------------------------------------------------------------------------------------------------+ 3048|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`| 3049+----------------------------------------------------------------------------------------------------------+ 3050 3051 3052-Wdate-time 3053----------- 3054**Diagnostic text:** 3055 3056+------------------------------------------------------------------------------------------+ 3057|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`| 3058+------------------------------------------------------------------------------------------+ 3059 3060 3061-Wdealloc-in-category 3062--------------------- 3063This diagnostic is enabled by default. 3064 3065**Diagnostic text:** 3066 3067+---------------------------------------------------------------------------------+ 3068|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`| 3069+---------------------------------------------------------------------------------+ 3070 3071 3072-Wdebug-compression-unavailable 3073------------------------------- 3074This diagnostic is enabled by default. 3075 3076**Diagnostic text:** 3077 3078+------------------------------------------------------------------------------------------+ 3079|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`| 3080+------------------------------------------------------------------------------------------+ 3081 3082 3083-Wdeclaration-after-statement 3084----------------------------- 3085**Diagnostic text:** 3086 3087+-----------------------------------------------------------------------------------+ 3088|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`| 3089+-----------------------------------------------------------------------------------+ 3090 3091 3092-Wdefaulted-function-deleted 3093---------------------------- 3094This diagnostic is enabled by default. 3095 3096**Diagnostic text:** 3097 3098+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 3099|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`| 3100| ||:diagtext:`default constructor` || | 3101| |+------------------------------------+| | 3102| ||:diagtext:`copy constructor` || | 3103| |+------------------------------------+| | 3104| ||:diagtext:`move constructor` || | 3105| |+------------------------------------+| | 3106| ||:diagtext:`copy assignment operator`|| | 3107| |+------------------------------------+| | 3108| ||:diagtext:`move assignment operator`|| | 3109| |+------------------------------------+| | 3110| ||:diagtext:`destructor` || | 3111| |+------------------------------------+| | 3112+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 3113 3114 3115-Wdelegating-ctor-cycles 3116------------------------ 3117This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error. 3118 3119**Diagnostic text:** 3120 3121+------------------------------------------------------------------------------------------------------------------------+ 3122|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`| 3123+------------------------------------------------------------------------------------------------------------------------+ 3124 3125 3126-Wdelete-abstract-non-virtual-dtor 3127---------------------------------- 3128This diagnostic is enabled by default. 3129 3130**Diagnostic text:** 3131 3132+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3133|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`| 3134| ||:diagtext:`delete` || | 3135| |+----------------------+| | 3136| ||:diagtext:`destructor`|| | 3137| |+----------------------+| | 3138+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3139 3140 3141-Wdelete-incomplete 3142------------------- 3143This diagnostic is enabled by default. 3144 3145**Diagnostic text:** 3146 3147+-------------------------------------------------------------------------------------------------------------------+ 3148|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`| 3149+-------------------------------------------------------------------------------------------------------------------+ 3150 3151+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3152|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`| 3153+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3154 3155 3156-Wdelete-non-abstract-non-virtual-dtor 3157-------------------------------------- 3158**Diagnostic text:** 3159 3160+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3161|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`| 3162| ||:diagtext:`delete` || | 3163| |+----------------------+| | 3164| ||:diagtext:`destructor`|| | 3165| |+----------------------+| | 3166+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3167 3168 3169-Wdelete-non-virtual-dtor 3170------------------------- 3171Some of the diagnostics controlled by this flag are enabled by default. 3172 3173Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_. 3174 3175 3176-Wdeprecated 3177------------ 3178Some of the diagnostics controlled by this flag are enabled by default. 3179 3180Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-writable-strings`_. 3181 3182**Diagnostic text:** 3183 3184+---------------------------------------------------------------+ 3185|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`| 3186+---------------------------------------------------------------+ 3187 3188+---------------------------------------------------------------------------------------------------------+ 3189|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`| 3190+---------------------------------------------------------------------------------------------------------+ 3191 3192+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ 3193|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+| 3194| ||:diagtext:`constructor` || ||+------------------------+---------------------------------+|| 3195| |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+||| 3196| ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`|||| 3197| |+-------------------------------+| ||| |+-------------------------------+||| 3198| | | ||| ||:diagtext:`constructor` |||| 3199| | | ||| |+-------------------------------+||| 3200| | | ||+------------------------+---------------------------------+|| 3201| | | |+------------------------------------------------------------+| 3202| | | ||:diagtext:`destructor` || 3203| | | |+------------------------------------------------------------+| 3204+--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ 3205 3206+-------------------------------------------------------------------------------------------------------------------------------------+ 3207|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`| 3208+-------------------------------------------------------------------------------------------------------------------------------------+ 3209 3210+----------------------------------------------------------------------------------------------------------------------------------------+ 3211|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`| 3212+----------------------------------------------------------------------------------------------------------------------------------------+ 3213 3214+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3215|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`| 3216+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3217 3218+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3219|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`| 3220+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3221 3222+------------------------------------------------------------------------------------+ 3223|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`| 3224+------------------------------------------------------------------------------------+ 3225 3226 3227-Wdeprecated-attributes 3228----------------------- 3229This diagnostic is enabled by default. 3230 3231**Diagnostic text:** 3232 3233+------------------------------------------------------------------------------------------------------------------------------------------------+ 3234|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`| 3235+------------------------------------------------------------------------------------------------------------------------------------------------+ 3236 3237 3238-Wdeprecated-declarations 3239------------------------- 3240This diagnostic is enabled by default. 3241 3242**Diagnostic text:** 3243 3244+--------------------------------------------------------------------------------------------------------------------+ 3245|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`| 3246+--------------------------------------------------------------------------------------------------------------------+ 3247 3248+-----------------------------------------------------------------------------------------------------------------+ 3249|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`| 3250+-----------------------------------------------------------------------------------------------------------------+ 3251 3252+----------------------------------------------------------------------------+ 3253|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3254+----------------------------------------------------------------------------+ 3255 3256+---------------------------------------------------------------------------------------------------------------------+ 3257|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`| 3258+---------------------------------------------------------------------------------------------------------------------+ 3259 3260+-----------------------------------------------------------------------------------------------------+ 3261|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`| 3262+-----------------------------------------------------------------------------------------------------+ 3263 3264+-------------------------------------------------------------------------------------------------------------------------------------+ 3265|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`| 3266+-------------------------------------------------------------------------------------------------------------------------------------+ 3267 3268 3269-Wdeprecated-dynamic-exception-spec 3270----------------------------------- 3271**Diagnostic text:** 3272 3273+--------------------------------------------------------------------------------------+ 3274|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`| 3275+--------------------------------------------------------------------------------------+ 3276 3277 3278-Wdeprecated-implementations 3279---------------------------- 3280**Diagnostic text:** 3281 3282+----------------------------------------------------------------------+----------------------+ 3283|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+| 3284| ||:diagtext:`method` || 3285| |+--------------------+| 3286| ||:diagtext:`class` || 3287| |+--------------------+| 3288| ||:diagtext:`category`|| 3289| |+--------------------+| 3290+----------------------------------------------------------------------+----------------------+ 3291 3292+----------------------------------------------------------------------+ 3293|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`| 3294+----------------------------------------------------------------------+ 3295 3296 3297-Wdeprecated-increment-bool 3298--------------------------- 3299This diagnostic is enabled by default. 3300 3301**Diagnostic text:** 3302 3303+---------------------------------------------------------------------------------------------------------------------+ 3304|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`| 3305+---------------------------------------------------------------------------------------------------------------------+ 3306 3307 3308-Wdeprecated-objc-isa-usage 3309--------------------------- 3310This diagnostic is enabled by default. 3311 3312**Diagnostic text:** 3313 3314+-------------------------------------------------------------------------------------------------------------------+ 3315|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`| 3316+-------------------------------------------------------------------------------------------------------------------+ 3317 3318+----------------------------------------------------------------------------------------------------------------------+ 3319|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`| 3320+----------------------------------------------------------------------------------------------------------------------+ 3321 3322 3323-Wdeprecated-objc-pointer-introspection 3324--------------------------------------- 3325This diagnostic is enabled by default. 3326 3327Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_. 3328 3329**Diagnostic text:** 3330 3331+--------------------------------------------------------------------------------------------------------------------------+ 3332|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3333+--------------------------------------------------------------------------------------------------------------------------+ 3334 3335 3336-Wdeprecated-objc-pointer-introspection-performSelector 3337------------------------------------------------------- 3338This diagnostic is enabled by default. 3339 3340**Diagnostic text:** 3341 3342+--------------------------------------------------------------------------------------------------------------------------+ 3343|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3344+--------------------------------------------------------------------------------------------------------------------------+ 3345 3346 3347-Wdeprecated-register 3348--------------------- 3349This diagnostic is enabled by default. 3350 3351**Diagnostic text:** 3352 3353+-------------------------------------------------------------------------------------------------------------------+ 3354|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`| 3355+-------------------------------------------------------------------------------------------------------------------+ 3356 3357 3358-Wdeprecated-this-capture 3359------------------------- 3360**Diagnostic text:** 3361 3362+-------------------------------------------------------------------------------------------------------------+ 3363|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`| 3364+-------------------------------------------------------------------------------------------------------------+ 3365 3366 3367-Wdeprecated-writable-strings 3368----------------------------- 3369Synonym for `-Wc++11-compat-deprecated-writable-strings`_. 3370 3371 3372-Wdirect-ivar-access 3373-------------------- 3374**Diagnostic text:** 3375 3376+------------------------------------------------------------------------------------------------------------------------------+ 3377|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`| 3378+------------------------------------------------------------------------------------------------------------------------------+ 3379 3380 3381-Wdisabled-macro-expansion 3382-------------------------- 3383**Diagnostic text:** 3384 3385+----------------------------------------------------------------------------+ 3386|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`| 3387+----------------------------------------------------------------------------+ 3388 3389 3390-Wdisabled-optimization 3391----------------------- 3392This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3393 3394-Wdiscard-qual 3395-------------- 3396This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3397 3398-Wdistributed-object-modifiers 3399------------------------------ 3400This diagnostic is enabled by default. 3401 3402**Diagnostic text:** 3403 3404+----------------------------------------------------------------------------------------------------------------------------------------------+ 3405|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`| 3406+----------------------------------------------------------------------------------------------------------------------------------------------+ 3407 3408+-------------------------------------------------------------------------------------------------------------------------------------------+ 3409|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`| 3410+-------------------------------------------------------------------------------------------------------------------------------------------+ 3411 3412 3413-Wdiv-by-zero 3414------------- 3415Synonym for `-Wdivision-by-zero`_. 3416 3417 3418-Wdivision-by-zero 3419------------------ 3420This diagnostic is enabled by default. 3421 3422**Diagnostic text:** 3423 3424+---------------------------+-----------------------+----------------------------------------+ 3425|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`| 3426| ||:diagtext:`remainder`|| | 3427| |+---------------------+| | 3428| ||:diagtext:`division` || | 3429| |+---------------------+| | 3430+---------------------------+-----------------------+----------------------------------------+ 3431 3432 3433-Wdll-attribute-on-redeclaration 3434-------------------------------- 3435This diagnostic is enabled by default. 3436 3437**Diagnostic text:** 3438 3439+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3440|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`| 3441+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3442 3443 3444-Wdllexport-explicit-instantiation-decl 3445--------------------------------------- 3446This diagnostic is enabled by default. 3447 3448**Diagnostic text:** 3449 3450+---------------------------------------------------------------------------------------------------+ 3451|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`| 3452+---------------------------------------------------------------------------------------------------+ 3453 3454 3455-Wdllimport-static-field-def 3456---------------------------- 3457This diagnostic is enabled by default. 3458 3459**Diagnostic text:** 3460 3461+---------------------------------------------------------------------------+ 3462|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`| 3463+---------------------------------------------------------------------------+ 3464 3465 3466-Wdocumentation 3467--------------- 3468Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_. 3469 3470**Diagnostic text:** 3471 3472+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3473|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`| 3474| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || | 3475| |+--------------+|+---------------------+| |+---------------------+| | 3476| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| | 3477| |+--------------+|+---------------------+| |+---------------------+| | 3478| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || | 3479| | |+---------------------+| |+---------------------+| | 3480| | ||:diagtext:`struct` || ||:diagtext:`struct` || | 3481| | |+---------------------+| |+---------------------+| | 3482| | ||:diagtext:`union` || ||:diagtext:`union` || | 3483| | |+---------------------+| |+---------------------+| | 3484+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3485 3486+-----------------------------------------------------------+----------------+-----------------------------+ 3487|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`| 3488| ||:diagtext:`\\`|| | 3489| |+--------------+| | 3490| ||:diagtext:`@` || | 3491| |+--------------+| | 3492+-----------------------------------------------------------+----------------+-----------------------------+ 3493 3494+------------------------------------------------------------------+----------------+-------------------------------------+ 3495|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`| 3496| ||:diagtext:`\\`|| | 3497| |+--------------+| | 3498| ||:diagtext:`@` || | 3499| |+--------------+| | 3500+------------------------------------------------------------------+----------------+-------------------------------------+ 3501 3502+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3503|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`| 3504| ||:diagtext:`\\`|||:diagtext:`classdesign` || | 3505| |+--------------+|+------------------------+| | 3506| ||:diagtext:`@` |||:diagtext:`coclass` || | 3507| |+--------------+|+------------------------+| | 3508| | ||:diagtext:`dependency` || | 3509| | |+------------------------+| | 3510| | ||:diagtext:`helper` || | 3511| | |+------------------------+| | 3512| | ||:diagtext:`helperclass` || | 3513| | |+------------------------+| | 3514| | ||:diagtext:`helps` || | 3515| | |+------------------------+| | 3516| | ||:diagtext:`instancesize`|| | 3517| | |+------------------------+| | 3518| | ||:diagtext:`ownership` || | 3519| | |+------------------------+| | 3520| | ||:diagtext:`performance` || | 3521| | |+------------------------+| | 3522| | ||:diagtext:`security` || | 3523| | |+------------------------+| | 3524| | ||:diagtext:`superclass` || | 3525| | |+------------------------+| | 3526+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3527 3528+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3529|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`| 3530| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || | 3531| |+--------------+|+-------------------------+| |+---------------------------------+| | 3532| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || | 3533| |+--------------+|+-------------------------+| |+---------------------------------+| | 3534| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| | 3535| | |+-------------------------+| |+---------------------------------+| | 3536| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| | 3537| | |+-------------------------+| |+---------------------------------+| | 3538| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| | 3539| | |+-------------------------+| |+---------------------------------+| | 3540+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3541 3542+-------------------------------------------------------------------------------------------------------+ 3543|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`| 3544+-------------------------------------------------------------------------------------------------------+ 3545 3546+-------------------------------------------------------------------------------+ 3547|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`| 3548+-------------------------------------------------------------------------------+ 3549 3550+-----------------------------------------------------------------------------------------------------+ 3551|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`| 3552+-----------------------------------------------------------------------------------------------------+ 3553 3554+------------------------------------------------------------------------------------------------------------------------------------------+ 3555|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`| 3556+------------------------------------------------------------------------------------------------------------------------------------------+ 3557 3558+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3559|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`| 3560| ||:diagtext:`\\`|| | 3561| |+--------------+| | 3562| ||:diagtext:`@` || | 3563| |+--------------+| | 3564+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3565 3566+---------------------------------------------------------------------------------------------------------------------+ 3567|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`| 3568+---------------------------------------------------------------------------------------------------------------------+ 3569 3570+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 3571|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+| 3572| ||:diagtext:`\\`|| ||:diagtext:`function returning void`|| 3573| |+--------------+| |+-----------------------------------+| 3574| ||:diagtext:`@` || ||:diagtext:`constructor` || 3575| |+--------------+| |+-----------------------------------+| 3576| | | ||:diagtext:`destructor` || 3577| | | |+-----------------------------------+| 3578| | | ||:diagtext:`method returning void` || 3579| | | |+-----------------------------------+| 3580+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 3581 3582+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 3583|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`| 3584| ||:diagtext:`\\`|| | 3585| |+--------------+| | 3586| ||:diagtext:`@` || | 3587| |+--------------+| | 3588+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 3589 3590+--------------------------------------------------------------------------------------------------------------+ 3591|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`| 3592+--------------------------------------------------------------------------------------------------------------+ 3593 3594+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 3595|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`| 3596| ||:diagtext:`\\`|| | 3597| |+--------------+| | 3598| ||:diagtext:`@` || | 3599| |+--------------+| | 3600+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 3601 3602+------------------------------------------------------------------------------------------------------------------------------+ 3603|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`| 3604+------------------------------------------------------------------------------------------------------------------------------+ 3605 3606+---------------------------------------------------------------------+ 3607|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`| 3608+---------------------------------------------------------------------+ 3609 3610+----------------------------------------+----------------+------------------------------------------------------------------------------+ 3611|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`| 3612| ||:diagtext:`\\`|| | 3613| |+--------------+| | 3614| ||:diagtext:`@` || | 3615| |+--------------+| | 3616+----------------------------------------+----------------+------------------------------------------------------------------------------+ 3617 3618 3619-Wdocumentation-deprecated-sync 3620------------------------------- 3621**Diagnostic text:** 3622 3623+----------------------------------------------------------------------------------------------------------------------------------+ 3624|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`| 3625+----------------------------------------------------------------------------------------------------------------------------------+ 3626 3627 3628-Wdocumentation-html 3629-------------------- 3630**Diagnostic text:** 3631 3632+-----------------------------------------------------------------------------------------------+ 3633|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`| 3634+-----------------------------------------------------------------------------------------------+ 3635 3636+--------------------------------------------------------------------------------+ 3637|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`| 3638+--------------------------------------------------------------------------------+ 3639 3640+--------------------------------------------------------------------------------------------------+ 3641|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`| 3642+--------------------------------------------------------------------------------------------------+ 3643 3644+-----------------------------------------------------------------------------------------------------------------------------+ 3645|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`| 3646+-----------------------------------------------------------------------------------------------------------------------------+ 3647 3648 3649-Wdocumentation-pedantic 3650------------------------ 3651Also controls `-Wdocumentation-unknown-command`_. 3652 3653**Diagnostic text:** 3654 3655+-----------------------------------------------------------------------------------------------+ 3656|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`| 3657+-----------------------------------------------------------------------------------------------+ 3658 3659 3660-Wdocumentation-unknown-command 3661------------------------------- 3662**Diagnostic text:** 3663 3664+--------------------------------------------------------------------------------------------------------------------------------------------+ 3665|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| 3666+--------------------------------------------------------------------------------------------------------------------------------------------+ 3667 3668+---------------------------------------------------------------+ 3669|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`| 3670+---------------------------------------------------------------+ 3671 3672 3673-Wdollar-in-identifier-extension 3674-------------------------------- 3675**Diagnostic text:** 3676 3677+--------------------------------------------------------+ 3678|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`| 3679+--------------------------------------------------------+ 3680 3681 3682-Wdouble-promotion 3683------------------ 3684**Diagnostic text:** 3685 3686+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3687|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 3688+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3689 3690 3691-Wduplicate-decl-specifier 3692-------------------------- 3693Some of the diagnostics controlled by this flag are enabled by default. 3694 3695**Diagnostic text:** 3696 3697+-----------------------------------------------------------------------------------------------------+ 3698|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3699+-----------------------------------------------------------------------------------------------------+ 3700 3701+-----------------------------------------------------------------------------------------------------+ 3702|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3703+-----------------------------------------------------------------------------------------------------+ 3704 3705+-------------------------------------------------------------------------------------------+ 3706|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`| 3707+-------------------------------------------------------------------------------------------+ 3708 3709+-----------------------------------------------------------------------------------------------------+ 3710|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 3711+-----------------------------------------------------------------------------------------------------+ 3712 3713 3714-Wduplicate-enum 3715---------------- 3716**Diagnostic text:** 3717 3718+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3719|:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`| 3720+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3721 3722 3723-Wduplicate-method-arg 3724---------------------- 3725**Diagnostic text:** 3726 3727+------------------------------------------------------------------------------------------------+ 3728|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`| 3729+------------------------------------------------------------------------------------------------+ 3730 3731 3732-Wduplicate-method-match 3733------------------------ 3734**Diagnostic text:** 3735 3736+-----------------------------------------------------------------------------------------------------------------------------------+ 3737|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`| 3738+-----------------------------------------------------------------------------------------------------------------------------------+ 3739 3740 3741-Wduplicate-protocol 3742-------------------- 3743This diagnostic is enabled by default. 3744 3745**Diagnostic text:** 3746 3747+-----------------------------------------------------------------------------------------------------------------------------+ 3748|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`| 3749+-----------------------------------------------------------------------------------------------------------------------------+ 3750 3751 3752-Wdynamic-class-memaccess 3753------------------------- 3754This diagnostic is enabled by default. 3755 3756**Diagnostic text:** 3757 3758+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 3759|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+| 3760| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`|| 3761| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 3762| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` || 3763| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 3764| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` || 3765| |+-----------------------------+| | | |+-----------------------+| 3766| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` || 3767| |+-----------------------------+| | | |+-----------------------+| 3768+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 3769 3770 3771-Wdynamic-exception-spec 3772------------------------ 3773Some of the diagnostics controlled by this flag are enabled by default. 3774 3775Also controls `-Wdeprecated-dynamic-exception-spec`_. 3776 3777**Diagnostic text:** 3778 3779+--------------------------------------------------------------------------------------------+ 3780|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`| 3781+--------------------------------------------------------------------------------------------+ 3782 3783 3784-Weffc++ 3785-------- 3786Synonym for `-Wnon-virtual-dtor`_. 3787 3788 3789-Wembedded-directive 3790-------------------- 3791**Diagnostic text:** 3792 3793+----------------------------------------------------------------------------------------------------------+ 3794|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`| 3795+----------------------------------------------------------------------------------------------------------+ 3796 3797 3798-Wempty-body 3799------------ 3800This diagnostic is enabled by default. 3801 3802**Diagnostic text:** 3803 3804+--------------------------------------------------------------+ 3805|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`| 3806+--------------------------------------------------------------+ 3807 3808+------------------------------------------------------------------+ 3809|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`| 3810+------------------------------------------------------------------+ 3811 3812+--------------------------------------------------------------------------+ 3813|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`| 3814+--------------------------------------------------------------------------+ 3815 3816+----------------------------------------------------------------------+ 3817|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`| 3818+----------------------------------------------------------------------+ 3819 3820+----------------------------------------------------------------+ 3821|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`| 3822+----------------------------------------------------------------+ 3823 3824 3825-Wempty-decomposition 3826--------------------- 3827This diagnostic is enabled by default. 3828 3829**Diagnostic text:** 3830 3831+-------------------------------------------------------------------------------------------------+ 3832|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`| 3833+-------------------------------------------------------------------------------------------------+ 3834 3835 3836-Wempty-init-stmt 3837----------------- 3838**Diagnostic text:** 3839 3840+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 3841|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`| 3842| ||:diagtext:`if` || | 3843| |+---------------------------+| | 3844| ||:diagtext:`switch` || | 3845| |+---------------------------+| | 3846| ||:diagtext:`range-based for`|| | 3847| |+---------------------------+| | 3848+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 3849 3850 3851-Wempty-translation-unit 3852------------------------ 3853**Diagnostic text:** 3854 3855+------------------------------------------------------------------------------------------------------------+ 3856|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`| 3857+------------------------------------------------------------------------------------------------------------+ 3858 3859 3860-Wencode-type 3861------------- 3862This diagnostic is enabled by default. 3863 3864**Diagnostic text:** 3865 3866+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3867|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`| 3868+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3869 3870 3871-Wendif-labels 3872-------------- 3873Synonym for `-Wextra-tokens`_. 3874 3875 3876-Wenum-compare 3877-------------- 3878This diagnostic is enabled by default. 3879 3880Also controls `-Wenum-compare-switch`_. 3881 3882**Diagnostic text:** 3883 3884+------------------------------------------------------------------------------------------------+ 3885|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`| 3886+------------------------------------------------------------------------------------------------+ 3887 3888 3889-Wenum-compare-switch 3890--------------------- 3891This diagnostic is enabled by default. 3892 3893**Diagnostic text:** 3894 3895+--------------------------------------------------------------------------------------------------------------------+ 3896|:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`| 3897+--------------------------------------------------------------------------------------------------------------------+ 3898 3899 3900-Wenum-conversion 3901----------------- 3902This diagnostic is enabled by default. 3903 3904**Diagnostic text:** 3905 3906+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3907|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`| 3908+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3909 3910 3911-Wenum-too-large 3912---------------- 3913This diagnostic is enabled by default. 3914 3915**Diagnostic text:** 3916 3917+-----------------------------------------------------------------------------------------+ 3918|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`| 3919+-----------------------------------------------------------------------------------------+ 3920 3921+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3922|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`| 3923+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3924 3925 3926-Wexceptions 3927------------ 3928This diagnostic is enabled by default. 3929 3930**Diagnostic text:** 3931 3932+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 3933|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`| 3934| ||:diagtext:`constructor`|| | 3935| |+-----------------------+| | 3936| ||:diagtext:`destructor` || | 3937| |+-----------------------+| | 3938+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 3939 3940+-------------------------------------------------------------------------------------------------------------------------------------+ 3941|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`| 3942+-------------------------------------------------------------------------------------------------------------------------------------+ 3943 3944+-----------------------------------------------------------------------------------------------------------------------------+ 3945|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`| 3946+-----------------------------------------------------------------------------------------------------------------------------+ 3947 3948 3949-Wexit-time-destructors 3950----------------------- 3951**Diagnostic text:** 3952 3953+-----------------------------------------------------------------------------------+ 3954|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`| 3955+-----------------------------------------------------------------------------------+ 3956 3957 3958-Wexpansion-to-defined 3959---------------------- 3960Some of the diagnostics controlled by this flag are enabled by default. 3961 3962**Diagnostic text:** 3963 3964+-------------------------------------------------------------------------------------------------+ 3965|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 3966+-------------------------------------------------------------------------------------------------+ 3967 3968+-------------------------------------------------------------------------------------------------+ 3969|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 3970+-------------------------------------------------------------------------------------------------+ 3971 3972 3973-Wexperimental-isel 3974------------------- 3975This diagnostic is enabled by default. 3976 3977**Diagnostic text:** 3978 3979+------------------------------------------------------------------------------------------------------------------------------------+ 3980|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`| 3981+------------------------------------------------------------------------------------------------------------------------------------+ 3982 3983+----------------------------------------------------------------------------------------------------------------------------------------+ 3984|:warning:`warning:` |nbsp| :diagtext:`-fexperimental-isel support is incomplete for this architecture at the current optimization level`| 3985+----------------------------------------------------------------------------------------------------------------------------------------+ 3986 3987 3988-Wexplicit-initialize-call 3989-------------------------- 3990This diagnostic is enabled by default. 3991 3992**Diagnostic text:** 3993 3994+------------------------------------------------------------------------------------------------------------+ 3995|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`| 3996+------------------------------------------------------------------------------------------------------------+ 3997 3998+----------------------------------------------------------------------------------------------------------------------------+ 3999|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`| 4000+----------------------------------------------------------------------------------------------------------------------------+ 4001 4002 4003-Wexplicit-ownership-type 4004------------------------- 4005**Diagnostic text:** 4006 4007+-------------------------------------------------------------------------------------------------------------------------------------+ 4008|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`| 4009+-------------------------------------------------------------------------------------------------------------------------------------+ 4010 4011 4012-Wexport-unnamed 4013---------------- 4014This diagnostic is enabled by default. 4015 4016**Diagnostic text:** 4017 4018+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+ 4019|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit` |nbsp| |+----------------------------+| |nbsp| :diagtext:`declaration to appear in an export block`| 4020| ||:diagtext:`an empty` || | 4021| |+----------------------------+| | 4022| ||:diagtext:`a static\_assert`|| | 4023| |+----------------------------+| | 4024+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+ 4025 4026+-------------------------------------------------------------------------------------------------------------------------------+ 4027|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit a declaration that does not introduce any names to be exported`| 4028+-------------------------------------------------------------------------------------------------------------------------------+ 4029 4030 4031-Wexport-using-directive 4032------------------------ 4033This diagnostic is enabled by default. 4034 4035**Diagnostic text:** 4036 4037+-----------------------------------------------------------------------------------------------+ 4038|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit using directive to be exported`| 4039+-----------------------------------------------------------------------------------------------+ 4040 4041 4042-Wextern-c-compat 4043----------------- 4044This diagnostic is enabled by default. 4045 4046**Diagnostic text:** 4047 4048+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 4049|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 4050| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 4051| |+-------------------------+|+------------------+| |+-------------------------+| | 4052| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 4053| |+-------------------------+|+------------------+| |+-------------------------+| | 4054+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 4055 4056 4057-Wextern-initializer 4058-------------------- 4059This diagnostic is enabled by default. 4060 4061**Diagnostic text:** 4062 4063+---------------------------------------------------------------------------+ 4064|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`| 4065+---------------------------------------------------------------------------+ 4066 4067 4068-Wextra 4069------- 4070Some of the diagnostics controlled by this flag are enabled by default. 4071 4072Also controls `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_. 4073 4074**Diagnostic text:** 4075 4076+-----------------------------------------------------------------------------------------------------------------------------+ 4077|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`| 4078+-----------------------------------------------------------------------------------------------------------------------------+ 4079 4080 4081-Wextra-qualification 4082--------------------- 4083This diagnostic is enabled by default. 4084 4085**Diagnostic text:** 4086 4087+--------------------------------------------------------------------------------------------+ 4088|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 4089+--------------------------------------------------------------------------------------------+ 4090 4091 4092-Wextra-semi 4093------------ 4094Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_. 4095 4096**Diagnostic text:** 4097 4098+--------------------------------------------------------+------------------------------------------------+ 4099|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 4100| ||:diagtext:`outside of a function` || 4101| |+----------------------------------------------+| 4102| ||+--------------------------------------------+|| 4103| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 4104| ||+--------------------------------------------+|| 4105| |+----------------------------------------------+| 4106| ||:diagtext:`inside instance variable list` || 4107| |+----------------------------------------------+| 4108| ||:diagtext:`after member function definition` || 4109| |+----------------------------------------------+| 4110+--------------------------------------------------------+------------------------------------------------+ 4111 4112+---------------------------------------------------------------------------------+ 4113|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`| 4114+---------------------------------------------------------------------------------+ 4115 4116 4117-Wextra-semi-stmt 4118----------------- 4119Also controls `-Wempty-init-stmt`_. 4120 4121**Diagnostic text:** 4122 4123+-------------------------------------------------------------------------------------------------------------------------------+ 4124|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`| 4125+-------------------------------------------------------------------------------------------------------------------------------+ 4126 4127 4128-Wextra-tokens 4129-------------- 4130This diagnostic is enabled by default. 4131 4132**Diagnostic text:** 4133 4134+------------------------------------------------------------------------------------------------------------+ 4135|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`| 4136+------------------------------------------------------------------------------------------------------------+ 4137 4138+-------------------------------------------------------------------------------------------------------------------------------+ 4139|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`| 4140+-------------------------------------------------------------------------------------------------------------------------------+ 4141 4142 4143-Wfallback 4144---------- 4145This diagnostic is enabled by default. 4146 4147**Diagnostic text:** 4148 4149+------------------------------------------------------------------------------+ 4150|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`| 4151+------------------------------------------------------------------------------+ 4152 4153 4154-Wfixed-enum-extension 4155---------------------- 4156**Diagnostic text:** 4157 4158+-----------------------------------------------------------------------------------------------------------+ 4159|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`| 4160+-----------------------------------------------------------------------------------------------------------+ 4161 4162 4163-Wflag-enum 4164----------- 4165This diagnostic is enabled by default. 4166 4167**Diagnostic text:** 4168 4169+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4170|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`| 4171+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4172 4173 4174-Wflexible-array-extensions 4175--------------------------- 4176**Diagnostic text:** 4177 4178+-------------------------------------------------------------------------------------------------------------------------------+ 4179|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`| 4180+-------------------------------------------------------------------------------------------------------------------------------+ 4181 4182+-------------------------------------------------------------------------------------------------------------------------+ 4183|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`| 4184+-------------------------------------------------------------------------------------------------------------------------+ 4185 4186 4187-Wfloat-conversion 4188------------------ 4189Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_. 4190 4191**Diagnostic text:** 4192 4193+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4194|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 4195+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4196 4197 4198-Wfloat-equal 4199------------- 4200**Diagnostic text:** 4201 4202+---------------------------------------------------------------------------------------+ 4203|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`| 4204+---------------------------------------------------------------------------------------+ 4205 4206 4207-Wfloat-overflow-conversion 4208--------------------------- 4209**Diagnostic text:** 4210 4211+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4212|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4213+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4214 4215+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4216|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 4217+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4218 4219 4220-Wfloat-zero-conversion 4221----------------------- 4222**Diagnostic text:** 4223 4224+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4225|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4226+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4227 4228 4229-Wfor-loop-analysis 4230------------------- 4231**Diagnostic text:** 4232 4233+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4234|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`| 4235| ||:diagtext:`decremented`|| | 4236| |+-----------------------+| | 4237| ||:diagtext:`incremented`|| | 4238| |+-----------------------+| | 4239+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4240 4241+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4242|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`| 4243| ||:diagtext:`s` || | 4244| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4245| ||+------------------------+ || | 4246| ||| |nbsp| :placeholder:`B`| || | 4247| ||+------------------------+ || | 4248| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4249| ||+------------------------------------------------------------------------------------+ || | 4250| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || | 4251| ||+------------------------------------------------------------------------------------+ || | 4252| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4253| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4254| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || | 4255| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4256| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4257| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4258| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| | 4259| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4260| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4261+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4262 4263 4264-Wformat 4265-------- 4266This diagnostic is enabled by default. 4267 4268Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_. 4269 4270**Diagnostic text:** 4271 4272+-------------------------------------------------------------------------------------+ 4273|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`| 4274+-------------------------------------------------------------------------------------+ 4275 4276+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4277|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 4278| ||:diagtext:`values of type` || | 4279| |+--------------------------------------------+| | 4280| ||:diagtext:`enum values with underlying type`|| | 4281| |+--------------------------------------------+| | 4282+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4283 4284+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4285|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 4286| ||:diagtext:`type` || | 4287| |+---------------------------+| | 4288| ||:diagtext:`underlying type`|| | 4289| |+---------------------------+| | 4290+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4291 4292+----------------------------------------------------------------------------------------------------------------------------------------+ 4293|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`| 4294+----------------------------------------------------------------------------------------------------------------------------------------+ 4295 4296+-----------------------------------------------------------------------------+-----------------------------+ 4297|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+| 4298| ||:diagtext:`field width` || 4299| |+---------------------------+| 4300| ||:diagtext:`field precision`|| 4301| |+---------------------------+| 4302+-----------------------------------------------------------------------------+-----------------------------+ 4303 4304+----------------------------------------------------------------------------------------------------------+ 4305|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`| 4306+----------------------------------------------------------------------------------------------------------+ 4307 4308+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4309|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4310+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4311 4312+--------------------------------------------------------------------------------+ 4313|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`| 4314+--------------------------------------------------------------------------------+ 4315 4316+-------------------------------------------------------------------------------------------------------+ 4317|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`| 4318+-------------------------------------------------------------------------------------------------------+ 4319 4320+------------------------------------------------------------+ 4321|:warning:`warning:` |nbsp| :diagtext:`format string missing`| 4322+------------------------------------------------------------+ 4323 4324+----------------------------------------------------------------------------------------------------------------------------------+ 4325|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`| 4326+----------------------------------------------------------------------------------------------------------------------------------+ 4327 4328+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4329|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`| 4330| ||:diagtext:`\*` || ||:diagtext:`width` || | 4331| |+---------------+| |+---------------------+| | 4332| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| | 4333| |+---------------+| |+---------------------+| | 4334+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4335 4336+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4337|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`| 4338| ||:diagtext:`width` || | 4339| |+---------------------+| | 4340| ||:diagtext:`precision`|| | 4341| |+---------------------+| | 4342+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4343 4344+-----------------------------------------------------------------+ 4345|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`| 4346+-----------------------------------------------------------------+ 4347 4348+------------------------------------------------------------------------------------------+ 4349|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`| 4350+------------------------------------------------------------------------------------------+ 4351 4352+---------------------------------------------------------------------------+ 4353|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`| 4354+---------------------------------------------------------------------------+ 4355 4356+-----------------------------------------------------------------------------------------------------------------------------------------+ 4357|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`| 4358+-----------------------------------------------------------------------------------------------------------------------------------------+ 4359 4360+------------------------------------------------------------------+ 4361|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`| 4362+------------------------------------------------------------------+ 4363 4364+--------------------------------------------------------------------------------+ 4365|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`| 4366+--------------------------------------------------------------------------------+ 4367 4368+-------------------------------------------------------------------------------------------------------+ 4369|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`| 4370+-------------------------------------------------------------------------------------------------------+ 4371 4372+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4373|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4374+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4375 4376+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4377|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`| 4378| ||:diagtext:`field width`|| | 4379| |+-----------------------+| | 4380| ||:diagtext:`precision` || | 4381| |+-----------------------+| | 4382+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4383 4384+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4385|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`| 4386+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4387 4388+----------------------------------------------------------------------------------------+ 4389|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`| 4390+----------------------------------------------------------------------------------------+ 4391 4392+----------------------------------------------------------------------------------------+ 4393|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`| 4394+----------------------------------------------------------------------------------------+ 4395 4396 4397-Wformat-extra-args 4398------------------- 4399This diagnostic is enabled by default. 4400 4401**Diagnostic text:** 4402 4403+------------------------------------------------------------------------------+ 4404|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`| 4405+------------------------------------------------------------------------------+ 4406 4407 4408-Wformat-invalid-specifier 4409-------------------------- 4410This diagnostic is enabled by default. 4411 4412**Diagnostic text:** 4413 4414+--------------------------------------------------------------------------------------------------+ 4415|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`| 4416+--------------------------------------------------------------------------------------------------+ 4417 4418 4419-Wformat-non-iso 4420---------------- 4421**Diagnostic text:** 4422 4423+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 4424|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`| 4425| ||:diagtext:`length modifier` || | 4426| |+--------------------------------+| | 4427| ||:diagtext:`conversion specifier`|| | 4428| |+--------------------------------+| | 4429+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 4430 4431+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4432|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`| 4433+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4434 4435+--------------------------------------------------------------------------------------+ 4436|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`| 4437+--------------------------------------------------------------------------------------+ 4438 4439 4440-Wformat-nonliteral 4441------------------- 4442**Diagnostic text:** 4443 4444+----------------------------------------------------------------------------+ 4445|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`| 4446+----------------------------------------------------------------------------+ 4447 4448 4449-Wformat-pedantic 4450----------------- 4451**Diagnostic text:** 4452 4453+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4454|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 4455| ||:diagtext:`values of type` || | 4456| |+--------------------------------------------+| | 4457| ||:diagtext:`enum values with underlying type`|| | 4458| |+--------------------------------------------+| | 4459+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4460 4461+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4462|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 4463| ||:diagtext:`type` || | 4464| |+---------------------------+| | 4465| ||:diagtext:`underlying type`|| | 4466| |+---------------------------+| | 4467+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4468 4469 4470-Wformat-security 4471----------------- 4472This diagnostic is enabled by default. 4473 4474**Diagnostic text:** 4475 4476+---------------------------------------------------------------------------------------------------+ 4477|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`| 4478+---------------------------------------------------------------------------------------------------+ 4479 4480 4481-Wformat-y2k 4482------------ 4483This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 4484 4485-Wformat-zero-length 4486-------------------- 4487This diagnostic is enabled by default. 4488 4489**Diagnostic text:** 4490 4491+-------------------------------------------------------------+ 4492|:warning:`warning:` |nbsp| :diagtext:`format string is empty`| 4493+-------------------------------------------------------------+ 4494 4495 4496-Wformat=2 4497---------- 4498Some of the diagnostics controlled by this flag are enabled by default. 4499 4500Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_. 4501 4502 4503-Wfortify-source 4504---------------- 4505This diagnostic is enabled by default. 4506 4507**Diagnostic text:** 4508 4509+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4510|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 4511+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4512 4513+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4514|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' size argument is too large; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 4515+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4516 4517 4518-Wfour-char-constants 4519--------------------- 4520**Diagnostic text:** 4521 4522+-------------------------------------------------------------------------+ 4523|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 4524+-------------------------------------------------------------------------+ 4525 4526 4527-Wframe-larger-than= 4528-------------------- 4529This diagnostic is enabled by default. 4530 4531**Diagnostic text:** 4532 4533The text of this diagnostic is not controlled by Clang. 4534 4535+--------------------------------------------------------------------------------------------------------------------------------------+ 4536|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`| 4537+--------------------------------------------------------------------------------------------------------------------------------------+ 4538 4539 4540-Wframework-include-private-from-public 4541--------------------------------------- 4542This diagnostic is enabled by default. 4543 4544**Diagnostic text:** 4545 4546+-------------------------------------------------------------------------------------------------------------------------------+ 4547|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`| 4548+-------------------------------------------------------------------------------------------------------------------------------+ 4549 4550 4551-Wfunction-def-in-objc-container 4552-------------------------------- 4553This diagnostic is enabled by default. 4554 4555**Diagnostic text:** 4556 4557+--------------------------------------------------------------------------------------------------------+ 4558|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`| 4559+--------------------------------------------------------------------------------------------------------+ 4560 4561 4562-Wfunction-multiversion 4563----------------------- 4564This diagnostic is enabled by default. 4565 4566**Diagnostic text:** 4567 4568+-------------------------------------------------------------------------------------+ 4569|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`| 4570+-------------------------------------------------------------------------------------+ 4571 4572+---------------------------------------------------------------------------------------------+ 4573|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`| 4574+---------------------------------------------------------------------------------------------+ 4575 4576 4577-Wfuture-compat 4578--------------- 4579This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 4580 4581-Wgcc-compat 4582------------ 4583Some of the diagnostics controlled by this flag are enabled by default. 4584 4585**Diagnostic text:** 4586 4587+--------------------------------------------------------------------------+ 4588|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 4589+--------------------------------------------------------------------------+ 4590 4591+------------------------------------------------------------------------+ 4592|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 4593+------------------------------------------------------------------------+ 4594 4595+-----------------------------------------------------------------------------------------------+ 4596|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`| 4597+-----------------------------------------------------------------------------------------------+ 4598 4599+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4600|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`| 4601+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4602 4603+---------------------------------------------------------------------------------------+ 4604|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`| 4605+---------------------------------------------------------------------------------------+ 4606 4607+----------------------------------------------------------------------------------------------------------------------------------------+ 4608|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`| 4609+----------------------------------------------------------------------------------------------------------------------------------------+ 4610 4611+-----------------------------------------------------------------------------------------------------------------+ 4612|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`| 4613+-----------------------------------------------------------------------------------------------------------------+ 4614 4615+------------------------------------------------------------------------------------------------------------------------------------------+ 4616|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`| 4617+------------------------------------------------------------------------------------------------------------------------------------------+ 4618 4619+-------------------------------------------------------------------------------------------------------------------+ 4620|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`| 4621+-------------------------------------------------------------------------------------------------------------------+ 4622 4623+----------------------------------------------------------------------------------------------------------------------------------+ 4624|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`| 4625+----------------------------------------------------------------------------------------------------------------------------------+ 4626 4627 4628-Wglobal-constructors 4629--------------------- 4630**Diagnostic text:** 4631 4632+--------------------------------------------------------------------------------+ 4633|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`| 4634+--------------------------------------------------------------------------------+ 4635 4636+-------------------------------------------------------------------------------+ 4637|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`| 4638+-------------------------------------------------------------------------------+ 4639 4640 4641-Wgnu 4642----- 4643Some of the diagnostics controlled by this flag are enabled by default. 4644 4645Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_. 4646 4647 4648-Wgnu-alignof-expression 4649------------------------ 4650This diagnostic is enabled by default. 4651 4652**Diagnostic text:** 4653 4654+----------------------------------------------------------------------------------------------------------+ 4655|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`| 4656+----------------------------------------------------------------------------------------------------------+ 4657 4658 4659-Wgnu-anonymous-struct 4660---------------------- 4661**Diagnostic text:** 4662 4663+----------------------------------------------------------------------------+ 4664|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`| 4665+----------------------------------------------------------------------------+ 4666 4667 4668-Wgnu-array-member-paren-init 4669----------------------------- 4670This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error. 4671 4672**Diagnostic text:** 4673 4674+----------------------------------------------------------------------------------------------------+ 4675|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`| 4676+----------------------------------------------------------------------------------------------------+ 4677 4678 4679-Wgnu-auto-type 4680--------------- 4681**Diagnostic text:** 4682 4683+--------------------------------------------------------------------------+ 4684|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`| 4685+--------------------------------------------------------------------------+ 4686 4687 4688-Wgnu-binary-literal 4689-------------------- 4690**Diagnostic text:** 4691 4692+----------------------------------------------------------------------------------+ 4693|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`| 4694+----------------------------------------------------------------------------------+ 4695 4696 4697-Wgnu-case-range 4698---------------- 4699**Diagnostic text:** 4700 4701+----------------------------------------------------------------------+ 4702|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`| 4703+----------------------------------------------------------------------+ 4704 4705 4706-Wgnu-complex-integer 4707--------------------- 4708**Diagnostic text:** 4709 4710+--------------------------------------------------------------------------------+ 4711|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`| 4712+--------------------------------------------------------------------------------+ 4713 4714 4715-Wgnu-compound-literal-initializer 4716---------------------------------- 4717**Diagnostic text:** 4718 4719+--------------------------------------------------------------------------------------------------------------------------------------------------+ 4720|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`| 4721+--------------------------------------------------------------------------------------------------------------------------------------------------+ 4722 4723 4724-Wgnu-conditional-omitted-operand 4725--------------------------------- 4726**Diagnostic text:** 4727 4728+--------------------------------------------------------------------------------------------------------------+ 4729|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`| 4730+--------------------------------------------------------------------------------------------------------------+ 4731 4732 4733-Wgnu-designator 4734---------------- 4735Some of the diagnostics controlled by this flag are enabled by default. 4736 4737**Diagnostic text:** 4738 4739+-----------------------------------------------------------------------+ 4740|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 4741+-----------------------------------------------------------------------+ 4742 4743+-------------------------------------------------------------------------------------+ 4744|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`| 4745+-------------------------------------------------------------------------------------+ 4746 4747+--------------------------------------------------------------------------------------+ 4748|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`| 4749+--------------------------------------------------------------------------------------+ 4750 4751 4752-Wgnu-empty-initializer 4753----------------------- 4754**Diagnostic text:** 4755 4756+-----------------------------------------------------------------------------+ 4757|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`| 4758+-----------------------------------------------------------------------------+ 4759 4760 4761-Wgnu-empty-struct 4762------------------ 4763**Diagnostic text:** 4764 4765+----------------------------------------------------+--------------------+--------------------------------------+ 4766|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`| 4767| ||:diagtext:`struct`|| | 4768| |+------------------+| | 4769| ||:diagtext:`union` || | 4770| |+------------------+| | 4771+----------------------------------------------------+--------------------+--------------------------------------+ 4772 4773+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 4774|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`| 4775| ||:diagtext:`struct` || | 4776| |+---------------------+| | 4777| ||:diagtext:`interface`|| | 4778| |+---------------------+| | 4779| ||:diagtext:`union` || | 4780| |+---------------------+| | 4781| ||:diagtext:`class` || | 4782| |+---------------------+| | 4783| ||:diagtext:`enum` || | 4784| |+---------------------+| | 4785+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 4786 4787+---------------------------+--------------------+------------------------------------------------------------+ 4788|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`| 4789| ||:diagtext:`struct`|| | 4790| |+------------------+| | 4791| ||:diagtext:`union` || | 4792| |+------------------+| | 4793+---------------------------+--------------------+------------------------------------------------------------+ 4794 4795 4796-Wgnu-flexible-array-initializer 4797-------------------------------- 4798**Diagnostic text:** 4799 4800+---------------------------------------------------------------------------------------+ 4801|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`| 4802+---------------------------------------------------------------------------------------+ 4803 4804 4805-Wgnu-flexible-array-union-member 4806--------------------------------- 4807**Diagnostic text:** 4808 4809+-------------------------------------------------------------------------------------------------------------------------------------+ 4810|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`| 4811+-------------------------------------------------------------------------------------------------------------------------------------+ 4812 4813 4814-Wgnu-folding-constant 4815---------------------- 4816**Diagnostic text:** 4817 4818+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 4819|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`| 4820| ||:diagtext:`integer` || | 4821| |+--------------------+| | 4822| ||:diagtext:`integral`|| | 4823| |+--------------------+| | 4824+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 4825 4826+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4827|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`| 4828+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4829 4830+-----------------------------------------------------------------------------------------------------+ 4831|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`| 4832+-----------------------------------------------------------------------------------------------------+ 4833 4834 4835-Wgnu-imaginary-constant 4836------------------------ 4837**Diagnostic text:** 4838 4839+------------------------------------------------------------------------------+ 4840|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`| 4841+------------------------------------------------------------------------------+ 4842 4843 4844-Wgnu-include-next 4845------------------ 4846**Diagnostic text:** 4847 4848+-----------------------------------------------------------------------------+ 4849|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`| 4850+-----------------------------------------------------------------------------+ 4851 4852 4853-Wgnu-label-as-value 4854-------------------- 4855**Diagnostic text:** 4856 4857+----------------------------------------------------------------------------+ 4858|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`| 4859+----------------------------------------------------------------------------+ 4860 4861+-------------------------------------------------------------------------+ 4862|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`| 4863+-------------------------------------------------------------------------+ 4864 4865 4866-Wgnu-redeclared-enum 4867--------------------- 4868**Diagnostic text:** 4869 4870+------------------------------------------------------------------------------------------------------------------------------------------+ 4871|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 4872+------------------------------------------------------------------------------------------------------------------------------------------+ 4873 4874 4875-Wgnu-statement-expression 4876-------------------------- 4877**Diagnostic text:** 4878 4879+--------------------------------------------------------------------------------+ 4880|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`| 4881+--------------------------------------------------------------------------------+ 4882 4883 4884-Wgnu-static-float-init 4885----------------------- 4886This diagnostic is enabled by default. 4887 4888**Diagnostic text:** 4889 4890+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4891|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 4892+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 4893 4894 4895-Wgnu-string-literal-operator-template 4896-------------------------------------- 4897This diagnostic is enabled by default. 4898 4899**Diagnostic text:** 4900 4901+--------------------------------------------------------------------------------------------+ 4902|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`| 4903+--------------------------------------------------------------------------------------------+ 4904 4905 4906-Wgnu-union-cast 4907---------------- 4908**Diagnostic text:** 4909 4910+----------------------------------------------------------------------------+ 4911|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`| 4912+----------------------------------------------------------------------------+ 4913 4914 4915-Wgnu-variable-sized-type-not-at-end 4916------------------------------------ 4917This diagnostic is enabled by default. 4918 4919**Diagnostic text:** 4920 4921+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4922|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`| 4923+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4924 4925 4926-Wgnu-zero-line-directive 4927------------------------- 4928**Diagnostic text:** 4929 4930+--------------------------------------------------------------------------------------------+ 4931|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`| 4932+--------------------------------------------------------------------------------------------+ 4933 4934 4935-Wgnu-zero-variadic-macro-arguments 4936----------------------------------- 4937**Diagnostic text:** 4938 4939+---------------------------------------------------------------------------------------------------------------+ 4940|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`| 4941+---------------------------------------------------------------------------------------------------------------+ 4942 4943+---------------------------------------------------------------------------------------------------+ 4944|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`| 4945+---------------------------------------------------------------------------------------------------+ 4946 4947 4948-Wheader-guard 4949-------------- 4950This diagnostic is enabled by default. 4951 4952**Diagnostic text:** 4953 4954+---------------------------------------------------------------------------------------------------------------------------------------+ 4955|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`| 4956+---------------------------------------------------------------------------------------------------------------------------------------+ 4957 4958 4959-Wheader-hygiene 4960---------------- 4961**Diagnostic text:** 4962 4963+--------------------------------------------------------------------------------------------+ 4964|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`| 4965+--------------------------------------------------------------------------------------------+ 4966 4967 4968-Widiomatic-parentheses 4969----------------------- 4970**Diagnostic text:** 4971 4972+-----------------------------------------------------------------------------------------------------------+ 4973|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 4974+-----------------------------------------------------------------------------------------------------------+ 4975 4976 4977-Wignored-attributes 4978-------------------- 4979This diagnostic is enabled by default. 4980 4981**Diagnostic text:** 4982 4983+--------------------------------------------------------------------------------------------------+ 4984|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`| 4985+--------------------------------------------------------------------------------------------------+ 4986 4987+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4988|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`| 4989| ||:diagtext:`alias`|| | 4990| |+-----------------+| | 4991| ||:diagtext:`ifunc`|| | 4992| |+-----------------+| | 4993+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4994 4995+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 4996|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+| 4997| ||:diagtext:`alias`|| ||:diagtext:`aliasee` || 4998| |+-----------------+| |+--------------------+| 4999| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`|| 5000| |+-----------------+| |+--------------------+| 5001+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 5002 5003+----------------------------------------------------------------------+------------------------+-------------------------------------+ 5004|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`| 5005| ||:diagtext:`non-inline`|| | 5006| |+----------------------+| | 5007| ||:diagtext:`anonymous` || | 5008| |+----------------------+| | 5009+----------------------------------------------------------------------+------------------------+-------------------------------------+ 5010 5011+-----------------------------------------------------------------------------------------------------------------------+ 5012|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`| 5013+-----------------------------------------------------------------------------------------------------------------------+ 5014 5015+---------------------------------------------------------------------------------------------------------+ 5016|:warning:`warning:` |nbsp| :diagtext:`'dllexport' attribute ignored on explicit instantiation definition`| 5017+---------------------------------------------------------------------------------------------------------+ 5018 5019+--------------------------------------------------------------------------------------------------------------------------------+ 5020|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`| 5021+--------------------------------------------------------------------------------------------------------------------------------+ 5022 5023+--------------------------------------------------------------------------------+ 5024|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`| 5025+--------------------------------------------------------------------------------+ 5026 5027+--------------------------------------------------------------------------------------------------------------------------+ 5028|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`| 5029+--------------------------------------------------------------------------------------------------------------------------+ 5030 5031+---------------------------------------------------------------------------------------------------+ 5032|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`| 5033+---------------------------------------------------------------------------------------------------+ 5034 5035+-------------------------------------------------------------------------------------------------------------------+ 5036|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`| 5037+-------------------------------------------------------------------------------------------------------------------+ 5038 5039+------------------------------------------------------------------------------------------------------------------------------------------------+ 5040|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`| 5041+------------------------------------------------------------------------------------------------------------------------------------------------+ 5042 5043+--------------------------------------------------------------------------------------------------------+ 5044|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`| 5045+--------------------------------------------------------------------------------------------------------+ 5046 5047+-----------------------------------------------------------------------------------------------------+ 5048|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`| 5049+-----------------------------------------------------------------------------------------------------+ 5050 5051+--------------------------------------------------------------------------------------------------+ 5052|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`| 5053+--------------------------------------------------------------------------------------------------+ 5054 5055+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5056|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`| 5057+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5058 5059+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 5060|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`| 5061| || || | 5062| |+----------------------------+| | 5063| || |nbsp| :diagtext:`constant`|| | 5064| |+----------------------------+| | 5065+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 5066 5067+------------------------------------------------------------------------------------+ 5068|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`| 5069+------------------------------------------------------------------------------------+ 5070 5071+------------------------------------------------------------------------------------------------------------------------+ 5072|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`| 5073+------------------------------------------------------------------------------------------------------------------------+ 5074 5075+--------------------------------------------------------------------------------------------------------------------------------------+ 5076|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`| 5077+--------------------------------------------------------------------------------------------------------------------------------------+ 5078 5079+------------------------------------------------------------------------------------+ 5080|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`| 5081+------------------------------------------------------------------------------------+ 5082 5083+-----------------------------------------------------------------------------------------------+-----------------------+ 5084|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+| 5085| ||:diagtext:`functions`|| 5086| |+---------------------+| 5087| ||:diagtext:`blocks` || 5088| |+---------------------+| 5089+-----------------------------------------------------------------------------------------------+-----------------------+ 5090 5091+------------------------------------------------------------------------------------------------------------------------+ 5092|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`| 5093+------------------------------------------------------------------------------------------------------------------------+ 5094 5095+---------------------------------------------------------------------------------+ 5096|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`| 5097+---------------------------------------------------------------------------------+ 5098 5099+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 5100|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`| 5101| ||:diagtext:`functions` || | 5102| |+------------------------------+| | 5103| ||:diagtext:`Objective-C method`|| | 5104| |+------------------------------+| | 5105+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 5106 5107+----------------------------------------------------------------------------------------------------+ 5108|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`| 5109+----------------------------------------------------------------------------------------------------+ 5110 5111+------------------------------------------------------------------------------------------------------------------------------+ 5112|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`| 5113+------------------------------------------------------------------------------------------------------------------------------+ 5114 5115+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 5116|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| 5117| ||:diagtext:`functions` || 5118| |+-------------------------------------------------+| 5119| ||:diagtext:`unions` || 5120| |+-------------------------------------------------+| 5121| ||:diagtext:`variables and functions` || 5122| |+-------------------------------------------------+| 5123| ||:diagtext:`functions and methods` || 5124| |+-------------------------------------------------+| 5125| ||:diagtext:`functions, methods and blocks` || 5126| |+-------------------------------------------------+| 5127| ||:diagtext:`functions, methods, and parameters` || 5128| |+-------------------------------------------------+| 5129| ||:diagtext:`variables` || 5130| |+-------------------------------------------------+| 5131| ||:diagtext:`variables and fields` || 5132| |+-------------------------------------------------+| 5133| ||:diagtext:`variables, data members and tag types`|| 5134| |+-------------------------------------------------+| 5135| ||:diagtext:`types and namespaces` || 5136| |+-------------------------------------------------+| 5137| ||:diagtext:`variables, functions and classes` || 5138| |+-------------------------------------------------+| 5139| ||:diagtext:`kernel functions` || 5140| |+-------------------------------------------------+| 5141| ||:diagtext:`non-K&R-style functions` || 5142| |+-------------------------------------------------+| 5143+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 5144 5145+----------------------------------------------------------------------------------------------------------------+ 5146|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`| 5147+----------------------------------------------------------------------------------------------------------------+ 5148 5149+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5150|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`| 5151+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5152 5153+----------------------------------------------------------------------------------------------------------+---------------------------------------+ 5154|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention is not supported` |nbsp| |+-------------------------------------+| 5155| ||:diagtext:`for this target` || 5156| |+-------------------------------------+| 5157| ||:diagtext:`on variadic function` || 5158| |+-------------------------------------+| 5159| ||:diagtext:`on constructor/destructor`|| 5160| |+-------------------------------------+| 5161| ||:diagtext:`on builtin function` || 5162| |+-------------------------------------+| 5163+----------------------------------------------------------------------------------------------------------+---------------------------------------+ 5164 5165+-------------------------------------------------------------------------------------------------------------------------------------------+ 5166|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`| 5167+-------------------------------------------------------------------------------------------------------------------------------------------+ 5168 5169+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5170|:warning:`warning:` |nbsp| :diagtext:`ignoring \_\_declspec(allocator) because the function return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a pointer or reference type`| 5171+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5172 5173+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5174|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`| 5175| ||:diagtext:`class` || | 5176| |+---------------------+| | 5177| ||:diagtext:`struct` || | 5178| |+---------------------+| | 5179| ||:diagtext:`interface`|| | 5180| |+---------------------+| | 5181| ||:diagtext:`union` || | 5182| |+---------------------+| | 5183| ||:diagtext:`enum` || | 5184| |+---------------------+| | 5185+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5186 5187+--------------------------------------------------------------------------------------------+ 5188|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`| 5189+--------------------------------------------------------------------------------------------+ 5190 5191+----------------------------------------------------------------------------------------------------------------------------------------------+ 5192|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`| 5193+----------------------------------------------------------------------------------------------------------------------------------------------+ 5194 5195+----------------------------------------------------------------------------------------------------------------------------------------+ 5196|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`| 5197+----------------------------------------------------------------------------------------------------------------------------------------+ 5198 5199+--------------------------------------------------------------------------------------------------------------+ 5200|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`| 5201+--------------------------------------------------------------------------------------------------------------+ 5202 5203+------------------------------------------------------------------------------------------------+ 5204|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`| 5205+------------------------------------------------------------------------------------------------+ 5206 5207+-------------------------------------------------------------------------------------------------------------------------+ 5208|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`| 5209+-------------------------------------------------------------------------------------------------------------------------+ 5210 5211+---------------------------------------------------------------------------+------------------------------------+ 5212|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+| 5213| ||:diagtext:`primary template` || 5214| |+----------------------------------+| 5215| ||:diagtext:`partial specialization`|| 5216| |+----------------------------------+| 5217+---------------------------------------------------------------------------+------------------------------------+ 5218 5219+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5220|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+| 5221| ||:diagtext:`of retainable type` || 5222| |+---------------------------------+| 5223| ||:diagtext:`with strong ownership`|| 5224| |+---------------------------------+| 5225+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5226 5227+--------------------------------------------------------------------------------------------------------------+ 5228|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`| 5229+--------------------------------------------------------------------------------------------------------------+ 5230 5231+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+ 5232|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| 5233| ||:diagtext:`MIPS` || ||:diagtext:`no parameters` || 5234| |+------------------+| |+--------------------------------+| 5235| ||:diagtext:`MSP430`|| ||:diagtext:`a 'void' return type`|| 5236| |+------------------+| |+--------------------------------+| 5237| ||:diagtext:`RISC-V`|| | | 5238| |+------------------+| | | 5239+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+ 5240 5241+--------------------------------------------------------------------------------------------+ 5242|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`| 5243+--------------------------------------------------------------------------------------------+ 5244 5245+------------------------------------------------------------------------------------------------------------------------------+ 5246|:warning:`warning:` |nbsp| :diagtext:`'mig\_server\_routine' attribute only applies to routines that return a kern\_return\_t`| 5247+------------------------------------------------------------------------------------------------------------------------------+ 5248 5249+---------------------------------------------------------------------------------------+ 5250|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`| 5251+---------------------------------------------------------------------------------------+ 5252 5253+-------------------------------------------------------------------------------------------------------------------+ 5254|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`| 5255+-------------------------------------------------------------------------------------------------------------------+ 5256 5257+---------------------------------------------------------------------------------------------+ 5258|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`| 5259+---------------------------------------------------------------------------------------------+ 5260 5261+--------------------------------------------------------------------------------------------------------------------+ 5262|:warning:`warning:` |nbsp| :diagtext:`'nothrow' attribute conflicts with exception specification; attribute ignored`| 5263+--------------------------------------------------------------------------------------------------------------------+ 5264 5265+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5266|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`| 5267| ||:diagtext:`Objective-C object` || | 5268| |+-------------------------------------------------+| | 5269| ||:diagtext:`pointer` || | 5270| |+-------------------------------------------------+| | 5271| ||:diagtext:`pointer-to-CF-pointer` || | 5272| |+-------------------------------------------------+| | 5273| ||:diagtext:`pointer/reference-to-OSObject-pointer`|| | 5274| |+-------------------------------------------------+| | 5275+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5276 5277+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5278|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+| 5279| ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` || 5280| |+----------------------+| |+------------------------------------+| 5281| ||:diagtext:`methods` || ||:diagtext:`a pointer` || 5282| |+----------------------+| |+------------------------------------+| 5283| ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`|| 5284| |+----------------------+| |+------------------------------------+| 5285+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5286 5287+--------------------------------------------------------------------------------------------------------------------------------------------+ 5288|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`| 5289+--------------------------------------------------------------------------------------------------------------------------------------------+ 5290 5291+----------------------------------------------------------------------------+ 5292|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`| 5293+----------------------------------------------------------------------------+ 5294 5295+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5296|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`| 5297| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| | 5298| |+---------------------+| |+---------------------+| | 5299| ||:diagtext:`size` || ||:diagtext:`size` || | 5300| |+---------------------+| |+---------------------+| | 5301+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5302 5303+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5304|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`| 5305| ||:diagtext:`floating point`|| | 5306| |+--------------------------+| | 5307| ||:diagtext:`vector` || | 5308| |+--------------------------+| | 5309+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5310 5311+--------------------------------------------------------------------------------------------------------------------------------+ 5312|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`| 5313+--------------------------------------------------------------------------------------------------------------------------------+ 5314 5315+-----------------------------------------------------------------------------------------------------------------------------------------+ 5316|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`| 5317+-----------------------------------------------------------------------------------------------------------------------------------------+ 5318 5319+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 5320|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`| 5321| ||:diagtext:`function` || | 5322| |+-----------------------------------------------+| | 5323| ||:diagtext:`pointer` || | 5324| |+-----------------------------------------------+| | 5325| ||:diagtext:`Objective-C object or block pointer`|| | 5326| |+-----------------------------------------------+| | 5327+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 5328 5329+-------------------------------------------------------------------------------------------------------------------------+ 5330|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`| 5331+-------------------------------------------------------------------------------------------------------------------------+ 5332 5333+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 5334|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`| 5335| ||:diagtext:`unsupported`||| || | 5336| |+-----------------------+|+--------------------------------+| | 5337| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| | 5338| |+-----------------------+|+--------------------------------+| | 5339+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 5340 5341+----------------------------------------------------------------------------------------------------------------------------------------------------+ 5342|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`| 5343+----------------------------------------------------------------------------------------------------------------------------------------------------+ 5344 5345 5346-Wignored-optimization-argument 5347------------------------------- 5348This diagnostic is enabled by default. 5349 5350**Diagnostic text:** 5351 5352+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5353|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 5354+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5355 5356+--------------------------------------------------------------------------------------------------------+ 5357|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`| 5358+--------------------------------------------------------------------------------------------------------+ 5359 5360 5361-Wignored-pragma-intrinsic 5362-------------------------- 5363This diagnostic is enabled by default. 5364 5365**Diagnostic text:** 5366 5367+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 5368|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+| 5369| || || 5370| |+----------------------------------------------------------------------------+| 5371| ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`|| 5372| |+----------------------------------------------------------------------------+| 5373+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 5374 5375 5376-Wignored-pragma-optimize 5377------------------------- 5378This diagnostic is enabled by default. 5379 5380**Diagnostic text:** 5381 5382+--------------------------------------------------------------------------+ 5383|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`| 5384+--------------------------------------------------------------------------+ 5385 5386 5387-Wignored-pragmas 5388----------------- 5389This diagnostic is enabled by default. 5390 5391Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_. 5392 5393**Diagnostic text:** 5394 5395+------------------------------------------------------------------------------+---------------------------+-----------------------+ 5396|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 5397| ||:diagtext:`align` || | 5398| |+-------------------------+| | 5399| ||:diagtext:`options align`|| | 5400| |+-------------------------+| | 5401+------------------------------------------------------------------------------+---------------------------+-----------------------+ 5402 5403+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 5404|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 5405| ||:diagtext:`align` || | 5406| |+-------------------------+| | 5407| ||:diagtext:`options align`|| | 5408| |+-------------------------+| | 5409+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 5410 5411+-----------------------------------------------------------------------------------------------------------+ 5412|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`| 5413+-----------------------------------------------------------------------------------------------------------+ 5414 5415+----------------------------------------------------------------------------------------------------+ 5416|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`| 5417+----------------------------------------------------------------------------------------------------+ 5418 5419+-------------------------------------------------------------------------------------------------------+ 5420|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`| 5421+-------------------------------------------------------------------------------------------------------+ 5422 5423+----------------------------------------------------------------------------------------------+ 5424|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`| 5425+----------------------------------------------------------------------------------------------+ 5426 5427+------------------------------------------------------------------------------------+ 5428|:warning:`warning:` |nbsp| :diagtext:`unknown module '`:placeholder:`A`:diagtext:`'`| 5429+------------------------------------------------------------------------------------+ 5430 5431+------------------------------------------------------------------------------------------------------------------------+ 5432|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5433+------------------------------------------------------------------------------------------------------------------------+ 5434 5435+--------------------------------------------------------------------------------------------------------------+ 5436|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5437+--------------------------------------------------------------------------------------------------------------+ 5438 5439+---------------------------------------------------------------------------------------------------------------------+ 5440|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5441+---------------------------------------------------------------------------------------------------------------------+ 5442 5443+----------------------------------------------------------------------------------------------------+ 5444|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5445+----------------------------------------------------------------------------------------------------+ 5446 5447+---------------------------------------------------------------------------------------------------------------------+ 5448|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5449+---------------------------------------------------------------------------------------------------------------------+ 5450 5451+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5452|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5453+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5454 5455+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5456|:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`| 5457+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5458 5459+-----------------------------------------------------------------------------------------------------------------+ 5460|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5461+-----------------------------------------------------------------------------------------------------------------+ 5462 5463+------------------------------------------------------------------------------------------------------------------------+ 5464|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5465+------------------------------------------------------------------------------------------------------------------------+ 5466 5467+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 5468|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`| 5469| ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| | 5470| |+-------------------------------------------------+| | 5471| ||:diagtext:`'disable'` || | 5472| |+-------------------------------------------------+| | 5473+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 5474 5475+-----------------------------------------------------------------------------------------------------------+ 5476|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 5477+-----------------------------------------------------------------------------------------------------------+ 5478 5479+-----------------------------------------------------------------------------------------------------------------+ 5480|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5481+-----------------------------------------------------------------------------------------------------------------+ 5482 5483+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5484|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5485+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5486 5487+------------------------------------------------------------------------------------------------------------------------------------------------+ 5488|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5489+------------------------------------------------------------------------------------------------------------------------------------------------+ 5490 5491+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5492|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5493+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5494 5495+--------------------------------------------------------------------------------------------------------------------------+ 5496|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 5497+--------------------------------------------------------------------------------------------------------------------------+ 5498 5499+---------------------------------------------------------------------------------------------------------------------+ 5500|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5501+---------------------------------------------------------------------------------------------------------------------+ 5502 5503+----------------------------------------------------------------------------------------------------------+ 5504|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`| 5505+----------------------------------------------------------------------------------------------------------+ 5506 5507+-------------------------------------------------------------------------------------------------------------------+ 5508|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`| 5509+-------------------------------------------------------------------------------------------------------------------+ 5510 5511+-----------------------------------------------------------------------------------------------------------------+ 5512|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5513+-----------------------------------------------------------------------------------------------------------------+ 5514 5515+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5516|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+| 5517| || || 5518| |+------------------------------------------------+| 5519| ||+----------------------------------------------+|| 5520| |||:diagtext:`; expected` |nbsp| :placeholder:`D`||| 5521| ||+----------------------------------------------+|| 5522| |+------------------------------------------------+| 5523+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5524 5525+------------------------------------------------------------------------------------------------------------------------------------------------+ 5526|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5527+------------------------------------------------------------------------------------------------------------------------------------------------+ 5528 5529+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5530|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+| 5531| || || 5532| |+------------------------------------------------+| 5533| ||+----------------------------------------------+|| 5534| |||:diagtext:`; expected` |nbsp| :placeholder:`C`||| 5535| ||+----------------------------------------------+|| 5536| |+------------------------------------------------+| 5537+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 5538 5539+----------------------------------------------------------------------------------------------+ 5540|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`| 5541+----------------------------------------------------------------------------------------------+ 5542 5543+--------------------------------------------------------------------------------------------------+ 5544|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`| 5545+--------------------------------------------------------------------------------------------------+ 5546 5547+---------------------------------------------------------------------------------------------+ 5548|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`| 5549+---------------------------------------------------------------------------------------------+ 5550 5551+--------------------------------------------------------------------------------------------------------+ 5552|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`| 5553+--------------------------------------------------------------------------------------------------------+ 5554 5555+-------------------------------------------------------------------------------------------------+ 5556|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`| 5557+-------------------------------------------------------------------------------------------------+ 5558 5559+----------------------------------------------------------------------------------------------------------------------------+ 5560|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`| 5561+----------------------------------------------------------------------------------------------------------------------------+ 5562 5563+------------------------------------------------------------------------------------------------------------------------------+ 5564|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`| 5565+------------------------------------------------------------------------------------------------------------------------------+ 5566 5567+---------------------------------------------------------------------------------------------------------------------+ 5568|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5569+---------------------------------------------------------------------------------------------------------------------+ 5570 5571+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5572|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 5573+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5574 5575+-------------------------------------------------------------------------------------------------------------------------+ 5576|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 5577+-------------------------------------------------------------------------------------------------------------------------+ 5578 5579+-----------------------------------------------------------------------------------------------+ 5580|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`| 5581+-----------------------------------------------------------------------------------------------+ 5582 5583+------------------------------------------------------------------------------------------+ 5584|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`| 5585+------------------------------------------------------------------------------------------+ 5586 5587+----------------------------------------------------------------------------------------------------------------------------------------------+ 5588|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`| 5589+----------------------------------------------------------------------------------------------------------------------------------------------+ 5590 5591 5592-Wignored-qualifiers 5593-------------------- 5594Some of the diagnostics controlled by this flag are enabled by default. 5595 5596**Diagnostic text:** 5597 5598+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 5599|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`| 5600| ||:diagtext:`unused` || | 5601| |+----------------------------------+| | 5602| ||:diagtext:`\_\_unsafe\_unretained`|| | 5603| |+----------------------------------+| | 5604| ||:diagtext:`\_\_strong` || | 5605| |+----------------------------------+| | 5606| ||:diagtext:`\_\_weak` || | 5607| |+----------------------------------+| | 5608| ||:diagtext:`\_\_autoreleasing` || | 5609| |+----------------------------------+| | 5610+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 5611 5612+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5613|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5614+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5615 5616+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 5617|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`| 5618| || || ||:diagtext:`has` || | 5619| |+-------------+| |+----------------+| | 5620| ||:diagtext:`s`|| ||:diagtext:`have`|| | 5621| |+-------------+| |+----------------+| | 5622+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 5623 5624+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5625|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5626+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5627 5628+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5629|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 5630+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5631 5632 5633-Wimplicit 5634---------- 5635Some of the diagnostics controlled by this flag are enabled by default. 5636 5637Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_. 5638 5639 5640-Wimplicit-atomic-properties 5641---------------------------- 5642**Diagnostic text:** 5643 5644+-----------------------------------------------------------------------------------------------------+ 5645|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`| 5646+-----------------------------------------------------------------------------------------------------+ 5647 5648+----------------------------------------------------------------------------+ 5649|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`| 5650+----------------------------------------------------------------------------+ 5651 5652 5653-Wimplicit-conversion-floating-point-to-bool 5654-------------------------------------------- 5655This diagnostic is enabled by default. 5656 5657**Diagnostic text:** 5658 5659+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5660|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5661+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5662 5663 5664-Wimplicit-exception-spec-mismatch 5665---------------------------------- 5666This diagnostic is enabled by default. 5667 5668**Diagnostic text:** 5669 5670+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 5671|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`| 5672| ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| | 5673| |+--------------------+| |+--------------------+| | 5674| ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| | 5675| |+--------------------+| |+--------------------+| | 5676+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 5677 5678 5679-Wimplicit-fallthrough 5680---------------------- 5681Also controls `-Wimplicit-fallthrough-per-function`_. 5682 5683**Diagnostic text:** 5684 5685+---------------------------------------------------------------------------------+ 5686|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`| 5687+---------------------------------------------------------------------------------+ 5688 5689+-------------------------------------------------------------------------------------+ 5690|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`| 5691+-------------------------------------------------------------------------------------+ 5692 5693 5694-Wimplicit-fallthrough-per-function 5695----------------------------------- 5696**Diagnostic text:** 5697 5698+------------------------------------------------------------------------------------------------------------------+ 5699|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`| 5700+------------------------------------------------------------------------------------------------------------------+ 5701 5702 5703-Wimplicit-fixed-point-conversion 5704--------------------------------- 5705This diagnostic is enabled by default. 5706 5707**Diagnostic text:** 5708 5709+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5710|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot fit within the range of values for` |nbsp| :placeholder:`B`| 5711+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5712 5713 5714-Wimplicit-float-conversion 5715--------------------------- 5716**Diagnostic text:** 5717 5718+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5719|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5720+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5721 5722+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5723|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5724+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5725 5726 5727-Wimplicit-function-declaration 5728------------------------------- 5729Some of the diagnostics controlled by this flag are enabled by default. 5730 5731**Diagnostic text:** 5732 5733+------------------------------------------------------------------------------------------------------------------------------------+ 5734|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`| 5735+------------------------------------------------------------------------------------------------------------------------------------+ 5736 5737+---------------------------------------------------------------------------------------------------------------------------------------------+ 5738|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`| 5739+---------------------------------------------------------------------------------------------------------------------------------------------+ 5740 5741+---------------------------------------------------------------------------------+ 5742|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`| 5743+---------------------------------------------------------------------------------+ 5744 5745+-----------------------------------------------------------------------------------------------+ 5746|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`| 5747+-----------------------------------------------------------------------------------------------+ 5748 5749 5750-Wimplicit-int 5751-------------- 5752This diagnostic is enabled by default. 5753 5754**Diagnostic text:** 5755 5756+--------------------------------------------------------------------------------+ 5757|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`| 5758+--------------------------------------------------------------------------------+ 5759 5760 5761-Wimplicit-int-conversion 5762------------------------- 5763**Diagnostic text:** 5764 5765+---------------------------------------------------------------------------------------------+ 5766|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`| 5767+---------------------------------------------------------------------------------------------+ 5768 5769+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5770|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 5771+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 5772 5773 5774-Wimplicit-retain-self 5775---------------------- 5776**Diagnostic text:** 5777 5778+---------------------------------------------------------------------------------------------------------------------------------------+ 5779|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`| 5780+---------------------------------------------------------------------------------------------------------------------------------------+ 5781 5782 5783-Wimplicitly-unsigned-literal 5784----------------------------- 5785This diagnostic is enabled by default. 5786 5787**Diagnostic text:** 5788 5789+----------------------------------------------------------------------------------------------------------------------------------------+ 5790|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`| 5791+----------------------------------------------------------------------------------------------------------------------------------------+ 5792 5793 5794-Wimport 5795-------- 5796This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5797 5798-Wimport-preprocessor-directive-pedantic 5799---------------------------------------- 5800**Diagnostic text:** 5801 5802+----------------------------------------------------------------------+ 5803|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`| 5804+----------------------------------------------------------------------+ 5805 5806 5807-Winaccessible-base 5808------------------- 5809This diagnostic is enabled by default. 5810 5811**Diagnostic text:** 5812 5813+-----------------------------------------------------------------------------------------------------------------------------------------------+ 5814|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`| 5815+-----------------------------------------------------------------------------------------------------------------------------------------------+ 5816 5817 5818-Winclude-next-absolute-path 5819---------------------------- 5820This diagnostic is enabled by default. 5821 5822**Diagnostic text:** 5823 5824+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5825|:warning:`warning:` |nbsp| :diagtext:`#include\_next in file found relative to primary source file or found by absolute path; will search from start of include path`| 5826+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5827 5828 5829-Winclude-next-outside-header 5830----------------------------- 5831This diagnostic is enabled by default. 5832 5833**Diagnostic text:** 5834 5835+--------------------------------------------------------------------------------------------------------------------+ 5836|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file; will search from start of include path`| 5837+--------------------------------------------------------------------------------------------------------------------+ 5838 5839 5840-Wincompatible-exception-spec 5841----------------------------- 5842This diagnostic is enabled by default. 5843 5844**Diagnostic text:** 5845 5846+--------------------------------------------------------------------------+----------------------+--------------------------------+ 5847|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`| 5848| ||:diagtext:`return` || | 5849| |+--------------------+| | 5850| ||:diagtext:`argument`|| | 5851| |+--------------------+| | 5852+--------------------------------------------------------------------------+----------------------+--------------------------------+ 5853 5854+-----------------------------------------------------------------------------------------------+ 5855|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`| 5856+-----------------------------------------------------------------------------------------------+ 5857 5858 5859-Wincompatible-function-pointer-types 5860------------------------------------- 5861This diagnostic is enabled by default. 5862 5863**Diagnostic text:** 5864 5865+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5866|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 5867| ||:diagtext:`assigning to different types` ||| || 5868| |+--------------------------------------------------------------+|+-------------------------------------+| 5869| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 5870| |+--------------------------------------------------------------+|+-------------------------------------+| 5871| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 5872| |+--------------------------------------------------------------+|+-------------------------------------+| 5873| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 5874| |+--------------------------------------------------------------+|+-------------------------------------+| 5875| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 5876| |+--------------------------------------------------------------+|+-------------------------------------+| 5877| ||:diagtext:`sending to parameter of different type` || | 5878| |+--------------------------------------------------------------+| | 5879| ||:diagtext:`casting between types` || | 5880| |+--------------------------------------------------------------+| | 5881+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5882 5883 5884-Wincompatible-library-redeclaration 5885------------------------------------ 5886This diagnostic is enabled by default. 5887 5888**Diagnostic text:** 5889 5890+-------------------------------------------------------------------------------------------------------------+ 5891|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`| 5892+-------------------------------------------------------------------------------------------------------------+ 5893 5894 5895-Wincompatible-ms-struct 5896------------------------ 5897This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error. 5898 5899**Diagnostic text:** 5900 5901+---------------------------------------------------------------------------------------------------------------------------------------------+ 5902|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`| 5903+---------------------------------------------------------------------------------------------------------------------------------------------+ 5904 5905+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5906|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`| 5907+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5908 5909 5910-Wincompatible-pointer-types 5911---------------------------- 5912This diagnostic is enabled by default. 5913 5914Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_. 5915 5916**Diagnostic text:** 5917 5918+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5919|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 5920| ||:diagtext:`assigning to different types` ||| || 5921| |+--------------------------------------------------------------+|+-------------------------------------+| 5922| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 5923| |+--------------------------------------------------------------+|+-------------------------------------+| 5924| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 5925| |+--------------------------------------------------------------+|+-------------------------------------+| 5926| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 5927| |+--------------------------------------------------------------+|+-------------------------------------+| 5928| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 5929| |+--------------------------------------------------------------+|+-------------------------------------+| 5930| ||:diagtext:`sending to parameter of different type` || | 5931| |+--------------------------------------------------------------+| | 5932| ||:diagtext:`casting between types` || | 5933| |+--------------------------------------------------------------+| | 5934+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 5935 5936 5937-Wincompatible-pointer-types-discards-qualifiers 5938------------------------------------------------ 5939This diagnostic is enabled by default. 5940 5941**Diagnostic text:** 5942 5943+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 5944|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`| 5945| ||:diagtext:`assigning to different types` || | 5946| |+--------------------------------------------------------------+| | 5947| ||:diagtext:`passing to parameter of different type` || | 5948| |+--------------------------------------------------------------+| | 5949| ||:diagtext:`returning from function with different return type`|| | 5950| |+--------------------------------------------------------------+| | 5951| ||:diagtext:`converting between types` || | 5952| |+--------------------------------------------------------------+| | 5953| ||:diagtext:`initializing with expression of different type` || | 5954| |+--------------------------------------------------------------+| | 5955| ||:diagtext:`sending to parameter of different type` || | 5956| |+--------------------------------------------------------------+| | 5957| ||:diagtext:`casting between types` || | 5958| |+--------------------------------------------------------------+| | 5959+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 5960 5961+---------------------------+----------------------------------------------------------------+---------------------------------------+ 5962|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`| 5963| ||:diagtext:`assigning to different types` || | 5964| |+--------------------------------------------------------------+| | 5965| ||:diagtext:`passing to parameter of different type` || | 5966| |+--------------------------------------------------------------+| | 5967| ||:diagtext:`returning from function with different return type`|| | 5968| |+--------------------------------------------------------------+| | 5969| ||:diagtext:`converting between types` || | 5970| |+--------------------------------------------------------------+| | 5971| ||:diagtext:`initializing with expression of different type` || | 5972| |+--------------------------------------------------------------+| | 5973| ||:diagtext:`sending to parameter of different type` || | 5974| |+--------------------------------------------------------------+| | 5975| ||:diagtext:`casting between types` || | 5976| |+--------------------------------------------------------------+| | 5977+---------------------------+----------------------------------------------------------------+---------------------------------------+ 5978 5979 5980-Wincompatible-property-type 5981---------------------------- 5982This diagnostic is enabled by default. 5983 5984**Diagnostic text:** 5985 5986+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5987|:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`| 5988+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5989 5990 5991-Wincompatible-sysroot 5992---------------------- 5993This diagnostic is enabled by default. 5994 5995**Diagnostic text:** 5996 5997+------------------------------------------------------------------------------------------------------------------------------------+ 5998|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`| 5999+------------------------------------------------------------------------------------------------------------------------------------+ 6000 6001 6002-Wincomplete-framework-module-declaration 6003----------------------------------------- 6004This diagnostic is enabled by default. 6005 6006**Diagnostic text:** 6007 6008+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6009|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`| 6010+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6011 6012 6013-Wincomplete-implementation 6014--------------------------- 6015This diagnostic is enabled by default. 6016 6017**Diagnostic text:** 6018 6019+-----------------------------------------------------------------------------------------------------------------+ 6020|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 6021+-----------------------------------------------------------------------------------------------------------------+ 6022 6023 6024-Wincomplete-module 6025------------------- 6026Some of the diagnostics controlled by this flag are enabled by default. 6027 6028Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_. 6029 6030 6031-Wincomplete-setjmp-declaration 6032------------------------------- 6033This diagnostic is enabled by default. 6034 6035**Diagnostic text:** 6036 6037+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6038|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`A`:diagtext:`' requires the declaration of the 'jmp\_buf' type, commonly provided in the header <setjmp.h>.`| 6039+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6040 6041 6042-Wincomplete-umbrella 6043--------------------- 6044This diagnostic is enabled by default. 6045 6046**Diagnostic text:** 6047 6048+---------------------------------------------------------------------------------------+ 6049|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`| 6050+---------------------------------------------------------------------------------------+ 6051 6052+--------------------------------------------------------------------------------------------------+ 6053|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`| 6054+--------------------------------------------------------------------------------------------------+ 6055 6056+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 6057|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`| 6058+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 6059 6060 6061-Winconsistent-dllimport 6062------------------------ 6063This diagnostic is enabled by default. 6064 6065**Diagnostic text:** 6066 6067+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6068|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`| 6069+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6070 6071+------------------------------------------------------------------------------------------------------------------------------------+ 6072|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`| 6073+------------------------------------------------------------------------------------------------------------------------------------+ 6074 6075 6076-Winconsistent-missing-destructor-override 6077------------------------------------------ 6078**Diagnostic text:** 6079 6080+------------------------------------------------------------------------------------------------------------------+ 6081|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`| 6082+------------------------------------------------------------------------------------------------------------------+ 6083 6084 6085-Winconsistent-missing-override 6086------------------------------- 6087This diagnostic is enabled by default. 6088 6089**Diagnostic text:** 6090 6091+-----------------------------------------------------------------------------------------------------------------------+ 6092|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`| 6093+-----------------------------------------------------------------------------------------------------------------------+ 6094 6095 6096-Wincrement-bool 6097---------------- 6098This diagnostic is enabled by default. 6099 6100Also controls `-Wdeprecated-increment-bool`_. 6101 6102**Diagnostic text:** 6103 6104+------------------------------------------------------------------------------------------------+ 6105|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`| 6106+------------------------------------------------------------------------------------------------+ 6107 6108 6109-Winfinite-recursion 6110-------------------- 6111**Diagnostic text:** 6112 6113+---------------------------------------------------------------------------------------+ 6114|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`| 6115+---------------------------------------------------------------------------------------+ 6116 6117 6118-Winit-self 6119----------- 6120This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6121 6122-Winitializer-overrides 6123----------------------- 6124This diagnostic is enabled by default. 6125 6126**Diagnostic text:** 6127 6128+---------------------------------------------------------------------------------------------------+ 6129|:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`| 6130+---------------------------------------------------------------------------------------------------+ 6131 6132+---------------------------------------------------------------------------------------------------------------------------------------+ 6133|:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`| 6134+---------------------------------------------------------------------------------------------------------------------------------------+ 6135 6136 6137-Winjected-class-name 6138--------------------- 6139This diagnostic is enabled by default. 6140 6141**Diagnostic text:** 6142 6143+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 6144|:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`| 6145| ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| | 6146| |+-------------------------+| |+----------------------+| | 6147| ||:diagtext:`type` || ||:diagtext:`'template'`|| | 6148| |+-------------------------+| |+----------------------+| | 6149+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 6150 6151 6152-Winline 6153-------- 6154This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6155 6156-Winline-asm 6157------------ 6158This diagnostic is enabled by default. 6159 6160**Diagnostic text:** 6161 6162The text of this diagnostic is not controlled by Clang. 6163 6164 6165-Winline-new-delete 6166------------------- 6167This diagnostic is enabled by default. 6168 6169**Diagnostic text:** 6170 6171+----------------------------------------------------------------------------------------------------------------------------------+ 6172|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`| 6173+----------------------------------------------------------------------------------------------------------------------------------+ 6174 6175 6176-Winstantiation-after-specialization 6177------------------------------------ 6178This diagnostic is enabled by default. 6179 6180**Diagnostic text:** 6181 6182+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6183|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`| 6184+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6185 6186 6187-Wint-conversion 6188---------------- 6189This diagnostic is enabled by default. 6190 6191**Diagnostic text:** 6192 6193+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6194|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6195| ||:diagtext:`assigning to different types` ||| || 6196| |+--------------------------------------------------------------+|+-------------------------------------+| 6197| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6198| |+--------------------------------------------------------------+|+-------------------------------------+| 6199| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6200| |+--------------------------------------------------------------+|+-------------------------------------+| 6201| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6202| |+--------------------------------------------------------------+|+-------------------------------------+| 6203| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6204| |+--------------------------------------------------------------+|+-------------------------------------+| 6205| ||:diagtext:`sending to parameter of different type` || | 6206| |+--------------------------------------------------------------+| | 6207| ||:diagtext:`casting between types` || | 6208| |+--------------------------------------------------------------+| | 6209+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6210 6211+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6212|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6213| ||:diagtext:`assigning to different types` ||| || 6214| |+--------------------------------------------------------------+|+-------------------------------------+| 6215| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6216| |+--------------------------------------------------------------+|+-------------------------------------+| 6217| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6218| |+--------------------------------------------------------------+|+-------------------------------------+| 6219| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6220| |+--------------------------------------------------------------+|+-------------------------------------+| 6221| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6222| |+--------------------------------------------------------------+|+-------------------------------------+| 6223| ||:diagtext:`sending to parameter of different type` || | 6224| |+--------------------------------------------------------------+| | 6225| ||:diagtext:`casting between types` || | 6226| |+--------------------------------------------------------------+| | 6227+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6228 6229 6230-Wint-conversions 6231----------------- 6232Synonym for `-Wint-conversion`_. 6233 6234 6235-Wint-to-pointer-cast 6236--------------------- 6237This diagnostic is enabled by default. 6238 6239Also controls `-Wint-to-void-pointer-cast`_. 6240 6241**Diagnostic text:** 6242 6243+-------------------------------------------------------------------------------------------------------------------------------------------+ 6244|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6245+-------------------------------------------------------------------------------------------------------------------------------------------+ 6246 6247 6248-Wint-to-void-pointer-cast 6249-------------------------- 6250This diagnostic is enabled by default. 6251 6252**Diagnostic text:** 6253 6254+-------------------------------------------------------------------------------------------------------------------------------------------+ 6255|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6256+-------------------------------------------------------------------------------------------------------------------------------------------+ 6257 6258 6259-Winteger-overflow 6260------------------ 6261This diagnostic is enabled by default. 6262 6263**Diagnostic text:** 6264 6265+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 6266|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`| 6267+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 6268 6269 6270-Winvalid-command-line-argument 6271------------------------------- 6272This diagnostic is enabled by default. 6273 6274Also controls `-Wignored-optimization-argument`_. 6275 6276**Diagnostic text:** 6277 6278+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6279|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`| 6280+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6281 6282+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6283|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`| 6284+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6285 6286+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6287|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`| 6288+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6289 6290+-----------------------------------------------------------------------------------------------------------------------------------------+ 6291|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`| 6292+-----------------------------------------------------------------------------------------------------------------------------------------+ 6293 6294+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6295|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`| 6296+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6297 6298 6299-Winvalid-constexpr 6300------------------- 6301This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error. 6302 6303**Diagnostic text:** 6304 6305+----------------------------------------------------+-------------------------+--------------------------------------------------------+ 6306|:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`| 6307| ||:diagtext:`function` || | 6308| |+-----------------------+| | 6309| ||:diagtext:`constructor`|| | 6310| |+-----------------------+| | 6311+----------------------------------------------------+-------------------------+--------------------------------------------------------+ 6312 6313 6314-Winvalid-iboutlet 6315------------------ 6316This diagnostic is enabled by default. 6317 6318**Diagnostic text:** 6319 6320+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6321|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`| 6322| ||:diagtext:`instance variable`|| | 6323| |+-----------------------------+| | 6324| ||:diagtext:`property` || | 6325| |+-----------------------------+| | 6326+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6327 6328+---------------------------------------------------------------------------------------------------------+ 6329|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`| 6330+---------------------------------------------------------------------------------------------------------+ 6331 6332 6333-Winvalid-initializer-from-system-header 6334---------------------------------------- 6335This diagnostic is enabled by default. 6336 6337**Diagnostic text:** 6338 6339+--------------------------------------------------------------------------------------------------------------+ 6340|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`| 6341+--------------------------------------------------------------------------------------------------------------+ 6342 6343 6344-Winvalid-ios-deployment-target 6345------------------------------- 6346This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error. 6347 6348**Diagnostic text:** 6349 6350+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6351|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`| 6352+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6353 6354 6355-Winvalid-noreturn 6356------------------ 6357This diagnostic is enabled by default. 6358 6359**Diagnostic text:** 6360 6361+-------------------------------------------------------------------------------------+ 6362|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`| 6363+-------------------------------------------------------------------------------------+ 6364 6365+--------------------------------------------------------------------------------------------------------------------------------+ 6366|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`| 6367+--------------------------------------------------------------------------------------------------------------------------------+ 6368 6369 6370-Winvalid-offsetof 6371------------------ 6372This diagnostic is enabled by default. 6373 6374**Diagnostic text:** 6375 6376+----------------------------------------------------------------------------------------+ 6377|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`| 6378+----------------------------------------------------------------------------------------+ 6379 6380+----------------------------------------------------------------------------------------------------+ 6381|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`| 6382+----------------------------------------------------------------------------------------------------+ 6383 6384 6385-Winvalid-or-nonexistent-directory 6386---------------------------------- 6387Some of the diagnostics controlled by this flag are enabled by default. 6388 6389**Diagnostic text:** 6390 6391+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6392|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`| 6393+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6394 6395+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6396|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`| 6397+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6398 6399 6400-Winvalid-partial-specialization 6401-------------------------------- 6402This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error. 6403 6404**Diagnostic text:** 6405 6406+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 6407|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`| 6408| ||:diagtext:`class` || | 6409| |+--------------------+| | 6410| ||:diagtext:`variable`|| | 6411| |+--------------------+| | 6412+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 6413 6414 6415-Winvalid-pch 6416------------- 6417This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6418 6419-Winvalid-pp-token 6420------------------ 6421This diagnostic is enabled by default. 6422 6423**Diagnostic text:** 6424 6425+---------------------------------------------------------------+ 6426|:warning:`warning:` |nbsp| :diagtext:`empty character constant`| 6427+---------------------------------------------------------------+ 6428 6429+------------------------------------------------------------------+-----------------+-----------------------------+ 6430|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`| 6431| ||:diagtext:`'` || | 6432| |+---------------+| | 6433| ||:diagtext:`'"'`|| | 6434| |+---------------+| | 6435+------------------------------------------------------------------+-----------------+-----------------------------+ 6436 6437 6438-Winvalid-source-encoding 6439------------------------- 6440This diagnostic is enabled by default. 6441 6442**Diagnostic text:** 6443 6444+--------------------------------------------------------------------------------------+ 6445|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`| 6446+--------------------------------------------------------------------------------------+ 6447 6448+-----------------------------------------------------------------------------------+ 6449|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`| 6450+-----------------------------------------------------------------------------------+ 6451 6452 6453-Winvalid-token-paste 6454--------------------- 6455This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error. 6456 6457**Diagnostic text:** 6458 6459+----------------------------------------------------------------------------------------------------------------+ 6460|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`| 6461+----------------------------------------------------------------------------------------------------------------+ 6462 6463 6464-Wjump-seh-finally 6465------------------ 6466This diagnostic is enabled by default. 6467 6468**Diagnostic text:** 6469 6470+-------------------------------------------------------------------------------------------+ 6471|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`| 6472+-------------------------------------------------------------------------------------------+ 6473 6474 6475-Wkeyword-compat 6476---------------- 6477This diagnostic is enabled by default. 6478 6479**Diagnostic text:** 6480 6481+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 6482|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+| 6483| ||:diagtext:`here` || 6484| |+-----------------------------------------------------+| 6485| ||:diagtext:`for the remainder of the translation unit`|| 6486| |+-----------------------------------------------------+| 6487+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 6488 6489 6490-Wkeyword-macro 6491--------------- 6492**Diagnostic text:** 6493 6494+----------------------------------------------------------------------------+ 6495|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`| 6496+----------------------------------------------------------------------------+ 6497 6498 6499-Wknr-promoted-parameter 6500------------------------ 6501This diagnostic is enabled by default. 6502 6503**Diagnostic text:** 6504 6505+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6506|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`| 6507+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6508 6509 6510-Wlanguage-extension-token 6511-------------------------- 6512**Diagnostic text:** 6513 6514+-----------------------------------------------------+ 6515|:warning:`warning:` |nbsp| :diagtext:`extension used`| 6516+-----------------------------------------------------+ 6517 6518 6519-Wlarge-by-value-copy 6520--------------------- 6521This diagnostic is enabled by default. 6522 6523**Diagnostic text:** 6524 6525+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6526|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`| 6527+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6528 6529+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6530|:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`| 6531+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6532 6533 6534-Wliblto 6535-------- 6536This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6537 6538-Wliteral-conversion 6539-------------------- 6540This diagnostic is enabled by default. 6541 6542**Diagnostic text:** 6543 6544+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6545|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 6546+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6547 6548+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6549|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 6550+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6551 6552 6553-Wliteral-range 6554--------------- 6555This diagnostic is enabled by default. 6556 6557**Diagnostic text:** 6558 6559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6560|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`| 6561+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6562 6563+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6564|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`| 6565+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6566 6567 6568-Wlocal-type-template-args 6569-------------------------- 6570Some of the diagnostics controlled by this flag are enabled by default. 6571 6572Also controls `-Wc++98-compat-local-type-template-args`_. 6573 6574**Diagnostic text:** 6575 6576+------------------------------------------------------------------------------------------------+ 6577|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`| 6578+------------------------------------------------------------------------------------------------+ 6579 6580 6581-Wlogical-not-parentheses 6582------------------------- 6583This diagnostic is enabled by default. 6584 6585**Diagnostic text:** 6586 6587+--------------------------------------------------------------------------------------------------------+------------------------------+ 6588|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+| 6589| ||:diagtext:`comparison` || 6590| |+----------------------------+| 6591| ||:diagtext:`bitwise operator`|| 6592| |+----------------------------+| 6593+--------------------------------------------------------------------------------------------------------+------------------------------+ 6594 6595 6596-Wlogical-op-parentheses 6597------------------------ 6598This diagnostic is enabled by default. 6599 6600**Diagnostic text:** 6601 6602+---------------------------------------------------------+ 6603|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`| 6604+---------------------------------------------------------+ 6605 6606 6607-Wlong-long 6608----------- 6609Also controls `-Wc++11-long-long`_. 6610 6611**Diagnostic text:** 6612 6613+-----------------------------------------------------------------------------------------------+ 6614|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`| 6615+-----------------------------------------------------------------------------------------------+ 6616 6617 6618-Wloop-analysis 6619--------------- 6620Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_. 6621 6622 6623-Wmacro-redefined 6624----------------- 6625This diagnostic is enabled by default. 6626 6627**Diagnostic text:** 6628 6629+------------------------------------------------------------------------------+ 6630|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`| 6631+------------------------------------------------------------------------------+ 6632 6633 6634-Wmain 6635------ 6636Some of the diagnostics controlled by this flag are enabled by default. 6637 6638**Diagnostic text:** 6639 6640+--------------------------------------------------------------------------------------------+ 6641|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 6642+--------------------------------------------------------------------------------------------+ 6643 6644+--------------------------------------------------------------------------------------+ 6645|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`| 6646+--------------------------------------------------------------------------------------+ 6647 6648+------------------------------------------------------------------------------------+ 6649|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`| 6650+------------------------------------------------------------------------------------+ 6651 6652+-------------------------------------------------------------------------------+ 6653|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`| 6654+-------------------------------------------------------------------------------+ 6655 6656+---------------------------------------------------------------------------------------------------------+ 6657|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`| 6658+---------------------------------------------------------------------------------------------------------+ 6659 6660+------------------------------------------------------------------------+ 6661|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`| 6662+------------------------------------------------------------------------+ 6663 6664+---------------------------------------------------------------------------+ 6665|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`| 6666+---------------------------------------------------------------------------+ 6667 6668 6669-Wmain-return-type 6670------------------ 6671This diagnostic is enabled by default. 6672 6673**Diagnostic text:** 6674 6675+-------------------------------------------------------------------------+ 6676|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`| 6677+-------------------------------------------------------------------------+ 6678 6679 6680-Wmalformed-warning-check 6681------------------------- 6682This diagnostic is enabled by default. 6683 6684**Diagnostic text:** 6685 6686+---------------------------------------------------------------------------------------------+ 6687|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`| 6688+---------------------------------------------------------------------------------------------+ 6689 6690 6691-Wmany-braces-around-scalar-init 6692-------------------------------- 6693This diagnostic is enabled by default. 6694 6695**Diagnostic text:** 6696 6697+--------------------------------------------------------------------------------+ 6698|:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`| 6699+--------------------------------------------------------------------------------+ 6700 6701 6702-Wmax-unsigned-zero 6703------------------- 6704This diagnostic is enabled by default. 6705 6706**Diagnostic text:** 6707 6708+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 6709|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`| 6710| ||:diagtext:`a value and unsigned zero`|| | 6711| |+-------------------------------------+| | 6712| ||:diagtext:`unsigned zero and a value`|| | 6713| |+-------------------------------------+| | 6714+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 6715 6716 6717-Wmemset-transposed-args 6718------------------------ 6719This diagnostic is enabled by default. 6720 6721**Diagnostic text:** 6722 6723+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 6724|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`| 6725| ||:diagtext:`'size' argument to memset is '0'` || | 6726| |+---------------------------------------------------+| | 6727| ||:diagtext:`setting buffer to a 'sizeof' expression`|| | 6728| |+---------------------------------------------------+| | 6729+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 6730 6731 6732-Wmemsize-comparison 6733-------------------- 6734This diagnostic is enabled by default. 6735 6736**Diagnostic text:** 6737 6738+-----------------------------------------------------------------------------------------------------------------------+ 6739|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`| 6740+-----------------------------------------------------------------------------------------------------------------------+ 6741 6742 6743-Wmethod-signatures 6744------------------- 6745**Diagnostic text:** 6746 6747+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6748|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 6749+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6750 6751+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6752|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 6753+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6754 6755 6756-Wmicrosoft 6757----------- 6758Some of the diagnostics controlled by this flag are enabled by default. 6759 6760Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-drectve-section`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_. 6761 6762 6763-Wmicrosoft-anon-tag 6764-------------------- 6765Some of the diagnostics controlled by this flag are enabled by default. 6766 6767**Diagnostic text:** 6768 6769+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 6770|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 6771| ||:diagtext:`struct`|| | 6772| |+------------------+| | 6773| ||:diagtext:`union` || | 6774| |+------------------+| | 6775+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 6776 6777+--------------------------------------------------------+---------------------+---------------------------------------------+ 6778|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 6779| ||:diagtext:`structs`|| | 6780| |+-------------------+| | 6781| ||:diagtext:`unions` || | 6782| |+-------------------+| | 6783+--------------------------------------------------------+---------------------+---------------------------------------------+ 6784 6785 6786-Wmicrosoft-cast 6787---------------- 6788This diagnostic is enabled by default. 6789 6790**Diagnostic text:** 6791 6792+------------------------------------------------------------------------------------------------------------------------------+ 6793|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`| 6794+------------------------------------------------------------------------------------------------------------------------------+ 6795 6796+-------------------------------------------------------------------------------------------------------------------------------------+ 6797|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`| 6798+-------------------------------------------------------------------------------------------------------------------------------------+ 6799 6800 6801-Wmicrosoft-charize 6802------------------- 6803**Diagnostic text:** 6804 6805+-------------------------------------------------------------------------------------+ 6806|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`| 6807+-------------------------------------------------------------------------------------+ 6808 6809 6810-Wmicrosoft-comment-paste 6811------------------------- 6812**Diagnostic text:** 6813 6814+----------------------------------------------------------------------------------------------------------+ 6815|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`| 6816+----------------------------------------------------------------------------------------------------------+ 6817 6818 6819-Wmicrosoft-const-init 6820---------------------- 6821This diagnostic is enabled by default. 6822 6823**Diagnostic text:** 6824 6825+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 6826|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 6827| || || | 6828| |+---------------------------------------------------------------+| | 6829| || |nbsp| :diagtext:`without a user-provided default constructor`|| | 6830| |+---------------------------------------------------------------+| | 6831+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 6832 6833 6834-Wmicrosoft-cpp-macro 6835--------------------- 6836**Diagnostic text:** 6837 6838+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6839|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`| 6840+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6841 6842 6843-Wmicrosoft-default-arg-redefinition 6844------------------------------------ 6845This diagnostic is enabled by default. 6846 6847**Diagnostic text:** 6848 6849+-----------------------------------------------------------------------+ 6850|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`| 6851+-----------------------------------------------------------------------+ 6852 6853 6854-Wmicrosoft-drectve-section 6855--------------------------- 6856This diagnostic is enabled by default. 6857 6858**Diagnostic text:** 6859 6860+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6861|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead`| 6862+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6863 6864 6865-Wmicrosoft-end-of-file 6866----------------------- 6867**Diagnostic text:** 6868 6869+----------------------------------------------------------------------------------------------+ 6870|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`| 6871+----------------------------------------------------------------------------------------------+ 6872 6873 6874-Wmicrosoft-enum-forward-reference 6875---------------------------------- 6876This diagnostic is enabled by default. 6877 6878**Diagnostic text:** 6879 6880+---------------------------------------------------------------------------------------------------+ 6881|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`| 6882+---------------------------------------------------------------------------------------------------+ 6883 6884 6885-Wmicrosoft-enum-value 6886---------------------- 6887**Diagnostic text:** 6888 6889+---------------------------------------------------------------------------------------------------------------------------+ 6890|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`| 6891+---------------------------------------------------------------------------------------------------------------------------+ 6892 6893 6894-Wmicrosoft-exception-spec 6895-------------------------- 6896Some of the diagnostics controlled by this flag are enabled by default. 6897 6898**Diagnostic text:** 6899 6900+------------------------------------------------------------------------------------------------+ 6901|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 6902+------------------------------------------------------------------------------------------------+ 6903 6904+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 6905|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`| 6906| || || | 6907| |+--------------------------------+| | 6908| ||:diagtext:`pointer to` |nbsp| || | 6909| |+--------------------------------+| | 6910| ||:diagtext:`reference to` |nbsp| || | 6911| |+--------------------------------+| | 6912+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 6913 6914+-----------------------------------------------------------------------------------------------------------------+ 6915|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`| 6916+-----------------------------------------------------------------------------------------------------------------+ 6917 6918+------------------------------------------------------------------------------------------------------------------------+ 6919|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`| 6920+------------------------------------------------------------------------------------------------------------------------+ 6921 6922+--------------------------------------------------------------------------------------------------------------------------------+ 6923|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 6924+--------------------------------------------------------------------------------------------------------------------------------+ 6925 6926+-------------------------------------------------------------------------------------------------------------------+ 6927|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`| 6928+-------------------------------------------------------------------------------------------------------------------+ 6929 6930 6931-Wmicrosoft-exists 6932------------------ 6933This diagnostic is enabled by default. 6934 6935**Diagnostic text:** 6936 6937+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 6938|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`| 6939| ||:diagtext:`\_\_if\_not\_exists`|| | 6940| |+-------------------------------+| | 6941| ||:diagtext:`\_\_if\_exists` || | 6942| |+-------------------------------+| | 6943+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 6944 6945 6946-Wmicrosoft-explicit-constructor-call 6947------------------------------------- 6948This diagnostic is enabled by default. 6949 6950**Diagnostic text:** 6951 6952+-------------------------------------------------------------------------------------------+ 6953|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`| 6954+-------------------------------------------------------------------------------------------+ 6955 6956 6957-Wmicrosoft-extra-qualification 6958------------------------------- 6959This diagnostic is enabled by default. 6960 6961**Diagnostic text:** 6962 6963+--------------------------------------------------------------------------------------------+ 6964|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 6965+--------------------------------------------------------------------------------------------+ 6966 6967 6968-Wmicrosoft-fixed-enum 6969---------------------- 6970**Diagnostic text:** 6971 6972+---------------------------------------------------------------------------------------------------------------+ 6973|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`| 6974+---------------------------------------------------------------------------------------------------------------+ 6975 6976 6977-Wmicrosoft-flexible-array 6978-------------------------- 6979**Diagnostic text:** 6980 6981+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 6982|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 6983| ||:diagtext:`struct` || | 6984| |+---------------------+| | 6985| ||:diagtext:`interface`|| | 6986| |+---------------------+| | 6987| ||:diagtext:`union` || | 6988| |+---------------------+| | 6989| ||:diagtext:`class` || | 6990| |+---------------------+| | 6991| ||:diagtext:`enum` || | 6992| |+---------------------+| | 6993+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 6994 6995+-------------------------------------------------------------------------------------------------------------------------------------------+ 6996|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`| 6997+-------------------------------------------------------------------------------------------------------------------------------------------+ 6998 6999 7000-Wmicrosoft-goto 7001---------------- 7002This diagnostic is enabled by default. 7003 7004**Diagnostic text:** 7005 7006+----------------------------------------------------------------------------------------------------------+ 7007|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`| 7008+----------------------------------------------------------------------------------------------------------+ 7009 7010 7011-Wmicrosoft-inaccessible-base 7012----------------------------- 7013This diagnostic is enabled by default. 7014 7015**Diagnostic text:** 7016 7017+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7018|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 7019+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7020 7021 7022-Wmicrosoft-include 7023------------------- 7024This diagnostic is enabled by default. 7025 7026**Diagnostic text:** 7027 7028+------------------------------------------------------------------------------------------------------------------------------+ 7029|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`| 7030+------------------------------------------------------------------------------------------------------------------------------+ 7031 7032 7033-Wmicrosoft-mutable-reference 7034----------------------------- 7035This diagnostic is enabled by default. 7036 7037**Diagnostic text:** 7038 7039+---------------------------------------------------------------------------------------------+ 7040|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`| 7041+---------------------------------------------------------------------------------------------+ 7042 7043 7044-Wmicrosoft-pure-definition 7045--------------------------- 7046This diagnostic is enabled by default. 7047 7048**Diagnostic text:** 7049 7050+-------------------------------------------------------------------------------------------------------+ 7051|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`| 7052+-------------------------------------------------------------------------------------------------------+ 7053 7054 7055-Wmicrosoft-redeclare-static 7056---------------------------- 7057**Diagnostic text:** 7058 7059+-------------------------------------------------------------------------------------------------------------------------------------------+ 7060|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`| 7061+-------------------------------------------------------------------------------------------------------------------------------------------+ 7062 7063 7064-Wmicrosoft-sealed 7065------------------ 7066This diagnostic is enabled by default. 7067 7068**Diagnostic text:** 7069 7070+--------------------------------------------------------------------------------+ 7071|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`| 7072+--------------------------------------------------------------------------------+ 7073 7074 7075-Wmicrosoft-template 7076-------------------- 7077This diagnostic is enabled by default. 7078 7079**Diagnostic text:** 7080 7081+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7082|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`| 7083+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7084 7085+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7086|:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`| 7087+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7088 7089+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7090|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`| 7091+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7092 7093+-----------------------------------------------------------------------------------------------------------------------------+ 7094|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`| 7095+-----------------------------------------------------------------------------------------------------------------------------+ 7096 7097+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 7098|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 7099| ||:diagtext:`class template` || ||+---------------------------------------------------------+ || | 7100| |+-------------------------------------+| |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`| || | 7101| ||:diagtext:`class template partial` || ||+---------------------------------------------------------+ || | 7102| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 7103| ||:diagtext:`variable template` || ||+--------------------------------------------------------------------------------------+|| | 7104| |+-------------------------------------+| |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`||| | 7105| ||:diagtext:`variable template partial`|| ||+--------------------------------------------------------------------------------------+|| | 7106| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 7107| ||:diagtext:`function template` || | | | 7108| |+-------------------------------------+| | | | 7109| ||:diagtext:`member function` || | | | 7110| |+-------------------------------------+| | | | 7111| ||:diagtext:`static data member` || | | | 7112| |+-------------------------------------+| | | | 7113| ||:diagtext:`member class` || | | | 7114| |+-------------------------------------+| | | | 7115| ||:diagtext:`member enumeration` || | | | 7116| |+-------------------------------------+| | | | 7117+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 7118 7119+------------------------------------------------------------------------------------------------------------------------------------------------+ 7120|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`| 7121+------------------------------------------------------------------------------------------------------------------------------------------------+ 7122 7123+-------------------------------------------------------------------------------------------------+ 7124|:warning:`warning:` |nbsp| :diagtext:`'static' can only be specified inside the class definition`| 7125+-------------------------------------------------------------------------------------------------+ 7126 7127+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7128|:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 7129+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7130 7131 7132-Wmicrosoft-union-member-reference 7133---------------------------------- 7134This diagnostic is enabled by default. 7135 7136**Diagnostic text:** 7137 7138+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7139|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`| 7140+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7141 7142 7143-Wmicrosoft-unqualified-friend 7144------------------------------ 7145This diagnostic is enabled by default. 7146 7147**Diagnostic text:** 7148 7149+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7150|:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`| 7151+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7152 7153 7154-Wmicrosoft-using-decl 7155---------------------- 7156This diagnostic is enabled by default. 7157 7158**Diagnostic text:** 7159 7160+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7161|:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`| 7162+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7163 7164 7165-Wmicrosoft-void-pseudo-dtor 7166---------------------------- 7167This diagnostic is enabled by default. 7168 7169**Diagnostic text:** 7170 7171+------------------------------------------------------------------------------------------------+ 7172|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`| 7173+------------------------------------------------------------------------------------------------+ 7174 7175 7176-Wmismatched-new-delete 7177----------------------- 7178This diagnostic is enabled by default. 7179 7180**Diagnostic text:** 7181 7182+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 7183|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`| 7184| || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| | 7185| |+----------------+| |+----------------+| |+----------------+| | 7186| ||:diagtext:`\[\]`|| || || || || | 7187| |+----------------+| |+----------------+| |+----------------+| | 7188+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 7189 7190 7191-Wmismatched-parameter-types 7192---------------------------- 7193This diagnostic is enabled by default. 7194 7195**Diagnostic text:** 7196 7197+---------------------------------------------------------------------------------------------------------------+ 7198|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`| 7199+---------------------------------------------------------------------------------------------------------------+ 7200 7201 7202-Wmismatched-return-types 7203------------------------- 7204This diagnostic is enabled by default. 7205 7206**Diagnostic text:** 7207 7208+-----------------------------------------------------------------------------------------------------------+ 7209|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`| 7210+-----------------------------------------------------------------------------------------------------------+ 7211 7212 7213-Wmismatched-tags 7214----------------- 7215**Diagnostic text:** 7216 7217+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 7218|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 7219| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || | 7220| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 7221| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| | 7222| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 7223| ||:diagtext:`a class` || | ||:diagtext:`a class` || | | 7224| |+------------------------+| | |+------------------------+| | | 7225+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 7226 7227+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 7228|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 7229| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || | 7230| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 7231| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| | 7232| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 7233| ||:diagtext:`class` || | ||:diagtext:`class` || | | 7234| |+---------------------+| | |+---------------------+| | | 7235+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 7236 7237 7238-Wmissing-braces 7239---------------- 7240**Diagnostic text:** 7241 7242+----------------------------------------------------------------------------------------+ 7243|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`| 7244+----------------------------------------------------------------------------------------+ 7245 7246 7247-Wmissing-declarations 7248---------------------- 7249This diagnostic is enabled by default. 7250 7251**Diagnostic text:** 7252 7253+----------------------------------------------------------------------------+ 7254|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`| 7255+----------------------------------------------------------------------------+ 7256 7257+-----------------------------------------------------------------------------------------------------------------+ 7258|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`| 7259+-----------------------------------------------------------------------------------------------------------------+ 7260 7261+--------------------------------------------------------------+ 7262|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`| 7263+--------------------------------------------------------------+ 7264 7265+-------------------------------------------------------------------------------------------------+ 7266|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`| 7267+-------------------------------------------------------------------------------------------------+ 7268 7269 7270-Wmissing-exception-spec 7271------------------------ 7272This diagnostic is enabled by default. 7273 7274**Diagnostic text:** 7275 7276+--------------------------------------------------------------------------------------------------------------------------------+ 7277|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 7278+--------------------------------------------------------------------------------------------------------------------------------+ 7279 7280 7281-Wmissing-field-initializers 7282---------------------------- 7283**Diagnostic text:** 7284 7285+-----------------------------------------------------------------------------------------------------------+ 7286|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`| 7287+-----------------------------------------------------------------------------------------------------------+ 7288 7289 7290-Wmissing-format-attribute 7291-------------------------- 7292This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7293 7294-Wmissing-include-dirs 7295---------------------- 7296This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7297 7298-Wmissing-method-return-type 7299---------------------------- 7300**Diagnostic text:** 7301 7302+--------------------------------------------------------------------------------------------+ 7303|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`| 7304+--------------------------------------------------------------------------------------------+ 7305 7306 7307-Wmissing-noescape 7308------------------ 7309This diagnostic is enabled by default. 7310 7311**Diagnostic text:** 7312 7313+----------------------------------------------------------------------------------------------------------------------------+ 7314|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`| 7315+----------------------------------------------------------------------------------------------------------------------------+ 7316 7317 7318-Wmissing-noreturn 7319------------------ 7320**Diagnostic text:** 7321 7322+----------------------------------------------------------------------------------------+ 7323|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`| 7324+----------------------------------------------------------------------------------------+ 7325 7326+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 7327|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`| 7328| ||:diagtext:`function`|| | 7329| |+--------------------+| | 7330| ||:diagtext:`method` || | 7331| |+--------------------+| | 7332+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 7333 7334 7335-Wmissing-prototype-for-cc 7336-------------------------- 7337This diagnostic is enabled by default. 7338 7339**Diagnostic text:** 7340 7341+----------------------------------------------------------------------------------------------------------------------------------------------+ 7342|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`| 7343+----------------------------------------------------------------------------------------------------------------------------------------------+ 7344 7345 7346-Wmissing-prototypes 7347-------------------- 7348**Diagnostic text:** 7349 7350+-------------------------------------------------------------------------------------------------+ 7351|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`| 7352+-------------------------------------------------------------------------------------------------+ 7353 7354 7355-Wmissing-selector-name 7356----------------------- 7357This diagnostic is enabled by default. 7358 7359**Diagnostic text:** 7360 7361+---------------------------------------------------------------------------------------------------------------------------------------------+ 7362|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`| 7363+---------------------------------------------------------------------------------------------------------------------------------------------+ 7364 7365 7366-Wmissing-sysroot 7367----------------- 7368This diagnostic is enabled by default. 7369 7370**Diagnostic text:** 7371 7372+------------------------------------------------------------------------------------------------+ 7373|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`| 7374+------------------------------------------------------------------------------------------------+ 7375 7376 7377-Wmissing-variable-declarations 7378------------------------------- 7379**Diagnostic text:** 7380 7381+---------------------------------------------------------------------------------------------------------------------+ 7382|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`| 7383+---------------------------------------------------------------------------------------------------------------------+ 7384 7385 7386-Rmodule-build 7387-------------- 7388**Diagnostic text:** 7389 7390+---------------------------------------------------------------------------------------------------------------------+ 7391|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`| 7392+---------------------------------------------------------------------------------------------------------------------+ 7393 7394+--------------------------------------------------------------------------------------------+ 7395|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`| 7396+--------------------------------------------------------------------------------------------+ 7397 7398+-----------------------------------------------------------------------------------------------------------------------------------+ 7399|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`| 7400+-----------------------------------------------------------------------------------------------------------------------------------+ 7401 7402+---------------------------------------------------------------------------------------------------------------------+ 7403|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`| 7404+---------------------------------------------------------------------------------------------------------------------+ 7405 7406 7407-Wmodule-conflict 7408----------------- 7409This diagnostic is enabled by default. 7410 7411**Diagnostic text:** 7412 7413+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7414|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`| 7415+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7416 7417+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7418|:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`| 7419+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7420 7421 7422-Wmodule-file-config-mismatch 7423----------------------------- 7424This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error. 7425 7426**Diagnostic text:** 7427 7428+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7429|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`| 7430+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7431 7432 7433-Wmodule-file-extension 7434----------------------- 7435This diagnostic is enabled by default. 7436 7437**Diagnostic text:** 7438 7439+----------------------------------------------------------------------------------------------------------------+ 7440|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`| 7441+----------------------------------------------------------------------------------------------------------------+ 7442 7443 7444-Rmodule-import 7445--------------- 7446**Diagnostic text:** 7447 7448+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+ 7449|:remark:`remark:` |nbsp| :diagtext:`importing module '`:placeholder:`A`:diagtext:`'`|+---------------------------------------------------------+| |nbsp| :diagtext:`from '`:placeholder:`B`:diagtext:`'`| 7450| || || | 7451| |+---------------------------------------------------------+| | 7452| ||+-------------------------------------------------------+|| | 7453| ||| |nbsp| :diagtext:`into '`:placeholder:`D`:diagtext:`'`||| | 7454| ||+-------------------------------------------------------+|| | 7455| |+---------------------------------------------------------+| | 7456+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+ 7457 7458 7459-Wmodule-import-in-extern-c 7460--------------------------- 7461This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error. 7462 7463**Diagnostic text:** 7464 7465+-----------------------------------------------------------------------------------------------------------------------------------------------+ 7466|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`| 7467+-----------------------------------------------------------------------------------------------------------------------------------------------+ 7468 7469 7470-Wmodules-ambiguous-internal-linkage 7471------------------------------------ 7472This diagnostic is enabled by default. 7473 7474**Diagnostic text:** 7475 7476+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7477|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`| 7478+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7479 7480 7481-Wmodules-import-nested-redundant 7482--------------------------------- 7483This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error. 7484 7485**Diagnostic text:** 7486 7487+-------------------------------------------------------------------------------------------------------------------------------------+ 7488|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`| 7489+-------------------------------------------------------------------------------------------------------------------------------------+ 7490 7491 7492-Wmost 7493------ 7494Some of the diagnostics controlled by this flag are enabled by default. 7495 7496Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_. 7497 7498 7499-Wmove 7500------ 7501Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_. 7502 7503 7504-Wmsvc-include 7505-------------- 7506Synonym for `-Wmicrosoft-include`_. 7507 7508 7509-Wmsvc-not-found 7510---------------- 7511This diagnostic is enabled by default. 7512 7513**Diagnostic text:** 7514 7515+-------------------------------------------------------------------------------------------------------------------------------------+ 7516|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`| 7517+-------------------------------------------------------------------------------------------------------------------------------------+ 7518 7519 7520-Wmultichar 7521----------- 7522This diagnostic is enabled by default. 7523 7524**Diagnostic text:** 7525 7526+-------------------------------------------------------------------------+ 7527|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 7528+-------------------------------------------------------------------------+ 7529 7530 7531-Wmultiple-move-vbase 7532--------------------- 7533This diagnostic is enabled by default. 7534 7535**Diagnostic text:** 7536 7537+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7538|:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`| 7539+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7540 7541 7542-Wnarrowing 7543----------- 7544Synonym for `-Wc++11-narrowing`_. 7545 7546 7547-Wnested-anon-types 7548------------------- 7549**Diagnostic text:** 7550 7551+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 7552|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`| 7553| ||:diagtext:`struct`|| | 7554| |+------------------+| | 7555| ||:diagtext:`union` || | 7556| |+------------------+| | 7557+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 7558 7559 7560-Wnested-externs 7561---------------- 7562This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7563 7564-Wnew-returns-null 7565------------------ 7566This diagnostic is enabled by default. 7567 7568**Diagnostic text:** 7569 7570+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 7571|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+| 7572| || || 7573| |+---------------------------------+| 7574| || |nbsp| :diagtext:`or 'noexcept'`|| 7575| |+---------------------------------+| 7576+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 7577 7578 7579-Wnewline-eof 7580------------- 7581**Diagnostic text:** 7582 7583+----------------------------------------------------------------+ 7584|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 7585+----------------------------------------------------------------+ 7586 7587+----------------------------------------------------------------+ 7588|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 7589+----------------------------------------------------------------+ 7590 7591 7592-Wnoderef 7593--------- 7594This diagnostic is enabled by default. 7595 7596**Diagnostic text:** 7597 7598+----------------------------------------------------------------------------------------------------------------------------+ 7599|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`| 7600+----------------------------------------------------------------------------------------------------------------------------+ 7601 7602+-----------------------------------------------------------------------------------+ 7603|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`| 7604+-----------------------------------------------------------------------------------+ 7605 7606+-----------------------------------------------------------------------------------------------------+ 7607|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`| 7608+-----------------------------------------------------------------------------------------------------+ 7609 7610 7611-Wnoexcept-type 7612--------------- 7613Synonym for `-Wc++17-compat-mangling`_. 7614 7615 7616-Wnon-gcc 7617--------- 7618Some of the diagnostics controlled by this flag are enabled by default. 7619 7620Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_. 7621 7622 7623-Wnon-literal-null-conversion 7624----------------------------- 7625This diagnostic is enabled by default. 7626 7627**Diagnostic text:** 7628 7629+--------------------------------------------------------------------------------------------------------------------------------------------+ 7630|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`| 7631+--------------------------------------------------------------------------------------------------------------------------------------------+ 7632 7633 7634-Wnon-modular-include-in-framework-module 7635----------------------------------------- 7636**Diagnostic text:** 7637 7638+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7639|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 7640+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 7641 7642 7643-Wnon-modular-include-in-module 7644------------------------------- 7645Also controls `-Wnon-modular-include-in-framework-module`_. 7646 7647**Diagnostic text:** 7648 7649+-------------------------------------------------------------------------------------------------------------------------------------------------+ 7650|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 7651+-------------------------------------------------------------------------------------------------------------------------------------------------+ 7652 7653 7654-Wnon-pod-varargs 7655----------------- 7656This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error. 7657 7658**Diagnostic text:** 7659 7660+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 7661|:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`| 7662| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 7663| |+-----------------------+| |+-----------------------+| | 7664| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 7665| |+-----------------------+| |+-----------------------+| | 7666| | | ||:diagtext:`method` || | 7667| | | |+-----------------------+| | 7668| | | ||:diagtext:`constructor`|| | 7669| | | |+-----------------------+| | 7670+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 7671 7672+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 7673|:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`| 7674| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 7675| |+-----------------------+| |+-----------------------+| | 7676| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 7677| |+-----------------------+| |+-----------------------+| | 7678| | | ||:diagtext:`method` || | 7679| | | |+-----------------------+| | 7680| | | ||:diagtext:`constructor`|| | 7681| | | |+-----------------------+| | 7682+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 7683 7684+----------------------------------------------------------------------------------------------------------+ 7685|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`| 7686+----------------------------------------------------------------------------------------------------------+ 7687 7688+--------------------------------------------------------------------------------------------------------------------------+ 7689|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`| 7690+--------------------------------------------------------------------------------------------------------------------------+ 7691 7692 7693-Wnon-virtual-dtor 7694------------------ 7695**Diagnostic text:** 7696 7697+---------------------------------------------------------------------------------------------------------------+ 7698|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`| 7699+---------------------------------------------------------------------------------------------------------------+ 7700 7701 7702-Wnonnull 7703--------- 7704This diagnostic is enabled by default. 7705 7706**Diagnostic text:** 7707 7708+------------------------------------------------------------------------------------------------+ 7709|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`| 7710+------------------------------------------------------------------------------------------------+ 7711 7712+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 7713|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`| 7714| ||:diagtext:`function`|| | 7715| |+--------------------+| | 7716| ||:diagtext:`method` || | 7717| |+--------------------+| | 7718+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 7719 7720 7721-Wnonportable-cfstrings 7722----------------------- 7723This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7724 7725-Wnonportable-include-path 7726-------------------------- 7727This diagnostic is enabled by default. 7728 7729**Diagnostic text:** 7730 7731+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7732|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 7733+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7734 7735 7736-Wnonportable-system-include-path 7737--------------------------------- 7738**Diagnostic text:** 7739 7740+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7741|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 7742+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7743 7744 7745-Wnonportable-vector-initialization 7746----------------------------------- 7747This diagnostic is enabled by default. 7748 7749**Diagnostic text:** 7750 7751+---------------------------------------------------------------------------------------------------------------------+ 7752|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`| 7753+---------------------------------------------------------------------------------------------------------------------+ 7754 7755 7756-Wnontrivial-memaccess 7757---------------------- 7758This diagnostic is enabled by default. 7759 7760**Diagnostic text:** 7761 7762+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 7763|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+| 7764| ||:diagtext:`destination for` || ||:diagtext:`primitive-default-initialize`|| 7765| |+-----------------------------+| |+----------------------------------------+| 7766| ||:diagtext:`source of` || ||:diagtext:`primitive-copy` || 7767| |+-----------------------------+| |+----------------------------------------+| 7768| ||:diagtext:`first operand of` || | | 7769| |+-----------------------------+| | | 7770| ||:diagtext:`second operand of`|| | | 7771| |+-----------------------------+| | | 7772+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 7773 7774 7775-Wnsconsumed-mismatch 7776--------------------- 7777This diagnostic is enabled by default. 7778 7779**Diagnostic text:** 7780 7781+---------------------------------------------------------------------------------------------------------------+ 7782|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`| 7783+---------------------------------------------------------------------------------------------------------------+ 7784 7785 7786-Wnsreturns-mismatch 7787-------------------- 7788This diagnostic is enabled by default. 7789 7790**Diagnostic text:** 7791 7792+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 7793|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`| 7794| ||:diagtext:`not\_retained`|| | 7795| |+-------------------------+| | 7796| ||:diagtext:`retained` || | 7797| |+-------------------------+| | 7798+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 7799 7800 7801-Wnull-arithmetic 7802----------------- 7803This diagnostic is enabled by default. 7804 7805**Diagnostic text:** 7806 7807+--------------------------------------------------------------------------+ 7808|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`| 7809+--------------------------------------------------------------------------+ 7810 7811+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 7812|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+| 7813| ||+----------------------------------------------------------+|| 7814| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`||| 7815| ||+----------------------------------------------------------+|| 7816| |+------------------------------------------------------------+| 7817| ||+----------------------------------------------------------+|| 7818| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`||| 7819| ||+----------------------------------------------------------+|| 7820| |+------------------------------------------------------------+| 7821+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 7822 7823 7824-Wnull-character 7825---------------- 7826This diagnostic is enabled by default. 7827 7828**Diagnostic text:** 7829 7830+-----------------------------------------------------------------------------+--------------------+---------------------------+ 7831|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`| 7832| ||:diagtext:`char` || | 7833| |+------------------+| | 7834| ||:diagtext:`string`|| | 7835| |+------------------+| | 7836+-----------------------------------------------------------------------------+--------------------+---------------------------+ 7837 7838+-------------------------------------------------------------+ 7839|:warning:`warning:` |nbsp| :diagtext:`null character ignored`| 7840+-------------------------------------------------------------+ 7841 7842 7843-Wnull-conversion 7844----------------- 7845This diagnostic is enabled by default. 7846 7847**Diagnostic text:** 7848 7849+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 7850|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`| 7851| ||:diagtext:`NULL` || | 7852| |+-------------------+| | 7853| ||:diagtext:`nullptr`|| | 7854| |+-------------------+| | 7855+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 7856 7857 7858-Wnull-dereference 7859------------------ 7860This diagnostic is enabled by default. 7861 7862**Diagnostic text:** 7863 7864+------------------------------------------------------------------------------------------------------------+ 7865|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`| 7866+------------------------------------------------------------------------------------------------------------+ 7867 7868+---------------------------------------------------------------------------------------------------------+ 7869|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`| 7870+---------------------------------------------------------------------------------------------------------+ 7871 7872 7873-Wnull-pointer-arithmetic 7874------------------------- 7875**Diagnostic text:** 7876 7877+--------------------------------------------------------------------------------------------------------------------------------+ 7878|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`| 7879+--------------------------------------------------------------------------------------------------------------------------------+ 7880 7881+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 7882|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+| 7883| || || 7884| |+--------------------------------------------+| 7885| || |nbsp| :diagtext:`if the offset is nonzero`|| 7886| |+--------------------------------------------+| 7887+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 7888 7889 7890-Wnullability 7891------------- 7892This diagnostic is enabled by default. 7893 7894**Diagnostic text:** 7895 7896+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7897|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7898+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7899 7900+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7901|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7902+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7903 7904+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7905|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 7906+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7907 7908+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7909|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`| 7910+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7911 7912+----------------------------------------------------------------------------------------------+ 7913|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`| 7914+----------------------------------------------------------------------------------------------+ 7915 7916 7917-Wnullability-completeness 7918-------------------------- 7919This diagnostic is enabled by default. 7920 7921Also controls `-Wnullability-completeness-on-arrays`_. 7922 7923**Diagnostic text:** 7924 7925+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 7926|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 7927| ||:diagtext:`pointer` || | 7928| |+--------------------------+| | 7929| ||:diagtext:`block pointer` || | 7930| |+--------------------------+| | 7931| ||:diagtext:`member pointer`|| | 7932| |+--------------------------+| | 7933+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 7934 7935 7936-Wnullability-completeness-on-arrays 7937------------------------------------ 7938This diagnostic is enabled by default. 7939 7940**Diagnostic text:** 7941 7942+----------------------------------------------------------------------------------------------------------------------------------------------+ 7943|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 7944+----------------------------------------------------------------------------------------------------------------------------------------------+ 7945 7946 7947-Wnullability-declspec 7948---------------------- 7949This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error. 7950 7951**Diagnostic text:** 7952 7953+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 7954|:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`| 7955| ||:diagtext:`pointer` || | 7956| |+-----------------------------------+| | 7957| ||:diagtext:`block pointer` || | 7958| |+-----------------------------------+| | 7959| ||:diagtext:`member pointer` || | 7960| |+-----------------------------------+| | 7961| ||:diagtext:`function pointer` || | 7962| |+-----------------------------------+| | 7963| ||:diagtext:`member function pointer`|| | 7964| |+-----------------------------------+| | 7965+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 7966 7967 7968-Wnullability-extension 7969----------------------- 7970**Diagnostic text:** 7971 7972+---------------------------------------------------------------------------------------------------------------------------------+ 7973|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`| 7974+---------------------------------------------------------------------------------------------------------------------------------+ 7975 7976 7977-Wnullability-inferred-on-nested-type 7978------------------------------------- 7979This diagnostic is enabled by default. 7980 7981**Diagnostic text:** 7982 7983+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 7984|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`| 7985| ||:diagtext:`array` || | 7986| |+---------------------+| | 7987| ||:diagtext:`reference`|| | 7988| |+---------------------+| | 7989+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 7990 7991 7992-Wnullable-to-nonnull-conversion 7993-------------------------------- 7994**Diagnostic text:** 7995 7996+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7997|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`| 7998+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7999 8000 8001-Wobjc-autosynthesis-property-ivar-name-match 8002--------------------------------------------- 8003This diagnostic is enabled by default. 8004 8005**Diagnostic text:** 8006 8007+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 8008|:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`| 8009| || || | 8010| |+-----------------------+| | 8011| ||:diagtext:`synthesized`|| | 8012| |+-----------------------+| | 8013+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 8014 8015 8016-Wobjc-bool-constant-conversion 8017------------------------------- 8018This diagnostic is enabled by default. 8019 8020**Diagnostic text:** 8021 8022+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8023|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from constant value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to BOOL; the only well defined values for BOOL are YES and NO`| 8024+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8025 8026 8027-Wobjc-boxing 8028------------- 8029This diagnostic is enabled by default. 8030 8031**Diagnostic text:** 8032 8033+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8034|:warning:`warning:` |nbsp| :diagtext:`string is ill-formed as UTF-8 and will become a null` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when boxed`| 8035+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8036 8037 8038-Wobjc-circular-container 8039------------------------- 8040This diagnostic is enabled by default. 8041 8042**Diagnostic text:** 8043 8044+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8045|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`| 8046+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8047 8048 8049-Wobjc-cocoa-api 8050---------------- 8051Synonym for `-Wobjc-redundant-api-use`_. 8052 8053 8054-Wobjc-designated-initializers 8055------------------------------ 8056This diagnostic is enabled by default. 8057 8058**Diagnostic text:** 8059 8060+-----------------------------------------------------------------------------------------------------------------------------------+ 8061|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`| 8062+-----------------------------------------------------------------------------------------------------------------------------------+ 8063 8064+--------------------------------------------------------------------------------------------------+ 8065|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`| 8066+--------------------------------------------------------------------------------------------------+ 8067 8068+--------------------------------------------------------------------------------------------------------------------+ 8069|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`| 8070+--------------------------------------------------------------------------------------------------------------------+ 8071 8072+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8073|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 8074+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8075 8076+-----------------------------------------------------------------------------------------------------------+ 8077|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`| 8078+-----------------------------------------------------------------------------------------------------------+ 8079 8080+----------------------------------------------------------------------------------------------------------+ 8081|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`| 8082+----------------------------------------------------------------------------------------------------------+ 8083 8084 8085-Wobjc-flexible-array 8086--------------------- 8087This diagnostic is enabled by default. 8088 8089**Diagnostic text:** 8090 8091+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8092|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`| 8093+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8094 8095+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8096|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`| 8097+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8098 8099 8100-Wobjc-forward-class-redefinition 8101--------------------------------- 8102This diagnostic is enabled by default. 8103 8104**Diagnostic text:** 8105 8106+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8107|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`| 8108+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8109 8110 8111-Wobjc-interface-ivars 8112---------------------- 8113**Diagnostic text:** 8114 8115+-------------------------------------------------------------------------------------------------------+ 8116|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`| 8117+-------------------------------------------------------------------------------------------------------+ 8118 8119 8120-Wobjc-literal-compare 8121---------------------- 8122This diagnostic is enabled by default. 8123 8124Also controls `-Wobjc-string-compare`_. 8125 8126**Diagnostic text:** 8127 8128+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 8129|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`| 8130| ||:diagtext:`an array literal` || | 8131| |+--------------------------------+| | 8132| ||:diagtext:`a dictionary literal`|| | 8133| |+--------------------------------+| | 8134| ||:diagtext:`a numeric literal` || | 8135| |+--------------------------------+| | 8136| ||:diagtext:`a boxed expression` || | 8137| |+--------------------------------+| | 8138| || || | 8139| |+--------------------------------+| | 8140+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 8141 8142 8143-Wobjc-literal-conversion 8144------------------------- 8145This diagnostic is enabled by default. 8146 8147**Diagnostic text:** 8148 8149+-------------------------------------------------------------------------------------------------------------------------+ 8150|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`| 8151+-------------------------------------------------------------------------------------------------------------------------+ 8152 8153+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 8154|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`| 8155| ||:diagtext:`array element type` || | 8156| |+---------------------------------+| | 8157| ||:diagtext:`dictionary key type` || | 8158| |+---------------------------------+| | 8159| ||:diagtext:`dictionary value type`|| | 8160| |+---------------------------------+| | 8161+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 8162 8163 8164-Wobjc-macro-redefinition 8165------------------------- 8166This diagnostic is enabled by default. 8167 8168**Diagnostic text:** 8169 8170+-------------------------------------------------------------------------------------------+ 8171|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`| 8172+-------------------------------------------------------------------------------------------+ 8173 8174 8175-Wobjc-messaging-id 8176------------------- 8177**Diagnostic text:** 8178 8179+---------------------------------------------------------------+ 8180|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`| 8181+---------------------------------------------------------------+ 8182 8183 8184-Wobjc-method-access 8185-------------------- 8186This diagnostic is enabled by default. 8187 8188**Diagnostic text:** 8189 8190+---------------------------------------------------------------------------------------------------------------------------------------+ 8191|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 8192+---------------------------------------------------------------------------------------------------------------------------------------+ 8193 8194+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8195|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 8196+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8197 8198+------------------------------------------------------------------------------------------------------------------------------------------+ 8199|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 8200+------------------------------------------------------------------------------------------------------------------------------------------+ 8201 8202+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8203|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 8204+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8205 8206+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 8207|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`| 8208+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 8209 8210+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 8211|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`| 8212+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 8213 8214 8215-Wobjc-missing-property-synthesis 8216--------------------------------- 8217**Diagnostic text:** 8218 8219+------------------------------------------------------------------------------------------------------------------+ 8220|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`| 8221+------------------------------------------------------------------------------------------------------------------+ 8222 8223 8224-Wobjc-missing-super-calls 8225-------------------------- 8226This diagnostic is enabled by default. 8227 8228**Diagnostic text:** 8229 8230+-------------------------------------------------------------------------------------------------------------------+ 8231|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`| 8232+-------------------------------------------------------------------------------------------------------------------+ 8233 8234 8235-Wobjc-multiple-method-names 8236---------------------------- 8237This diagnostic is enabled by default. 8238 8239**Diagnostic text:** 8240 8241+--------------------------------------------------------------------------------------------------------------+ 8242|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 8243+--------------------------------------------------------------------------------------------------------------+ 8244 8245 8246-Wobjc-noncopy-retain-block-property 8247------------------------------------ 8248This diagnostic is enabled by default. 8249 8250**Diagnostic text:** 8251 8252+--------------------------------------------------------------------------------------------------------------------+ 8253|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`| 8254+--------------------------------------------------------------------------------------------------------------------+ 8255 8256 8257-Wobjc-nonunified-exceptions 8258---------------------------- 8259This diagnostic is enabled by default. 8260 8261**Diagnostic text:** 8262 8263+-----------------------------------------------------------------------------------------------------------------------------+ 8264|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`| 8265+-----------------------------------------------------------------------------------------------------------------------------+ 8266 8267 8268-Wobjc-property-assign-on-object-type 8269------------------------------------- 8270**Diagnostic text:** 8271 8272+--------------------------------------------------------------------------------------------------------------------------------------------+ 8273|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`| 8274+--------------------------------------------------------------------------------------------------------------------------------------------+ 8275 8276 8277-Wobjc-property-implementation 8278------------------------------ 8279This diagnostic is enabled by default. 8280 8281**Diagnostic text:** 8282 8283+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8284|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`| 8285+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8286 8287+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8288|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 8289+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8290 8291+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8292|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`| 8293+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8294 8295+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8296|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 8297+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8298 8299 8300-Wobjc-property-implicit-mismatch 8301--------------------------------- 8302This diagnostic is enabled by default. 8303 8304**Diagnostic text:** 8305 8306+---------------------------------------------------------------------------------------------------------------------------------------+ 8307|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`| 8308+---------------------------------------------------------------------------------------------------------------------------------------+ 8309 8310 8311-Wobjc-property-matches-cocoa-ownership-rule 8312-------------------------------------------- 8313This diagnostic is enabled by default. 8314 8315**Diagnostic text:** 8316 8317+-------------------------------------------------------------------------------------------------------------+ 8318|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`| 8319+-------------------------------------------------------------------------------------------------------------+ 8320 8321 8322-Wobjc-property-no-attribute 8323---------------------------- 8324This diagnostic is enabled by default. 8325 8326**Diagnostic text:** 8327 8328+-----------------------------------------------------------------------------------------------------+ 8329|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`| 8330+-----------------------------------------------------------------------------------------------------+ 8331 8332+--------------------------------------------------------------------------------------------------------------------+ 8333|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`| 8334+--------------------------------------------------------------------------------------------------------------------+ 8335 8336 8337-Wobjc-property-synthesis 8338------------------------- 8339This diagnostic is enabled by default. 8340 8341**Diagnostic text:** 8342 8343+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8344|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`| 8345+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8346 8347+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8348|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`| 8349+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8350 8351+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8352|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`| 8353+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8354 8355 8356-Wobjc-protocol-method-implementation 8357------------------------------------- 8358This diagnostic is enabled by default. 8359 8360**Diagnostic text:** 8361 8362+----------------------------------------------------------------------------------------------------------------------------+ 8363|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`| 8364+----------------------------------------------------------------------------------------------------------------------------+ 8365 8366 8367-Wobjc-protocol-property-synthesis 8368---------------------------------- 8369This diagnostic is enabled by default. 8370 8371**Diagnostic text:** 8372 8373+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8374|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`| 8375+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8376 8377 8378-Wobjc-protocol-qualifiers 8379-------------------------- 8380This diagnostic is enabled by default. 8381 8382**Diagnostic text:** 8383 8384+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8385|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`| 8386+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8387 8388 8389-Wobjc-readonly-with-setter-property 8390------------------------------------ 8391This diagnostic is enabled by default. 8392 8393**Diagnostic text:** 8394 8395+-----------------------------------------------------------------------------------------+ 8396|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`| 8397+-----------------------------------------------------------------------------------------+ 8398 8399 8400-Wobjc-redundant-api-use 8401------------------------ 8402Synonym for `-Wobjc-redundant-literal-use`_. 8403 8404 8405-Wobjc-redundant-literal-use 8406---------------------------- 8407This diagnostic is enabled by default. 8408 8409**Diagnostic text:** 8410 8411+-------------------------------------------------------------------------------------------------------------------+ 8412|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`| 8413+-------------------------------------------------------------------------------------------------------------------+ 8414 8415 8416-Wobjc-root-class 8417----------------- 8418This diagnostic is enabled by default. 8419 8420**Diagnostic text:** 8421 8422+-------------------------------------------------------------------------------------------------------------------------------+ 8423|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`| 8424+-------------------------------------------------------------------------------------------------------------------------------+ 8425 8426 8427-Wobjc-string-compare 8428--------------------- 8429This diagnostic is enabled by default. 8430 8431**Diagnostic text:** 8432 8433+---------------------------------------------------------------------------------------------------+ 8434|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`| 8435+---------------------------------------------------------------------------------------------------+ 8436 8437 8438-Wobjc-string-concatenation 8439--------------------------- 8440This diagnostic is enabled by default. 8441 8442**Diagnostic text:** 8443 8444+-------------------------------------------------------------------------------------------------------------------------+ 8445|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`| 8446+-------------------------------------------------------------------------------------------------------------------------+ 8447 8448 8449-Wobjc-unsafe-perform-selector 8450------------------------------ 8451This diagnostic is enabled by default. 8452 8453**Diagnostic text:** 8454 8455+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 8456|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`| 8457| ||:diagtext:`struct`|| | 8458| |+------------------+| | 8459| ||:diagtext:`union` || | 8460| |+------------------+| | 8461| ||:diagtext:`vector`|| | 8462| |+------------------+| | 8463+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 8464 8465 8466-Wodr 8467----- 8468This diagnostic is enabled by default. 8469 8470**Diagnostic text:** 8471 8472+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8473|:warning:`warning:` |nbsp| :diagtext:`template parameter lists have a different number of parameters (`:placeholder:`A` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`B`:diagtext:`)`| 8474+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8475 8476+------------------------------------------------------------------------------------------------------------+ 8477|:warning:`warning:` |nbsp| :diagtext:`template parameter has different kinds in different translation units`| 8478+------------------------------------------------------------------------------------------------------------+ 8479 8480+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8481|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8482+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8483 8484+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8485|:warning:`warning:` |nbsp| :diagtext:`external function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8486+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8487 8488+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8489|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8490+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8491 8492+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8493|:warning:`warning:` |nbsp| :diagtext:`non-type template parameter declared with incompatible types in different translation units (`:placeholder:`A` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`B`:diagtext:`)`| 8494+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8495 8496+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8497|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a different number of parameters in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 8498| ||:diagtext:`class` || | 8499| |+--------------------+| | 8500| ||:diagtext:`instance`|| | 8501| |+--------------------+| | 8502+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8503 8504+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8505|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a parameter with a different types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 8506| ||:diagtext:`class` || | 8507| |+--------------------+| | 8508| ||:diagtext:`instance`|| | 8509| |+--------------------+| | 8510+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8511 8512+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8513|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has incompatible result types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 8514| ||:diagtext:`class` || | 8515| |+--------------------+| | 8516| ||:diagtext:`instance`|| | 8517| |+--------------------+| | 8518+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8519 8520+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+ 8521|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is variadic in one translation unit and not variadic in another`| 8522| ||:diagtext:`class` || | 8523| |+--------------------+| | 8524| ||:diagtext:`instance`|| | 8525| |+--------------------+| | 8526+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+ 8527 8528+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+ 8529|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented with` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in one translation but` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in another translation unit`| 8530| ||:diagtext:`@synthesize`|| ||:diagtext:`@dynamic` || | 8531| |+-----------------------+| |+-----------------------+| | 8532| ||:diagtext:`@dynamic` || ||:diagtext:`@synthesize`|| | 8533| |+-----------------------+| |+-----------------------+| | 8534+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+ 8535 8536+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8537|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8538+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8539 8540+---------------------------------------------------------------------------------------------------------------------+ 8541|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible superclasses`| 8542+---------------------------------------------------------------------------------------------------------------------+ 8543 8544+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8545|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is synthesized to different ivars in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8546+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8547 8548+------------------------------------------------------------------------------------+-------------------+----------------------------------+ 8549|:warning:`warning:` |nbsp| :diagtext:`parameter kind mismatch; parameter is` |nbsp| |+-----------------+| |nbsp| :diagtext:`parameter pack`| 8550| ||:diagtext:`not a`|| | 8551| |+-----------------+| | 8552| ||:diagtext:`a` || | 8553| |+-----------------+| | 8554+------------------------------------------------------------------------------------+-------------------+----------------------------------+ 8555 8556+--------------------------------------------------------------------------------------------------------------------------------------------------+ 8557|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`| 8558+--------------------------------------------------------------------------------------------------------------------------------------------------+ 8559 8560+-----------------------------------------------------------------------------------------------------------------------------------------+ 8561|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple translation units`| 8562+-----------------------------------------------------------------------------------------------------------------------------------------+ 8563 8564+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8565|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 8566+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8567 8568 8569-Wold-style-cast 8570---------------- 8571**Diagnostic text:** 8572 8573+------------------------------------------------------------+ 8574|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`| 8575+------------------------------------------------------------+ 8576 8577 8578-Wold-style-definition 8579---------------------- 8580This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8581 8582-Wopencl-unsupported-rgba 8583------------------------- 8584This diagnostic is enabled by default. 8585 8586**Diagnostic text:** 8587 8588+----------------------------------------------------------------------------------------------------------------------------+ 8589|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`| 8590+----------------------------------------------------------------------------------------------------------------------------+ 8591 8592 8593-Wopenmp-clauses 8594---------------- 8595This diagnostic is enabled by default. 8596 8597**Diagnostic text:** 8598 8599+-------------------------------------------------------------------------------------------------------------------------+ 8600|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`| 8601+-------------------------------------------------------------------------------------------------------------------------+ 8602 8603+----------------------------------------------------------------------------------------------------------------------------------------------------+ 8604|:warning:`warning:` |nbsp| :diagtext:`allocator with the 'thread' trait access has unspecified behavior on '`:placeholder:`A`:diagtext:`' directive`| 8605+----------------------------------------------------------------------------------------------------------------------------------------------------+ 8606 8607+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 8608|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`| 8609| || || | 8610| |+-------------------------------------------------+| | 8611| ||:diagtext:`and other variables in clause` |nbsp| || | 8612| |+-------------------------------------------------+| | 8613+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 8614 8615+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+ 8616|:warning:`warning:` |nbsp| :diagtext:`allocate directive specifies` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`allocator while previously used` |nbsp| |+--------------------------------------------+| 8617| ||:diagtext:`default` || ||:diagtext:`default` || 8618| |+--------------------------------------------+| |+--------------------------------------------+| 8619| ||+------------------------------------------+|| ||+------------------------------------------+|| 8620| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`||| |||:diagtext:`'`:placeholder:`D`:diagtext:`'`||| 8621| ||+------------------------------------------+|| ||+------------------------------------------+|| 8622| |+--------------------------------------------+| |+--------------------------------------------+| 8623+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+ 8624 8625 8626-Wopenmp-loop-form 8627------------------ 8628This diagnostic is enabled by default. 8629 8630**Diagnostic text:** 8631 8632+-----------------------------------------------------------------------------------------------------------------------------------------+ 8633|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`| 8634+-----------------------------------------------------------------------------------------------------------------------------------------+ 8635 8636+-----------------------------------------------------------------------------------------------------------------------------+ 8637|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`| 8638+-----------------------------------------------------------------------------------------------------------------------------+ 8639 8640 8641-Wopenmp-target 8642--------------- 8643This diagnostic is enabled by default. 8644 8645**Diagnostic text:** 8646 8647+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8648|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`| 8649+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8650 8651+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8652|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`| 8653+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8654 8655+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8656|:warning:`warning:` |nbsp| :diagtext:`Non-trivial type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is mapped, only trivial types are guaranteed to be mapped correctly`| 8657+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8658 8659+-----------------------------------------------------------------------------------------------+ 8660|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`| 8661+-----------------------------------------------------------------------------------------------+ 8662 8663 8664-Woption-ignored 8665---------------- 8666This diagnostic is enabled by default. 8667 8668**Diagnostic text:** 8669 8670+------------------------------------------------------------------------------------------------------------------------------------------+ 8671|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`| 8672+------------------------------------------------------------------------------------------------------------------------------------------+ 8673 8674+-------------------------------------------------------------------------------------------------------------------------------+ 8675|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`| 8676+-------------------------------------------------------------------------------------------------------------------------------+ 8677 8678+----------------------------------------------------------------------------------------------------------------------------+ 8679|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`| 8680+----------------------------------------------------------------------------------------------------------------------------+ 8681 8682+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 8683|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 8684| || || | 8685| |+-----------------------------------------+| | 8686| ||:diagtext:`the implicit usage of` |nbsp| || | 8687| |+-----------------------------------------+| | 8688+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 8689 8690+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 8691|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`| 8692| ||:diagtext:`implicit usage of`|| | 8693| |+-----------------------------+| | 8694| || || | 8695| |+-----------------------------+| | 8696+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 8697 8698+----------------------------------------------------------------------------------------------+ 8699|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`| 8700+----------------------------------------------------------------------------------------------+ 8701 8702 8703-Wordered-compare-function-pointers 8704----------------------------------- 8705This diagnostic is enabled by default. 8706 8707**Diagnostic text:** 8708 8709+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8710|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 8711+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8712 8713 8714-Wout-of-line-declaration 8715------------------------- 8716This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error. 8717 8718**Diagnostic text:** 8719 8720+-------------------------------------------------------------------------------------------+ 8721|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`| 8722+-------------------------------------------------------------------------------------------+ 8723 8724 8725-Wout-of-scope-function 8726----------------------- 8727This diagnostic is enabled by default. 8728 8729**Diagnostic text:** 8730 8731+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 8732|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+| 8733| || || 8734| |+-------------------------------------------------------------------------------------+| 8735| || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`|| 8736| |+-------------------------------------------------------------------------------------+| 8737+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 8738 8739 8740-Wover-aligned 8741-------------- 8742**Diagnostic text:** 8743 8744+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8745|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`| 8746+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8747 8748 8749-Woverflow 8750---------- 8751This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8752 8753-Woverlength-strings 8754-------------------- 8755**Diagnostic text:** 8756 8757+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 8758|:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`| 8759| ||:diagtext:`C90` || | 8760| |+-------------------+| | 8761| ||:diagtext:`ISO C99`|| | 8762| |+-------------------+| | 8763| ||:diagtext:`C++` || | 8764| |+-------------------+| | 8765+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 8766 8767 8768-Woverloaded-shift-op-parentheses 8769--------------------------------- 8770This diagnostic is enabled by default. 8771 8772**Diagnostic text:** 8773 8774+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 8775|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`| 8776| ||:diagtext:`>>`|| | 8777| |+--------------+| | 8778| ||:diagtext:`<<`|| | 8779| |+--------------+| | 8780+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 8781 8782 8783-Woverloaded-virtual 8784-------------------- 8785**Diagnostic text:** 8786 8787+-----------------------------------------------------------------------------------------------+-----------------------+ 8788|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+| 8789| ||:diagtext:`function` || 8790| |+---------------------+| 8791| ||:diagtext:`functions`|| 8792| |+---------------------+| 8793+-----------------------------------------------------------------------------------------------+-----------------------+ 8794 8795 8796-Woverride-init 8797--------------- 8798Synonym for `-Winitializer-overrides`_. 8799 8800 8801-Woverride-module 8802----------------- 8803This diagnostic is enabled by default. 8804 8805**Diagnostic text:** 8806 8807+-------------------------------------------------------------------------------------------------------+ 8808|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`| 8809+-------------------------------------------------------------------------------------------------------+ 8810 8811 8812-Woverriding-method-mismatch 8813---------------------------- 8814**Diagnostic text:** 8815 8816+-------------------------------------------------------------------------------------------------------------------------------------------+ 8817|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`| 8818+-------------------------------------------------------------------------------------------------------------------------------------------+ 8819 8820+------------------------------------------------------------------------------------------------------------+ 8821|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`| 8822+------------------------------------------------------------------------------------------------------------+ 8823 8824+----------------------------------------------------------------------------------------------------------------------------------------+ 8825|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`| 8826+----------------------------------------------------------------------------------------------------------------------------------------+ 8827 8828+--------------------------------------------------------------------------------------------------------+ 8829|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`| 8830+--------------------------------------------------------------------------------------------------------+ 8831 8832+--------------------------------------------------------------------------------------------------------+ 8833|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`| 8834+--------------------------------------------------------------------------------------------------------+ 8835 8836+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8837|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 8838+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8839 8840+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8841|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 8842+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8843 8844 8845-Woverriding-t-option 8846--------------------- 8847This diagnostic is enabled by default. 8848 8849**Diagnostic text:** 8850 8851+---------------------------------------------------------------------------------------------------------------------------+ 8852|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`| 8853+---------------------------------------------------------------------------------------------------------------------------+ 8854 8855 8856-Wpacked 8857-------- 8858**Diagnostic text:** 8859 8860+--------------------------------------------------------------------------------------------------+ 8861|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`| 8862+--------------------------------------------------------------------------------------------------+ 8863 8864 8865-Wpadded 8866-------- 8867**Diagnostic text:** 8868 8869+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 8870|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`| 8871| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 8872| |+---------------------+| |+----------------+|+-------------+| | 8873| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 8874| |+---------------------+| |+----------------+|+-------------+| | 8875| ||:diagtext:`class` || | | | | 8876| |+---------------------+| | | | | 8877+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 8878 8879+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 8880|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`| 8881| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 8882| |+---------------------+| |+----------------+|+-------------+| | 8883| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 8884| |+---------------------+| |+----------------+|+-------------+| | 8885| ||:diagtext:`class` || | | | | 8886| |+---------------------+| | | | | 8887+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 8888 8889+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 8890|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`| 8891| ||:diagtext:`byte`||| || | 8892| |+----------------+|+-------------+| | 8893| ||:diagtext:`bit` |||:diagtext:`s`|| | 8894| |+----------------+|+-------------+| | 8895+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 8896 8897 8898-Wparentheses 8899------------- 8900This diagnostic is enabled by default. 8901 8902Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_. 8903 8904**Diagnostic text:** 8905 8906+-----------------------------------------------------------------------------------------------------------+ 8907|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 8908+-----------------------------------------------------------------------------------------------------------+ 8909 8910+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8911|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`| 8912+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8913 8914+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8915|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`| 8916+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8917 8918 8919-Wparentheses-equality 8920---------------------- 8921This diagnostic is enabled by default. 8922 8923**Diagnostic text:** 8924 8925+--------------------------------------------------------------------------------------+ 8926|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`| 8927+--------------------------------------------------------------------------------------+ 8928 8929 8930-Wpartial-availability 8931---------------------- 8932Synonym for `-Wunguarded-availability`_. 8933 8934 8935-Rpass 8936------ 8937**Diagnostic text:** 8938 8939The text of this diagnostic is not controlled by Clang. 8940 8941 8942-Rpass-analysis 8943--------------- 8944**Diagnostic text:** 8945 8946The text of this diagnostic is not controlled by Clang. 8947 8948+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8949|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`| 8950+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8951 8952+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8953|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`| 8954+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8955 8956 8957-Wpass-failed 8958------------- 8959This diagnostic is enabled by default. 8960 8961**Diagnostic text:** 8962 8963The text of this diagnostic is not controlled by Clang. 8964 8965 8966-Rpass-missed 8967------------- 8968**Diagnostic text:** 8969 8970The text of this diagnostic is not controlled by Clang. 8971 8972 8973-Wpch-date-time 8974--------------- 8975This diagnostic is enabled by default. 8976 8977**Diagnostic text:** 8978 8979+---------------------------+--------------------------------+-----------------------------------------------------+ 8980|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`| 8981| ||:diagtext:`precompiled header`|| | 8982| |+------------------------------+| | 8983| ||:diagtext:`module` || | 8984| |+------------------------------+| | 8985+---------------------------+--------------------------------+-----------------------------------------------------+ 8986 8987 8988-Wpedantic 8989---------- 8990Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_. 8991 8992**Diagnostic text:** 8993 8994+-----------------------------------------------------------------------------------------------------+ 8995|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 8996+-----------------------------------------------------------------------------------------------------+ 8997 8998+------------------------------------------------------------------------+ 8999|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 9000+------------------------------------------------------------------------+ 9001 9002+--------------------------------------------------------------------------+ 9003|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 9004+--------------------------------------------------------------------------+ 9005 9006+--------------------------------------------------------------------------------+ 9007|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 9008+--------------------------------------------------------------------------------+ 9009 9010+--------------------------------------------------------------------------------------------+ 9011|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 9012+--------------------------------------------------------------------------------------------+ 9013 9014+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 9015|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 9016| ||:diagtext:`private` || 9017| |+---------------------+| 9018| ||:diagtext:`protected`|| 9019| |+---------------------+| 9020+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 9021 9022+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 9023|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`| 9024| ||:diagtext:`struct`|| | 9025| |+------------------+| | 9026| ||:diagtext:`union` || | 9027| |+------------------+| | 9028+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 9029 9030+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 9031|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 9032| ||:diagtext:`copying variable` || | 9033| |+----------------------------------------------------+| | 9034| ||:diagtext:`copying parameter` || | 9035| |+----------------------------------------------------+| | 9036| ||:diagtext:`returning object` || | 9037| |+----------------------------------------------------+| | 9038| ||:diagtext:`initializing statement expression result`|| | 9039| |+----------------------------------------------------+| | 9040| ||:diagtext:`throwing object` || | 9041| |+----------------------------------------------------+| | 9042| ||:diagtext:`copying member subobject` || | 9043| |+----------------------------------------------------+| | 9044| ||:diagtext:`copying array element` || | 9045| |+----------------------------------------------------+| | 9046| ||:diagtext:`allocating object` || | 9047| |+----------------------------------------------------+| | 9048| ||:diagtext:`copying temporary` || | 9049| |+----------------------------------------------------+| | 9050| ||:diagtext:`initializing base subobject` || | 9051| |+----------------------------------------------------+| | 9052| ||:diagtext:`initializing vector element` || | 9053| |+----------------------------------------------------+| | 9054| ||:diagtext:`capturing value` || | 9055| |+----------------------------------------------------+| | 9056+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 9057 9058+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9059|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 9060+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9061 9062+--------------------------------------------------------------------------------------------------------------------------------------+ 9063|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`| 9064+--------------------------------------------------------------------------------------------------------------------------------------+ 9065 9066+--------------------------------------------------------------------------------------------------------------------------+ 9067|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| 9068+--------------------------------------------------------------------------------------------------------------------------+ 9069 9070+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9071|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`| 9072+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9073 9074+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 9075|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 9076| ||:diagtext:`function`|| | 9077| |+--------------------+| | 9078| ||:diagtext:`variable`|| | 9079| |+--------------------+| | 9080+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 9081 9082+---------------------------------------------------------------------------------------+ 9083|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`| 9084+---------------------------------------------------------------------------------------+ 9085 9086+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 9087|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`| 9088| ||:diagtext:`small`|| | 9089| |+-----------------+| | 9090| ||:diagtext:`large`|| | 9091| |+-----------------+| | 9092+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 9093 9094+--------------------------------------------------------------------------------------------------+ 9095|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`| 9096+--------------------------------------------------------------------------------------------------+ 9097 9098+-----------------------------------------------------------------------------------------------+ 9099|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 9100+-----------------------------------------------------------------------------------------------+ 9101 9102+-------------------------------------------------------------------------------+ 9103|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 9104+-------------------------------------------------------------------------------+ 9105 9106+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9107|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 9108| ||:diagtext:`sizeof` || | 9109| |+---------------------------------------------------+| | 9110| ||:diagtext:`alignof` || | 9111| |+---------------------------------------------------+| | 9112| ||:diagtext:`vec\_step` || | 9113| |+---------------------------------------------------+| | 9114| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9115| |+---------------------------------------------------+| | 9116| ||:diagtext:`\_\_alignof` || | 9117| |+---------------------------------------------------+| | 9118+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9119 9120+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9121|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 9122| ||:diagtext:`sizeof` || | 9123| |+---------------------------------------------------+| | 9124| ||:diagtext:`alignof` || | 9125| |+---------------------------------------------------+| | 9126| ||:diagtext:`vec\_step` || | 9127| |+---------------------------------------------------+| | 9128| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9129| |+---------------------------------------------------+| | 9130| ||:diagtext:`\_\_alignof` || | 9131| |+---------------------------------------------------+| | 9132+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9133 9134+-------------------------------------------------------------------------------------------+ 9135|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`| 9136+-------------------------------------------------------------------------------------------+ 9137 9138+----------------------------------------------------------------------------------------+ 9139|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 9140+----------------------------------------------------------------------------------------+ 9141 9142+-------------------------------------------------------------------------------------------------------+ 9143|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`| 9144+-------------------------------------------------------------------------------------------------------+ 9145 9146+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9147|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`| 9148+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9149 9150+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9151|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 9152+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9153 9154+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9155|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 9156| || |nbsp| :diagtext:`a`|| || || | 9157| |+---------------------+| |+-------------+| | 9158| || || ||:diagtext:`s`|| | 9159| |+---------------------+| |+-------------+| | 9160+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9161 9162+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9163|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 9164| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 9165| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 9166| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 9167| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 9168| | | | | | | | | ||+-----------------------------------------------+|| | 9169| | | | | | | | | |+-------------------------------------------------+| | 9170+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9171 9172+-----------------------------------------------------------------------------------------------------------------------+ 9173|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`| 9174+-----------------------------------------------------------------------------------------------------------------------+ 9175 9176+--------------------------------------------------------------------------------------------------------------------+ 9177|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`| 9178+--------------------------------------------------------------------------------------------------------------------+ 9179 9180+------------------------------------------------------------------------------------------------------------+ 9181|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`| 9182+------------------------------------------------------------------------------------------------------------+ 9183 9184+-------------------------------------------------------------------------------------------------------------+ 9185|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`| 9186+-------------------------------------------------------------------------------------------------------------+ 9187 9188+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 9189|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 9190| ||:diagtext:`integral` || | 9191| |+-----------------------+| | 9192| ||:diagtext:`enumeration`|| | 9193| |+-----------------------+| | 9194+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 9195 9196+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 9197|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`| 9198| ||:diagtext:`assigning to different types` || | 9199| |+--------------------------------------------------------------+| | 9200| ||:diagtext:`passing to parameter of different type` || | 9201| |+--------------------------------------------------------------+| | 9202| ||:diagtext:`returning from function with different return type`|| | 9203| |+--------------------------------------------------------------+| | 9204| ||:diagtext:`converting between types` || | 9205| |+--------------------------------------------------------------+| | 9206| ||:diagtext:`initializing with expression of different type` || | 9207| |+--------------------------------------------------------------+| | 9208| ||:diagtext:`sending to parameter of different type` || | 9209| |+--------------------------------------------------------------+| | 9210| ||:diagtext:`casting between types` || | 9211| |+--------------------------------------------------------------+| | 9212+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 9213 9214+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9215|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 9216+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9217 9218+--------------------------------------------------------------------------------------------------+ 9219|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`| 9220+--------------------------------------------------------------------------------------------------+ 9221 9222+-------------------------------------------------------------------------------------------------------------------------------------+ 9223|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`| 9224+-------------------------------------------------------------------------------------------------------------------------------------+ 9225 9226+---------------------------------------------------------------------------------------------------------------------------+ 9227|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 9228+---------------------------------------------------------------------------------------------------------------------------+ 9229 9230+---------------------------------------------------------------------------------------------------------------------------+ 9231|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 9232+---------------------------------------------------------------------------------------------------------------------------+ 9233 9234+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 9235|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 9236| ||:diagtext:`struct`|| | 9237| |+------------------+| | 9238| ||:diagtext:`union` || | 9239| |+------------------+| | 9240+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 9241 9242+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 9243|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 9244| ||:diagtext:`type` || | 9245| |+---------------------------+| | 9246| ||:diagtext:`underlying type`|| | 9247| |+---------------------------+| | 9248+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 9249 9250+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 9251|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`| 9252| ||:diagtext:`function`|| | 9253| |+--------------------+| | 9254| ||:diagtext:`method` || | 9255| |+--------------------+| | 9256| ||:diagtext:`block` || | 9257| |+--------------------+| | 9258+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 9259 9260+--------------------------------------------------------------------------------------------------+ 9261|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`| 9262+--------------------------------------------------------------------------------------------------+ 9263 9264+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 9265|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 9266| ||:diagtext:`qualifier in` |nbsp| || || || | 9267| |+--------------------------------+| |+---------------------+| | 9268| ||:diagtext:`static` |nbsp| || || || | 9269| |+--------------------------------+| |+---------------------+| | 9270| || || ||:diagtext:`'\[\*\] '`|| | 9271| |+--------------------------------+| |+---------------------+| | 9272+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 9273 9274+--------------------------------------------------------+------------------------------------------------+ 9275|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 9276| ||:diagtext:`outside of a function` || 9277| |+----------------------------------------------+| 9278| ||+--------------------------------------------+|| 9279| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 9280| ||+--------------------------------------------+|| 9281| |+----------------------------------------------+| 9282| ||:diagtext:`inside instance variable list` || 9283| |+----------------------------------------------+| 9284| ||:diagtext:`after member function definition` || 9285| |+----------------------------------------------+| 9286+--------------------------------------------------------+------------------------------------------------+ 9287 9288+-----------------------------------------------------------------------------------------+ 9289|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`| 9290+-----------------------------------------------------------------------------------------+ 9291 9292+----------------------------------------------------------------------------------------+ 9293|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`| 9294+----------------------------------------------------------------------------------------+ 9295 9296+-------------------------------------------------------------------------------------------------+ 9297|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 9298+-------------------------------------------------------------------------------------------------+ 9299 9300+-----------------------------------------------------------------------------------+ 9301|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 9302+-----------------------------------------------------------------------------------+ 9303 9304+-------------------------------------------------------------------------------------------------------+ 9305|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 9306+-------------------------------------------------------------------------------------------------------+ 9307 9308+--------------------------------------------------------------------------------------------------+ 9309|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 9310+--------------------------------------------------------------------------------------------------+ 9311 9312+-----------------------------------------------------------------------------------------------------------+ 9313|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 9314+-----------------------------------------------------------------------------------------------------------+ 9315 9316+-----------------------------------------------------------------------+ 9317|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 9318+-----------------------------------------------------------------------+ 9319 9320+------------------------------------------------------------------------------------------------+ 9321|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 9322+------------------------------------------------------------------------------------------------+ 9323 9324+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 9325|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 9326| ||:diagtext:`a namespace` || | 9327| |+-------------------------+| | 9328| ||:diagtext:`an enumerator`|| | 9329| |+-------------------------+| | 9330+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 9331 9332+-----------------------------------------------------------------------------+ 9333|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 9334+-----------------------------------------------------------------------------+ 9335 9336+------------------------------------------------------------+ 9337|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 9338+------------------------------------------------------------+ 9339 9340+-----------------------------------------------------------------------------------+ 9341|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 9342+-----------------------------------------------------------------------------------+ 9343 9344+----------------------------------------------------------------+ 9345|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 9346+----------------------------------------------------------------+ 9347 9348+------------------------------------------------------------------------------------------------------------+ 9349|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`| 9350+------------------------------------------------------------------------------------------------------------+ 9351 9352+---------------------------------------------------------------------------------------+ 9353|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 9354+---------------------------------------------------------------------------------------+ 9355 9356+----------------------------------------------------------------------------------------+ 9357|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 9358+----------------------------------------------------------------------------------------+ 9359 9360+---------------------------------------------------------------------+ 9361|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`| 9362+---------------------------------------------------------------------+ 9363 9364+-----------------------------------------------------------------------+ 9365|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`| 9366+-----------------------------------------------------------------------+ 9367 9368+-----------------------------------------------------------------------+ 9369|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`| 9370+-----------------------------------------------------------------------+ 9371 9372+----------------------------------------------------------------------------------------------------------------+ 9373|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`| 9374+----------------------------------------------------------------------------------------------------------------+ 9375 9376+------------------------------------------------------------------------+ 9377|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 9378+------------------------------------------------------------------------+ 9379 9380+--------------------------------------------------------------------------------+ 9381|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 9382+--------------------------------------------------------------------------------+ 9383 9384+------------------------------------------------------------------------------+ 9385|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 9386+------------------------------------------------------------------------------+ 9387 9388+--------------------------------------------------------------------------------------+ 9389|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a Clang extension in OpenCL`| 9390+--------------------------------------------------------------------------------------+ 9391 9392+----------------------------------------------------------------------------------------------------------------------------------------+ 9393|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`| 9394+----------------------------------------------------------------------------------------------------------------------------------------+ 9395 9396+-------------------------------------------------------------------------------------------------+ 9397|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 9398+-------------------------------------------------------------------------------------------------+ 9399 9400 9401-Wpedantic-core-features 9402------------------------ 9403**Diagnostic text:** 9404 9405+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9406|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`| 9407+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9408 9409 9410-Wpessimizing-move 9411------------------ 9412**Diagnostic text:** 9413 9414+--------------------------------------------------------------------------------------+ 9415|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`| 9416+--------------------------------------------------------------------------------------+ 9417 9418+--------------------------------------------------------------------------------------------------------+ 9419|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`| 9420+--------------------------------------------------------------------------------------------------------+ 9421 9422 9423-Wpointer-arith 9424--------------- 9425Some of the diagnostics controlled by this flag are enabled by default. 9426 9427**Diagnostic text:** 9428 9429+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9430|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 9431| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 9432| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 9433| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 9434| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 9435| | | | | | | | | ||+-----------------------------------------------+|| | 9436| | | | | | | | | |+-------------------------------------------------+| | 9437+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 9438 9439+----------------------------------------------------------------------------------------+ 9440|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 9441+----------------------------------------------------------------------------------------+ 9442 9443+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9444|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 9445| || |nbsp| :diagtext:`a`|| || || | 9446| |+---------------------+| |+-------------+| | 9447| || || ||:diagtext:`s`|| | 9448| |+---------------------+| |+-------------+| | 9449+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 9450 9451+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9452|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 9453| ||:diagtext:`sizeof` || | 9454| |+---------------------------------------------------+| | 9455| ||:diagtext:`alignof` || | 9456| |+---------------------------------------------------+| | 9457| ||:diagtext:`vec\_step` || | 9458| |+---------------------------------------------------+| | 9459| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9460| |+---------------------------------------------------+| | 9461| ||:diagtext:`\_\_alignof` || | 9462| |+---------------------------------------------------+| | 9463+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 9464 9465+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9466|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 9467| ||:diagtext:`sizeof` || | 9468| |+---------------------------------------------------+| | 9469| ||:diagtext:`alignof` || | 9470| |+---------------------------------------------------+| | 9471| ||:diagtext:`vec\_step` || | 9472| |+---------------------------------------------------+| | 9473| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 9474| |+---------------------------------------------------+| | 9475| ||:diagtext:`\_\_alignof` || | 9476| |+---------------------------------------------------+| | 9477+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 9478 9479+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9480|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`| 9481+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 9482 9483 9484-Wpointer-bool-conversion 9485------------------------- 9486This diagnostic is enabled by default. 9487 9488**Diagnostic text:** 9489 9490+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 9491|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`| 9492| ||:diagtext:`function call`|| | 9493| |+-------------------------+| | 9494| ||:diagtext:`parameter` || | 9495| |+-------------------------+| | 9496+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 9497 9498+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 9499|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`| 9500| || || | 9501| |+----------------------------+| | 9502| || |nbsp| :diagtext:`function`|| | 9503| |+----------------------------+| | 9504| || |nbsp| :diagtext:`array` || | 9505| |+----------------------------+| | 9506+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 9507 9508 9509-Wpointer-integer-compare 9510------------------------- 9511This diagnostic is enabled by default. 9512 9513**Diagnostic text:** 9514 9515+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9516|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 9517+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9518 9519 9520-Wpointer-sign 9521-------------- 9522This diagnostic is enabled by default. 9523 9524**Diagnostic text:** 9525 9526+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 9527|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`| 9528| ||:diagtext:`assigning to different types` || | 9529| |+--------------------------------------------------------------+| | 9530| ||:diagtext:`passing to parameter of different type` || | 9531| |+--------------------------------------------------------------+| | 9532| ||:diagtext:`returning from function with different return type`|| | 9533| |+--------------------------------------------------------------+| | 9534| ||:diagtext:`converting between types` || | 9535| |+--------------------------------------------------------------+| | 9536| ||:diagtext:`initializing with expression of different type` || | 9537| |+--------------------------------------------------------------+| | 9538| ||:diagtext:`sending to parameter of different type` || | 9539| |+--------------------------------------------------------------+| | 9540| ||:diagtext:`casting between types` || | 9541| |+--------------------------------------------------------------+| | 9542+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 9543 9544 9545-Wpointer-to-int-cast 9546--------------------- 9547This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9548 9549-Wpointer-type-mismatch 9550----------------------- 9551This diagnostic is enabled by default. 9552 9553**Diagnostic text:** 9554 9555+------------------------------------------------------------+ 9556|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`| 9557+------------------------------------------------------------+ 9558 9559 9560-Wpotentially-evaluated-expression 9561---------------------------------- 9562This diagnostic is enabled by default. 9563 9564**Diagnostic text:** 9565 9566+----------------------------------------------------------------------------------------------------------------------------------+ 9567|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`| 9568+----------------------------------------------------------------------------------------------------------------------------------+ 9569 9570 9571-Wpragma-clang-attribute 9572------------------------ 9573This diagnostic is enabled by default. 9574 9575**Diagnostic text:** 9576 9577+-------------------------------------------------------------------------------------------------------------------------------------------+ 9578|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`| 9579+-------------------------------------------------------------------------------------------------------------------------------------------+ 9580 9581 9582-Wpragma-once-outside-header 9583---------------------------- 9584This diagnostic is enabled by default. 9585 9586**Diagnostic text:** 9587 9588+----------------------------------------------------------------+ 9589|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`| 9590+----------------------------------------------------------------+ 9591 9592 9593-Wpragma-pack 9594------------- 9595Some of the diagnostics controlled by this flag are enabled by default. 9596 9597Also controls `-Wpragma-pack-suspicious-include`_. 9598 9599**Diagnostic text:** 9600 9601+----------------------------------------------------------------------------------------------------------------+ 9602|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`| 9603+----------------------------------------------------------------------------------------------------------------+ 9604 9605+---------------------------------------------------------------------------------------------+ 9606|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`| 9607+---------------------------------------------------------------------------------------------+ 9608 9609 9610-Wpragma-pack-suspicious-include 9611-------------------------------- 9612**Diagnostic text:** 9613 9614+-------------------------------------------------------------------------------------------------------------------------------------------+ 9615|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`| 9616+-------------------------------------------------------------------------------------------------------------------------------------------+ 9617 9618 9619-Wpragma-system-header-outside-header 9620------------------------------------- 9621This diagnostic is enabled by default. 9622 9623**Diagnostic text:** 9624 9625+----------------------------------------------------------------------------------+ 9626|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`| 9627+----------------------------------------------------------------------------------+ 9628 9629 9630-Wpragmas 9631--------- 9632Some of the diagnostics controlled by this flag are enabled by default. 9633 9634Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_. 9635 9636**Diagnostic text:** 9637 9638+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 9639|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`| 9640| ||:diagtext:`function`|| | 9641| |+--------------------+| | 9642| ||:diagtext:`variable`|| | 9643| |+--------------------+| | 9644+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 9645 9646 9647-Wpredefined-identifier-outside-function 9648---------------------------------------- 9649This diagnostic is enabled by default. 9650 9651**Diagnostic text:** 9652 9653+------------------------------------------------------------------------------------------+ 9654|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`| 9655+------------------------------------------------------------------------------------------+ 9656 9657 9658-Wprivate-extern 9659---------------- 9660This diagnostic is enabled by default. 9661 9662**Diagnostic text:** 9663 9664+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9665|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`| 9666+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9667 9668 9669-Wprivate-header 9670---------------- 9671This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error. 9672 9673**Diagnostic text:** 9674 9675+----------------------------------------------------------------------------------------------------------------+ 9676|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`| 9677+----------------------------------------------------------------------------------------------------------------+ 9678 9679 9680-Wprivate-module 9681---------------- 9682This diagnostic is enabled by default. 9683 9684**Diagnostic text:** 9685 9686+----------------------------------------------------------------------------------------------------------------+ 9687|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`| 9688+----------------------------------------------------------------------------------------------------------------+ 9689 9690+----------------------------------------------------------------------------------------------------------------------------------------+ 9691|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`| 9692+----------------------------------------------------------------------------------------------------------------------------------------+ 9693 9694+----------------------------------------------------------------------------------------------------------------------------------+ 9695|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`| 9696+----------------------------------------------------------------------------------------------------------------------------------+ 9697 9698+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9699|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`| 9700+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9701 9702 9703-Wprofile-instr-missing 9704----------------------- 9705**Diagnostic text:** 9706 9707+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 9708|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`no data`| 9709| || || ||:diagtext:`has` || | 9710| |+-------------+| |+----------------+| | 9711| ||:diagtext:`s`|| ||:diagtext:`have`|| | 9712| |+-------------+| |+----------------+| | 9713+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 9714 9715 9716-Wprofile-instr-out-of-date 9717--------------------------- 9718This diagnostic is enabled by default. 9719 9720**Diagnostic text:** 9721 9722+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 9723|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`| 9724| || || ||:diagtext:`has` || | 9725| |+-------------+| |+----------------+| | 9726| ||:diagtext:`s`|| ||:diagtext:`have`|| | 9727| |+-------------+| |+----------------+| | 9728+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 9729 9730 9731-Wprofile-instr-unprofiled 9732-------------------------- 9733This diagnostic is enabled by default. 9734 9735**Diagnostic text:** 9736 9737+--------------------------------------------------------------------------------------------------------+ 9738|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`| 9739+--------------------------------------------------------------------------------------------------------+ 9740 9741 9742-Wproperty-access-dot-syntax 9743---------------------------- 9744This diagnostic is enabled by default. 9745 9746**Diagnostic text:** 9747 9748+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9749|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`| 9750+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9751 9752 9753-Wproperty-attribute-mismatch 9754----------------------------- 9755This diagnostic is enabled by default. 9756 9757**Diagnostic text:** 9758 9759+-------------------------------------------------------------------------------------------------------------+ 9760|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`| 9761+-------------------------------------------------------------------------------------------------------------+ 9762 9763+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9764|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`| 9765+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9766 9767+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9768|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`| 9769+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9770 9771+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9772|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`| 9773+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9774 9775 9776-Wprotocol 9777---------- 9778This diagnostic is enabled by default. 9779 9780**Diagnostic text:** 9781 9782+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9783|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`| 9784+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9785 9786 9787-Wprotocol-property-synthesis-ambiguity 9788--------------------------------------- 9789This diagnostic is enabled by default. 9790 9791**Diagnostic text:** 9792 9793+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 9794|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`| 9795| ||+-------------------------------------------+ || | 9796| |||:diagtext:`of type` |nbsp| :placeholder:`B`| || | 9797| ||+-------------------------------------------+ || | 9798| |+--------------------------------------------------------------+| | 9799| ||+---------------------------------------------------------+ || | 9800| |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || | 9801| ||+---------------------------------------------------------+ || | 9802| |+--------------------------------------------------------------+| | 9803| ||+------------------------------------------------------------+|| | 9804| |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| | 9805| ||+------------------------------------------------------------+|| | 9806| |+--------------------------------------------------------------+| | 9807| ||+-----------------------------------------------+ || | 9808| |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || | 9809| ||+-----------------------------------------------+ || | 9810| |+--------------------------------------------------------------+| | 9811| ||+-----------------------------------------------+ || | 9812| |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || | 9813| ||+-----------------------------------------------+ || | 9814| |+--------------------------------------------------------------+| | 9815+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 9816 9817 9818-Wqualified-void-return-type 9819---------------------------- 9820This diagnostic is enabled by default. 9821 9822**Diagnostic text:** 9823 9824+---------------------------------------------------------------------------------------------------------+ 9825|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`| 9826+---------------------------------------------------------------------------------------------------------+ 9827 9828 9829-Wquoted-include-in-framework-header 9830------------------------------------ 9831**Diagnostic text:** 9832 9833+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9834|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`| 9835+-------------------------------------------------------------------------------------------------------------------------------------------------+ 9836 9837 9838-Wrange-loop-analysis 9839--------------------- 9840**Diagnostic text:** 9841 9842+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9843|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`| 9844+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9845 9846+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9847|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`| 9848+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9849 9850+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9851|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`| 9852+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9853 9854 9855-Wreadonly-iboutlet-property 9856---------------------------- 9857This diagnostic is enabled by default. 9858 9859**Diagnostic text:** 9860 9861+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9862|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`| 9863+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9864 9865 9866-Wreceiver-expr 9867--------------- 9868This diagnostic is enabled by default. 9869 9870**Diagnostic text:** 9871 9872+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9873|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`| 9874+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9875 9876 9877-Wreceiver-forward-class 9878------------------------ 9879Some of the diagnostics controlled by this flag are enabled by default. 9880 9881**Diagnostic text:** 9882 9883+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9884|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`| 9885+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 9886 9887+---------------------------------------------------------------------------------------------------------------------------------------------+ 9888|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`| 9889+---------------------------------------------------------------------------------------------------------------------------------------------+ 9890 9891 9892-Wredeclared-class-member 9893------------------------- 9894This diagnostic is enabled by default. 9895 9896**Diagnostic text:** 9897 9898+------------------------------------------------------------------------+ 9899|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`| 9900+------------------------------------------------------------------------+ 9901 9902 9903-Wredundant-decls 9904----------------- 9905This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9906 9907-Wredundant-move 9908---------------- 9909**Diagnostic text:** 9910 9911+-------------------------------------------------------------------------+ 9912|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`| 9913+-------------------------------------------------------------------------+ 9914 9915 9916-Wredundant-parens 9917------------------ 9918**Diagnostic text:** 9919 9920+-----------------------------------------------------------------------------------+ 9921|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`| 9922+-----------------------------------------------------------------------------------+ 9923 9924 9925-Wregister 9926---------- 9927This diagnostic is enabled by default. 9928 9929Also controls `-Wdeprecated-register`_. 9930 9931**Diagnostic text:** 9932 9933+----------------------------------------------------------------------------------------------+ 9934|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`| 9935+----------------------------------------------------------------------------------------------+ 9936 9937 9938-Wreinterpret-base-class 9939------------------------ 9940This diagnostic is enabled by default. 9941 9942**Diagnostic text:** 9943 9944+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 9945|:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`| 9946| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || | 9947| |+----------------+| |+----------------+| |+-----------------------------------+| | 9948| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| | 9949| |+----------------+| |+----------------+| |+-----------------------------------+| | 9950+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 9951 9952 9953-Rremark-backend-plugin 9954----------------------- 9955**Diagnostic text:** 9956 9957The text of this diagnostic is not controlled by Clang. 9958 9959 9960-Wreorder 9961--------- 9962**Diagnostic text:** 9963 9964+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 9965|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`| 9966| ||:diagtext:`field` || ||:diagtext:`field`|| | 9967| |+----------------------+| |+-----------------+| | 9968| ||:diagtext:`base class`|| ||:diagtext:`base` || | 9969| |+----------------------+| |+-----------------+| | 9970+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 9971 9972 9973-Wrequires-super-attribute 9974-------------------------- 9975This diagnostic is enabled by default. 9976 9977**Diagnostic text:** 9978 9979+-----------------------------------------------------------------------------------------------------+----------------------------------+ 9980|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+| 9981| ||:diagtext:`methods in protocols`|| 9982| |+--------------------------------+| 9983| ||:diagtext:`dealloc` || 9984| |+--------------------------------+| 9985+-----------------------------------------------------------------------------------------------------+----------------------------------+ 9986 9987 9988-Wreserved-id-macro 9989------------------- 9990**Diagnostic text:** 9991 9992+--------------------------------------------------------------------------+ 9993|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`| 9994+--------------------------------------------------------------------------+ 9995 9996 9997-Wreserved-user-defined-literal 9998------------------------------- 9999Some of the diagnostics controlled by this flag are enabled by default. 10000 10001Also controls `-Wc++11-compat-reserved-user-defined-literal`_. 10002 10003**Diagnostic text:** 10004 10005+-----------------------------------------------------------------------------------------------------------------------+ 10006|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 10007+-----------------------------------------------------------------------------------------------------------------------+ 10008 10009+-------------------------------------------------------------------------------------------------------------------+ 10010|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 10011+-------------------------------------------------------------------------------------------------------------------+ 10012 10013 10014-Wretained-language-linkage 10015--------------------------- 10016**Diagnostic text:** 10017 10018+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 10019|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`| 10020+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 10021 10022 10023-Wreturn-stack-address 10024---------------------- 10025This diagnostic is enabled by default. 10026 10027**Diagnostic text:** 10028 10029+---------------------------------------------------------------------------------+ 10030|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`| 10031+---------------------------------------------------------------------------------+ 10032 10033+--------------------------------------------------------+--------------------------+------------------------------------------+ 10034|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`| 10035| ||:diagtext:`address of` || | 10036| |+------------------------+| | 10037| ||:diagtext:`reference to`|| | 10038| |+------------------------+| | 10039+--------------------------------------------------------+--------------------------+------------------------------------------+ 10040 10041+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 10042|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`| 10043| ||:diagtext:`address of` || ||:diagtext:`local variable`|| | 10044| |+------------------------+| |+--------------------------+| | 10045| ||:diagtext:`reference to`|| ||:diagtext:`parameter` || | 10046| |+------------------------+| |+--------------------------+| | 10047+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 10048 10049 10050-Wreturn-std-move 10051----------------- 10052**Diagnostic text:** 10053 10054+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 10055|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`| 10056| ||:diagtext:`returned`|| | 10057| |+--------------------+| | 10058| ||:diagtext:`thrown` || | 10059| |+--------------------+| | 10060+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 10061 10062 10063-Wreturn-std-move-in-c++11 10064-------------------------- 10065**Diagnostic text:** 10066 10067+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10068|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`| 10069+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10070 10071 10072-Wreturn-type 10073------------- 10074This diagnostic is enabled by default. 10075 10076Also controls `-Wreturn-type-c-linkage`_. 10077 10078**Diagnostic text:** 10079 10080+-----------------------+---------------------------+---------------------------------------------------------------------+ 10081|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`| 10082| ||:diagtext:`void function`|| | 10083| |+-------------------------+| | 10084| ||:diagtext:`void method` || | 10085| |+-------------------------+| | 10086| ||:diagtext:`constructor` || | 10087| |+-------------------------+| | 10088| ||:diagtext:`destructor` || | 10089| |+-------------------------+| | 10090+-----------------------+---------------------------+---------------------------------------------------------------------+ 10091 10092+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 10093|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 10094| ||:diagtext:`function`|| | 10095| |+--------------------+| | 10096| ||:diagtext:`method` || | 10097| |+--------------------+| | 10098+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 10099 10100+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10101|:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| 10102+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10103 10104+-------------------------------------------------------------------------------+ 10105|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`| 10106+-------------------------------------------------------------------------------+ 10107 10108+-----------------------------------------------------------------------------+ 10109|:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`| 10110+-----------------------------------------------------------------------------+ 10111 10112+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10113|:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| 10114+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10115 10116+---------------------------------------------------------------------------------+ 10117|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`| 10118+---------------------------------------------------------------------------------+ 10119 10120+-------------------------------------------------------------------------------+ 10121|:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`| 10122+-------------------------------------------------------------------------------+ 10123 10124+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 10125|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 10126| ||:diagtext:`function`|| | 10127| |+--------------------+| | 10128| ||:diagtext:`method` || | 10129| |+--------------------+| | 10130+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 10131 10132 10133-Wreturn-type-c-linkage 10134----------------------- 10135This diagnostic is enabled by default. 10136 10137**Diagnostic text:** 10138 10139+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10140|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`| 10141+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10142 10143+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10144|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`| 10145+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10146 10147 10148-Rsanitize-address 10149------------------ 10150**Diagnostic text:** 10151 10152+--------------------------------------------------------------------------------------------------------+ 10153|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`| 10154+--------------------------------------------------------------------------------------------------------+ 10155 10156+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 10157|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+| 10158| ||:diagtext:`is not C++` || 10159| |+------------------------------------+| 10160| ||:diagtext:`is packed` || 10161| |+------------------------------------+| 10162| ||:diagtext:`is a union` || 10163| |+------------------------------------+| 10164| ||:diagtext:`is trivially copyable` || 10165| |+------------------------------------+| 10166| ||:diagtext:`has trivial destructor` || 10167| |+------------------------------------+| 10168| ||:diagtext:`is standard layout` || 10169| |+------------------------------------+| 10170| ||:diagtext:`is in a blacklisted file`|| 10171| |+------------------------------------+| 10172| ||:diagtext:`is blacklisted` || 10173| |+------------------------------------+| 10174+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 10175 10176 10177-Wsection 10178--------- 10179This diagnostic is enabled by default. 10180 10181**Diagnostic text:** 10182 10183+--------------------------------------------------------------------------------------------+ 10184|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`| 10185+--------------------------------------------------------------------------------------------+ 10186 10187+------------------------------------------------------------------------+ 10188|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`| 10189+------------------------------------------------------------------------+ 10190 10191+---------------------------+---------------------+-------------------------------------------------------+ 10192|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`| 10193| ||:diagtext:`codeseg`|| | 10194| |+-------------------+| | 10195| ||:diagtext:`section`|| | 10196| |+-------------------+| | 10197+---------------------------+---------------------+-------------------------------------------------------+ 10198 10199 10200-Wselector 10201---------- 10202Also controls `-Wselector-type-mismatch`_. 10203 10204**Diagnostic text:** 10205 10206+-------------------------------------------------------------------------------------------------------------------------------------------------+ 10207|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`| 10208+-------------------------------------------------------------------------------------------------------------------------------------------------+ 10209 10210 10211-Wselector-type-mismatch 10212------------------------ 10213**Diagnostic text:** 10214 10215+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10216|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`| 10217+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10218 10219 10220-Wself-assign 10221------------- 10222Some of the diagnostics controlled by this flag are enabled by default. 10223 10224Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_. 10225 10226**Diagnostic text:** 10227 10228+------------------------------------------------------------------------------------------------------------------------------------------+ 10229|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 10230+------------------------------------------------------------------------------------------------------------------------------------------+ 10231 10232 10233-Wself-assign-field 10234------------------- 10235This diagnostic is enabled by default. 10236 10237**Diagnostic text:** 10238 10239+--------------------------------------------------------+-------------------------------+-----------------------------+ 10240|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`| 10241| ||:diagtext:`field` || | 10242| |+-----------------------------+| | 10243| ||:diagtext:`instance variable`|| | 10244| |+-----------------------------+| | 10245+--------------------------------------------------------+-------------------------------+-----------------------------+ 10246 10247 10248-Wself-assign-overloaded 10249------------------------ 10250**Diagnostic text:** 10251 10252+------------------------------------------------------------------------------------------------------------------------------------------+ 10253|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 10254+------------------------------------------------------------------------------------------------------------------------------------------+ 10255 10256 10257-Wself-move 10258----------- 10259**Diagnostic text:** 10260 10261+------------------------------------------------------------------------------------------------------------------------------+ 10262|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 10263+------------------------------------------------------------------------------------------------------------------------------+ 10264 10265 10266-Wsemicolon-before-method-body 10267------------------------------ 10268**Diagnostic text:** 10269 10270+------------------------------------------------------------------------------+ 10271|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`| 10272+------------------------------------------------------------------------------+ 10273 10274 10275-Wsentinel 10276---------- 10277This diagnostic is enabled by default. 10278 10279**Diagnostic text:** 10280 10281+------------------------------------------------------------------+-----------------------------+ 10282|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+| 10283| ||:diagtext:`function call` || 10284| |+---------------------------+| 10285| ||:diagtext:`method dispatch`|| 10286| |+---------------------------+| 10287| ||:diagtext:`block call` || 10288| |+---------------------------+| 10289+------------------------------------------------------------------+-----------------------------+ 10290 10291+------------------------------------------------------------------------------------------------------------------------------------------------+ 10292|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`| 10293+------------------------------------------------------------------------------------------------------------------------------------------------+ 10294 10295 10296-Wsequence-point 10297---------------- 10298Synonym for `-Wunsequenced`_. 10299 10300 10301-Wserialized-diagnostics 10302------------------------ 10303This diagnostic is enabled by default. 10304 10305**Diagnostic text:** 10306 10307+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10308|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`| 10309+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10310 10311+--------------------------------------------------------------------------------------------+ 10312|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`| 10313+--------------------------------------------------------------------------------------------+ 10314 10315 10316-Wshadow 10317-------- 10318Some of the diagnostics controlled by this flag are enabled by default. 10319 10320Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_. 10321 10322**Diagnostic text:** 10323 10324+--------------------------------------------------------------------+-------------------------------------------------------------+ 10325|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 10326| ||:diagtext:`local variable` || 10327| |+-----------------------------------------------------------+| 10328| ||+-----------------------------------------------+ || 10329| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 10330| ||+-----------------------------------------------+ || 10331| |+-----------------------------------------------------------+| 10332| ||+---------------------------------------------------------+|| 10333| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 10334| ||+---------------------------------------------------------+|| 10335| |+-----------------------------------------------------------+| 10336| ||+--------------------------------------------+ || 10337| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 10338| ||+--------------------------------------------+ || 10339| |+-----------------------------------------------------------+| 10340| ||+----------------------------------------------+ || 10341| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 10342| ||+----------------------------------------------+ || 10343| |+-----------------------------------------------------------+| 10344| ||+-------------------------------------------------+ || 10345| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 10346| ||+-------------------------------------------------+ || 10347| |+-----------------------------------------------------------+| 10348+--------------------------------------------------------------------+-------------------------------------------------------------+ 10349 10350 10351-Wshadow-all 10352------------ 10353Some of the diagnostics controlled by this flag are enabled by default. 10354 10355Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_. 10356 10357 10358-Wshadow-field 10359-------------- 10360**Diagnostic text:** 10361 10362+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 10363|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`| 10364| ||:diagtext:`parameter` || || || | 10365| |+----------------------------------+| |+------------------------------------------------+| | 10366| ||:diagtext:`non-static data member`|| ||+----------------------------------------------+|| | 10367| |+----------------------------------+| |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| ||| | 10368| | | ||+----------------------------------------------+|| | 10369| | | |+------------------------------------------------+| | 10370+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 10371 10372 10373-Wshadow-field-in-constructor 10374----------------------------- 10375Also controls `-Wshadow-field-in-constructor-modified`_. 10376 10377**Diagnostic text:** 10378 10379+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10380|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 10381+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10382 10383 10384-Wshadow-field-in-constructor-modified 10385-------------------------------------- 10386**Diagnostic text:** 10387 10388+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10389|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`| 10390+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10391 10392 10393-Wshadow-ivar 10394------------- 10395This diagnostic is enabled by default. 10396 10397**Diagnostic text:** 10398 10399+------------------------------------------------------------------------------------------------------------------------------+ 10400|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`| 10401+------------------------------------------------------------------------------------------------------------------------------+ 10402 10403 10404-Wshadow-uncaptured-local 10405------------------------- 10406**Diagnostic text:** 10407 10408+--------------------------------------------------------------------+-------------------------------------------------------------+ 10409|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 10410| ||:diagtext:`local variable` || 10411| |+-----------------------------------------------------------+| 10412| ||+-----------------------------------------------+ || 10413| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 10414| ||+-----------------------------------------------+ || 10415| |+-----------------------------------------------------------+| 10416| ||+---------------------------------------------------------+|| 10417| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 10418| ||+---------------------------------------------------------+|| 10419| |+-----------------------------------------------------------+| 10420| ||+--------------------------------------------+ || 10421| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 10422| ||+--------------------------------------------+ || 10423| |+-----------------------------------------------------------+| 10424| ||+----------------------------------------------+ || 10425| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 10426| ||+----------------------------------------------+ || 10427| |+-----------------------------------------------------------+| 10428| ||+-------------------------------------------------+ || 10429| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 10430| ||+-------------------------------------------------+ || 10431| |+-----------------------------------------------------------+| 10432+--------------------------------------------------------------------+-------------------------------------------------------------+ 10433 10434 10435-Wshift-count-negative 10436---------------------- 10437This diagnostic is enabled by default. 10438 10439**Diagnostic text:** 10440 10441+--------------------------------------------------------------+ 10442|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`| 10443+--------------------------------------------------------------+ 10444 10445 10446-Wshift-count-overflow 10447---------------------- 10448This diagnostic is enabled by default. 10449 10450**Diagnostic text:** 10451 10452+-------------------------------------------------------------------+ 10453|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`| 10454+-------------------------------------------------------------------+ 10455 10456 10457-Wshift-negative-value 10458---------------------- 10459This diagnostic is enabled by default. 10460 10461**Diagnostic text:** 10462 10463+------------------------------------------------------------------------------------+ 10464|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`| 10465+------------------------------------------------------------------------------------+ 10466 10467 10468-Wshift-op-parentheses 10469---------------------- 10470This diagnostic is enabled by default. 10471 10472**Diagnostic text:** 10473 10474+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10475|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`| 10476+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10477 10478 10479-Wshift-overflow 10480---------------- 10481This diagnostic is enabled by default. 10482 10483**Diagnostic text:** 10484 10485+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10486|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`| 10487+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10488 10489 10490-Wshift-sign-overflow 10491--------------------- 10492**Diagnostic text:** 10493 10494+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10495|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`| 10496+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10497 10498 10499-Wshorten-64-to-32 10500------------------ 10501**Diagnostic text:** 10502 10503+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 10504|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10505+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 10506 10507 10508-Wsign-compare 10509-------------- 10510**Diagnostic text:** 10511 10512+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10513|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`| 10514+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10515 10516 10517-Wsign-conversion 10518----------------- 10519**Diagnostic text:** 10520 10521+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10522|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10523+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10524 10525+---------------------------------------------------------------------------------------------------------------------------------------------+ 10526|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10527+---------------------------------------------------------------------------------------------------------------------------------------------+ 10528 10529+-----------------------------------------------------------------------------------------------------------+ 10530|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`| 10531+-----------------------------------------------------------------------------------------------------------+ 10532 10533 10534-Wsign-promo 10535------------ 10536This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10537 10538-Wsigned-enum-bitfield 10539---------------------- 10540**Diagnostic text:** 10541 10542+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10543|:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`| 10544+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10545 10546 10547-Wsizeof-array-argument 10548----------------------- 10549This diagnostic is enabled by default. 10550 10551**Diagnostic text:** 10552 10553+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10554|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 10555+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10556 10557 10558-Wsizeof-array-decay 10559-------------------- 10560This diagnostic is enabled by default. 10561 10562**Diagnostic text:** 10563 10564+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10565|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 10566+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10567 10568 10569-Wsizeof-pointer-div 10570-------------------- 10571This diagnostic is enabled by default. 10572 10573**Diagnostic text:** 10574 10575+-------------------------------------------------------------------------------------------------------------------------------+ 10576|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`| 10577+-------------------------------------------------------------------------------------------------------------------------------+ 10578 10579 10580-Wsizeof-pointer-memaccess 10581-------------------------- 10582This diagnostic is enabled by default. 10583 10584**Diagnostic text:** 10585 10586+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10587|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`| 10588+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10589 10590+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 10591|:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`| 10592| ||:diagtext:`destination`|| | 10593| |+-----------------------+| | 10594| ||:diagtext:`source` || | 10595| |+-----------------------+| | 10596+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 10597 10598 10599-Wslash-u-filename 10600------------------ 10601This diagnostic is enabled by default. 10602 10603**Diagnostic text:** 10604 10605+--------------------------------------------------------------------------------------------------+ 10606|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`| 10607+--------------------------------------------------------------------------------------------------+ 10608 10609 10610-Wsometimes-uninitialized 10611------------------------- 10612**Diagnostic text:** 10613 10614+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 10615|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+| 10616| ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ || 10617| |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| || 10618| ||:diagtext:`captured`|| ||| ||:diagtext:`true` || || 10619| |+--------------------+| ||| |+-----------------+| || 10620| | | ||| ||:diagtext:`false`|| || 10621| | | ||| |+-----------------+| || 10622| | | ||+---------------------------------------------------------------+-------------------+ || 10623| | | |+------------------------------------------------------------------------------------------------------------+| 10624| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10625| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 10626| | | ||| ||:diagtext:`is entered` |||| 10627| | | ||| |+------------------------------------------------+||| 10628| | | ||| ||:diagtext:`exits because its condition is false`|||| 10629| | | ||| |+------------------------------------------------+||| 10630| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10631| | | |+------------------------------------------------------------------------------------------------------------+| 10632| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10633| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 10634| | | ||| ||:diagtext:`condition is true` |||| 10635| | | ||| |+------------------------------------------------+||| 10636| | | ||| ||:diagtext:`exits because its condition is false`|||| 10637| | | ||| |+------------------------------------------------+||| 10638| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 10639| | | |+------------------------------------------------------------------------------------------------------------+| 10640| | | ||+----------------------------------------------------------------------+ || 10641| | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| || 10642| | | ||+----------------------------------------------------------------------+ || 10643| | | |+------------------------------------------------------------------------------------------------------------+| 10644| | | ||:diagtext:`its declaration is reached` || 10645| | | |+------------------------------------------------------------------------------------------------------------+| 10646| | | ||+---------------------------------------------+ || 10647| | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| || 10648| | | ||+---------------------------------------------+ || 10649| | | |+------------------------------------------------------------------------------------------------------------+| 10650+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 10651 10652 10653-Wsource-uses-openmp 10654-------------------- 10655Some of the diagnostics controlled by this flag are enabled by default. 10656 10657**Diagnostic text:** 10658 10659+------------------------------------------------------------------------------------------------------------------------------+ 10660|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`| 10661+------------------------------------------------------------------------------------------------------------------------------+ 10662 10663+------------------------------------------------------------------------------+ 10664|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`| 10665+------------------------------------------------------------------------------+ 10666 10667 10668-Wspir-compat 10669------------- 10670**Diagnostic text:** 10671 10672+----------------------------------------------------------------------------------------------------------------------+ 10673|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`| 10674+----------------------------------------------------------------------------------------------------------------------+ 10675 10676 10677-Wstack-protector 10678----------------- 10679This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10680 10681-Wstatic-float-init 10682------------------- 10683This diagnostic is enabled by default. 10684 10685Also controls `-Wgnu-static-float-init`_. 10686 10687**Diagnostic text:** 10688 10689+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10690|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`| 10691+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10692 10693 10694-Wstatic-in-inline 10695------------------ 10696Some of the diagnostics controlled by this flag are enabled by default. 10697 10698**Diagnostic text:** 10699 10700+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10701|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 10702| ||:diagtext:`function`|| | 10703| |+--------------------+| | 10704| ||:diagtext:`variable`|| | 10705| |+--------------------+| | 10706+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10707 10708+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10709|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 10710| ||:diagtext:`function`|| | 10711| |+--------------------+| | 10712| ||:diagtext:`variable`|| | 10713| |+--------------------+| | 10714+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10715 10716 10717-Wstatic-inline-explicit-instantiation 10718-------------------------------------- 10719This diagnostic is enabled by default. 10720 10721**Diagnostic text:** 10722 10723+-------------------------------------------------+--------------------+--------------------------------------------------------+ 10724|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`| 10725| ||:diagtext:`static`|| | 10726| |+------------------+| | 10727| ||:diagtext:`inline`|| | 10728| |+------------------+| | 10729+-------------------------------------------------+--------------------+--------------------------------------------------------+ 10730 10731 10732-Wstatic-local-in-inline 10733------------------------ 10734This diagnostic is enabled by default. 10735 10736**Diagnostic text:** 10737 10738+--------------------------------------------------------------------------------------------------------------------------------+ 10739|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`| 10740+--------------------------------------------------------------------------------------------------------------------------------+ 10741 10742 10743-Wstatic-self-init 10744------------------ 10745This diagnostic is enabled by default. 10746 10747**Diagnostic text:** 10748 10749+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10750|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`| 10751+----------------------------------------------------------------------------------------------------------------------------------------------------+ 10752 10753 10754-Wstdlibcxx-not-found 10755--------------------- 10756This diagnostic is enabled by default. 10757 10758**Diagnostic text:** 10759 10760+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10761|:warning:`warning:` |nbsp| :diagtext:`include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`| 10762+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10763 10764 10765-Wstrict-aliasing 10766----------------- 10767This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10768 10769-Wstrict-aliasing=0 10770------------------- 10771This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10772 10773-Wstrict-aliasing=1 10774------------------- 10775This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10776 10777-Wstrict-aliasing=2 10778------------------- 10779This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10780 10781-Wstrict-overflow 10782----------------- 10783This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10784 10785-Wstrict-overflow=0 10786------------------- 10787This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10788 10789-Wstrict-overflow=1 10790------------------- 10791This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10792 10793-Wstrict-overflow=2 10794------------------- 10795This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10796 10797-Wstrict-overflow=3 10798------------------- 10799This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10800 10801-Wstrict-overflow=4 10802------------------- 10803This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10804 10805-Wstrict-overflow=5 10806------------------- 10807This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10808 10809-Wstrict-prototypes 10810------------------- 10811**Diagnostic text:** 10812 10813+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10814|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 10815| ||:diagtext:`function declaration is not` || | 10816| |+------------------------------------------------------------+| | 10817| ||:diagtext:`block declaration is not` || | 10818| |+------------------------------------------------------------+| | 10819| ||:diagtext:`old-style function definition is not preceded by`|| | 10820| |+------------------------------------------------------------+| | 10821+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10822 10823 10824-Wstrict-prototypes 10825------------------- 10826**Diagnostic text:** 10827 10828+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10829|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 10830| ||:diagtext:`function declaration is not` || | 10831| |+------------------------------------------------------------+| | 10832| ||:diagtext:`block declaration is not` || | 10833| |+------------------------------------------------------------+| | 10834| ||:diagtext:`old-style function definition is not preceded by`|| | 10835| |+------------------------------------------------------------+| | 10836+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 10837 10838 10839-Wstrict-selector-match 10840----------------------- 10841**Diagnostic text:** 10842 10843+--------------------------------------------------------------------------------------------------------------+ 10844|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 10845+--------------------------------------------------------------------------------------------------------------+ 10846 10847 10848-Wstring-compare 10849---------------- 10850This diagnostic is enabled by default. 10851 10852**Diagnostic text:** 10853 10854+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ 10855|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`| 10856| ||:diagtext:`a string literal`|| | 10857| |+----------------------------+| | 10858| ||:diagtext:`@encode` || | 10859| |+----------------------------+| | 10860+---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ 10861 10862 10863-Wstring-conversion 10864------------------- 10865**Diagnostic text:** 10866 10867+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10868|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 10869+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10870 10871 10872-Wstring-plus-char 10873------------------ 10874This diagnostic is enabled by default. 10875 10876**Diagnostic text:** 10877 10878+------------------------------------------------------------------------------------------------------------------------------------------+ 10879|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`| 10880+------------------------------------------------------------------------------------------------------------------------------------------+ 10881 10882 10883-Wstring-plus-int 10884----------------- 10885This diagnostic is enabled by default. 10886 10887**Diagnostic text:** 10888 10889+----------------------------------------------------------------------------------------------------------------------------------+ 10890|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`| 10891+----------------------------------------------------------------------------------------------------------------------------------+ 10892 10893 10894-Wstrlcpy-strlcat-size 10895---------------------- 10896This diagnostic is enabled by default. 10897 10898**Diagnostic text:** 10899 10900+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10901|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`| 10902+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10903 10904 10905-Wstrncat-size 10906-------------- 10907This diagnostic is enabled by default. 10908 10909**Diagnostic text:** 10910 10911+--------------------------------------------------------------------------------------------------------------------------------+ 10912|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`| 10913+--------------------------------------------------------------------------------------------------------------------------------+ 10914 10915+-------------------------------------------------------------------------------------------------------+ 10916|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`| 10917+-------------------------------------------------------------------------------------------------------+ 10918 10919+-------------------------------------------------------------------------------------------+ 10920|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`| 10921+-------------------------------------------------------------------------------------------+ 10922 10923 10924-Wsuper-class-method-mismatch 10925----------------------------- 10926**Diagnostic text:** 10927 10928+--------------------------------------------------------------------------------------------------------------------------------+ 10929|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`| 10930+--------------------------------------------------------------------------------------------------------------------------------+ 10931 10932 10933-Wsuspicious-bzero 10934------------------ 10935This diagnostic is enabled by default. 10936 10937**Diagnostic text:** 10938 10939+----------------------------------------------------------------------+ 10940|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`| 10941+----------------------------------------------------------------------+ 10942 10943 10944-Wsuspicious-memaccess 10945---------------------- 10946This diagnostic is enabled by default. 10947 10948Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_. 10949 10950 10951-Wswitch 10952-------- 10953This diagnostic is enabled by default. 10954 10955**Diagnostic text:** 10956 10957+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10958|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`| 10959+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10960 10961+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10962|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10963| ||+----------------------------------------------------------------------------------------------+ || 10964| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| || 10965| ||+----------------------------------------------------------------------------------------------+ || 10966| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10967| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 10968| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| || 10969| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 10970| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10971| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10972| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| || 10973| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 10974| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10975| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10976| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 10977| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 10978| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 10979+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10980 10981+------------------------------------------------------------------------------------------------+ 10982|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`| 10983+------------------------------------------------------------------------------------------------+ 10984 10985 10986-Wswitch-bool 10987------------- 10988This diagnostic is enabled by default. 10989 10990**Diagnostic text:** 10991 10992+-------------------------------------------------------------------------+ 10993|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`| 10994+-------------------------------------------------------------------------+ 10995 10996 10997-Wswitch-default 10998---------------- 10999This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11000 11001-Wswitch-enum 11002------------- 11003**Diagnostic text:** 11004 11005+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11006|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 11007| ||+---------------------------------------------------------------------------------------------------------+ || 11008| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| || 11009| ||+---------------------------------------------------------------------------------------------------------+ || 11010| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 11011| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 11012| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| || 11013| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 11014| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 11015| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 11016| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| || 11017| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 11018| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 11019| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 11020| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 11021| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 11022| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 11023+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11024 11025 11026-Wsync-fetch-and-nand-semantics-changed 11027--------------------------------------- 11028This diagnostic is enabled by default. 11029 11030**Diagnostic text:** 11031 11032+-------------------------------------------------------------------------------------------------------------------------------------------+ 11033|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`| 11034+-------------------------------------------------------------------------------------------------------------------------------------------+ 11035 11036 11037-Wsynth 11038------- 11039This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11040 11041-Wtautological-compare 11042---------------------- 11043Some of the diagnostics controlled by this flag are enabled by default. 11044 11045Also controls `-Wtautological-constant-compare`_, `-Wtautological-objc-bool-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_. 11046 11047**Diagnostic text:** 11048 11049+---------------------------+---------------------------+--------------------------------------------------+------------------------+ 11050|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+| 11051| ||:diagtext:`self-` || ||:diagtext:`a constant`|| 11052| |+-------------------------+| |+----------------------+| 11053| ||:diagtext:`array` |nbsp| || ||:placeholder:`C` || 11054| |+-------------------------+| |+----------------------+| 11055+---------------------------+---------------------------+--------------------------------------------------+------------------------+ 11056 11057+-------------------------------------------------------------------------------------+-------------------+ 11058|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+| 11059| ||:diagtext:`false`|| 11060| |+-----------------+| 11061| ||:diagtext:`true` || 11062| |+-----------------+| 11063+-------------------------------------------------------------------------------------+-------------------+ 11064 11065 11066-Wtautological-constant-compare 11067------------------------------- 11068This diagnostic is enabled by default. 11069 11070Also controls `-Wtautological-constant-out-of-range-compare`_. 11071 11072**Diagnostic text:** 11073 11074+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 11075|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 11076| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 11077| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 11078| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 11079| |+----------------------------------------------+| |+--------------------------------------------------------+| | 11080| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 11081| |+----------------------------------------------+| |+--------------------------------------------------------+| | 11082| ||:diagtext:`false` || | | | 11083| |+----------------------------------------------+| | | | 11084+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 11085 11086 11087-Wtautological-constant-in-range-compare 11088---------------------------------------- 11089Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_. 11090 11091 11092-Wtautological-constant-out-of-range-compare 11093-------------------------------------------- 11094This diagnostic is enabled by default. 11095 11096**Diagnostic text:** 11097 11098+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 11099|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 11100| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 11101| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 11102| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 11103| |+----------------------------------------------+| |+--------------------------------------------------------+| | 11104| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 11105| |+----------------------------------------------+| |+--------------------------------------------------------+| | 11106| ||:diagtext:`false` || | | | 11107| |+----------------------------------------------+| | | | 11108+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 11109 11110 11111-Wtautological-objc-bool-compare 11112-------------------------------- 11113This diagnostic is enabled by default. 11114 11115**Diagnostic text:** 11116 11117+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11118|:warning:`warning:` |nbsp| :diagtext:`result of comparison of constant` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with expression of type BOOL is always` |nbsp| :placeholder:`B`:diagtext:`, as the only well defined values for BOOL are YES and NO`| 11119+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11120 11121 11122-Wtautological-overlap-compare 11123------------------------------ 11124**Diagnostic text:** 11125 11126+-----------------------------------------------------------------------------------------+-------------------+ 11127|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+| 11128| ||:diagtext:`false`|| 11129| |+-----------------+| 11130| ||:diagtext:`true` || 11131| |+-----------------+| 11132+-----------------------------------------------------------------------------------------+-------------------+ 11133 11134 11135-Wtautological-pointer-compare 11136------------------------------ 11137This diagnostic is enabled by default. 11138 11139**Diagnostic text:** 11140 11141+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 11142|:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`| 11143| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || | 11144| |+-------------------------+| |+-----------------------+| |+-----------------+| | 11145| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| | 11146| |+-------------------------+| |+-----------------------+| |+-----------------+| | 11147+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 11148 11149+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 11150|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+| 11151| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || 11152| |+----------------------+| |+-----------------------+| |+-----------------+| 11153| ||:diagtext:`function` || || || ||:diagtext:`false`|| 11154| |+----------------------+| |+-----------------------+| |+-----------------+| 11155| ||:diagtext:`array` || | | | | 11156| |+----------------------+| | | | | 11157+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 11158 11159 11160-Wtautological-type-limit-compare 11161--------------------------------- 11162**Diagnostic text:** 11163 11164+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 11165|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 11166| ||:placeholder:`D`|| ||:placeholder:`B`|| | 11167| |+----------------+| |+----------------+| | 11168| ||:placeholder:`B`|| ||:placeholder:`D`|| | 11169| |+----------------+| |+----------------+| | 11170+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 11171 11172 11173-Wtautological-undefined-compare 11174-------------------------------- 11175This diagnostic is enabled by default. 11176 11177**Diagnostic text:** 11178 11179+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 11180|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 11181| ||:diagtext:`true` || 11182| |+-----------------+| 11183| ||:diagtext:`false`|| 11184| |+-----------------+| 11185+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 11186 11187+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 11188|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 11189| ||:diagtext:`true` || 11190| |+-----------------+| 11191| ||:diagtext:`false`|| 11192| |+-----------------+| 11193+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 11194 11195 11196-Wtautological-unsigned-enum-zero-compare 11197----------------------------------------- 11198**Diagnostic text:** 11199 11200+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 11201|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 11202| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| | 11203| |+------------------------------------+| |+------------------------------------+| | 11204| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || | 11205| |+------------------------------------+| |+------------------------------------+| | 11206+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 11207 11208 11209-Wtautological-unsigned-zero-compare 11210------------------------------------ 11211**Diagnostic text:** 11212 11213+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 11214|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 11215| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| | 11216| |+-------------------------------+| |+-------------------------------+| | 11217| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || | 11218| |+-------------------------------+| |+-------------------------------+| | 11219+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 11220 11221 11222-Wtentative-definition-incomplete-type 11223-------------------------------------- 11224This diagnostic is enabled by default. 11225 11226**Diagnostic text:** 11227 11228+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11229|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`| 11230+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11231 11232 11233-Wthread-safety 11234--------------- 11235Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_. 11236 11237 11238-Wthread-safety-analysis 11239------------------------ 11240**Diagnostic text:** 11241 11242+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11243|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`| 11244+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11245 11246+---------------------------------------------------------------------------------------------------------------------------------+ 11247|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`| 11248+---------------------------------------------------------------------------------------------------------------------------------+ 11249 11250+---------------------------------------------------------------------+ 11251|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`| 11252+---------------------------------------------------------------------+ 11253 11254+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11255|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`| 11256+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11257 11258+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11259|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`| 11260+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11261 11262+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11263|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`| 11264+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11265 11266+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11267|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`| 11268+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11269 11270+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11271|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11272| ||+------------------------------------------+ || 11273| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11274| ||+------------------------------------------+ || 11275| |+--------------------------------------------------------+| 11276| ||+------------------------------------------------------+|| 11277| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11278| ||+------------------------------------------------------+|| 11279| |+--------------------------------------------------------+| 11280+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11281 11282+--------------------------------------------------------------------------------------------------------------------------------------------------+ 11283|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`| 11284+--------------------------------------------------------------------------------------------------------------------------------------------------+ 11285 11286+------------------------------------------------------------------------------------------------------------------------------------+ 11287|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`| 11288+------------------------------------------------------------------------------------------------------------------------------------+ 11289 11290+----------------------------------------------------------------------------------------------------------------------------------+ 11291|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`| 11292+----------------------------------------------------------------------------------------------------------------------------------+ 11293 11294+--------------------------------------------------------------------------------------------------------------------------------------------+ 11295|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`| 11296+--------------------------------------------------------------------------------------------------------------------------------------------+ 11297 11298+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 11299|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`| 11300| ||:diagtext:`shared` || ||:diagtext:`shared` || | 11301| |+---------------------+| |+---------------------+| | 11302| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| | 11303| |+---------------------+| |+---------------------+| | 11304+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 11305 11306+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 11307|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 11308| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 11309| |+-------------------+| |+---------------------------------+| 11310| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 11311| |+-------------------+| |+---------------------------------+| 11312+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 11313 11314+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11315|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11316| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11317| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11318| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11319| |+-------------------+| |+--------------------------------------------------------+| 11320| | | ||+------------------------------------------------------+|| 11321| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11322| | | ||+------------------------------------------------------+|| 11323| | | |+--------------------------------------------------------+| 11324+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11325 11326+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 11327|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 11328| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 11329| |+-------------------+| |+---------------------------------+| 11330| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 11331| |+-------------------+| |+---------------------------------+| 11332+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 11333 11334+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11335|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11336| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11337| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11338| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11339| |+-------------------+| |+--------------------------------------------------------+| 11340| | | ||+------------------------------------------------------+|| 11341| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11342| | | ||+------------------------------------------------------+|| 11343| | | |+--------------------------------------------------------+| 11344+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11345 11346 11347-Wthread-safety-attributes 11348-------------------------- 11349**Diagnostic text:** 11350 11351+----------------------------------------------------------------------------------------------------------------------------------------+ 11352|:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`| 11353+----------------------------------------------------------------------------------------------------------------------------------------+ 11354 11355+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11356|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`| 11357+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11358 11359+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11360|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`| 11361+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11362 11363+----------------------------------------------------------------------------------------------------------------------------------+ 11364|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`| 11365+----------------------------------------------------------------------------------------------------------------------------------+ 11366 11367+------------------------------------------------------------------------------------------------------------------------------------+ 11368|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`| 11369+------------------------------------------------------------------------------------------------------------------------------------+ 11370 11371+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11372|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`| 11373+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11374 11375+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11376|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`| 11377+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11378 11379 11380-Wthread-safety-beta 11381-------------------- 11382**Diagnostic text:** 11383 11384+------------------------------------------------------------------+ 11385|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`| 11386+------------------------------------------------------------------+ 11387 11388 11389-Wthread-safety-negative 11390------------------------ 11391**Diagnostic text:** 11392 11393+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11394|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`| 11395+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11396 11397 11398-Wthread-safety-precise 11399----------------------- 11400**Diagnostic text:** 11401 11402+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11403|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11404| ||+------------------------------------------+ || 11405| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11406| ||+------------------------------------------+ || 11407| |+--------------------------------------------------------+| 11408| ||+------------------------------------------------------+|| 11409| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11410| ||+------------------------------------------------------+|| 11411| |+--------------------------------------------------------+| 11412+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11413 11414+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11415|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11416| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11417| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11418| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11419| |+-------------------+| |+--------------------------------------------------------+| 11420| | | ||+------------------------------------------------------+|| 11421| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11422| | | ||+------------------------------------------------------+|| 11423| | | |+--------------------------------------------------------+| 11424+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11425 11426+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11427|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11428| ||:diagtext:`reading`|| ||+------------------------------------------+ || 11429| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11430| ||:diagtext:`writing`|| ||+------------------------------------------+ || 11431| |+-------------------+| |+--------------------------------------------------------+| 11432| | | ||+------------------------------------------------------+|| 11433| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11434| | | ||+------------------------------------------------------+|| 11435| | | |+--------------------------------------------------------+| 11436+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11437 11438 11439-Wthread-safety-reference 11440------------------------- 11441**Diagnostic text:** 11442 11443+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11444|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11445| ||+------------------------------------------+ || 11446| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11447| ||+------------------------------------------+ || 11448| |+--------------------------------------------------------+| 11449| ||+------------------------------------------------------+|| 11450| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11451| ||+------------------------------------------------------+|| 11452| |+--------------------------------------------------------+| 11453+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11454 11455+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11456|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 11457| ||+------------------------------------------+ || 11458| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 11459| ||+------------------------------------------+ || 11460| |+--------------------------------------------------------+| 11461| ||+------------------------------------------------------+|| 11462| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 11463| ||+------------------------------------------------------+|| 11464| |+--------------------------------------------------------+| 11465+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 11466 11467 11468-Wthread-safety-verbose 11469----------------------- 11470**Diagnostic text:** 11471 11472+---------------------------------------------------------------------+ 11473|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`| 11474+---------------------------------------------------------------------+ 11475 11476 11477-Wtrigraphs 11478----------- 11479This diagnostic is enabled by default. 11480 11481**Diagnostic text:** 11482 11483+-----------------------------------------------------------------------------------------------------+ 11484|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`| 11485+-----------------------------------------------------------------------------------------------------+ 11486 11487+------------------------------------------------------------------+ 11488|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`| 11489+------------------------------------------------------------------+ 11490 11491+-------------------------------------------------------+ 11492|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`| 11493+-------------------------------------------------------+ 11494 11495+-------------------------------------------------------------------------------+ 11496|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`| 11497+-------------------------------------------------------------------------------+ 11498 11499 11500-Wtype-limits 11501------------- 11502Synonym for `-Wtautological-constant-in-range-compare`_. 11503 11504 11505-Wtype-limits 11506------------- 11507Synonym for `-Wtautological-constant-in-range-compare`_. 11508 11509 11510-Wtype-safety 11511------------- 11512This diagnostic is enabled by default. 11513 11514**Diagnostic text:** 11515 11516+----------------------------------------------------------------------------------------------------------------------------+ 11517|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`| 11518+----------------------------------------------------------------------------------------------------------------------------+ 11519 11520+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 11521|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+| 11522| ||+-------------------------------------------------+|| 11523| |||:diagtext:`that requires` |nbsp| :placeholder:`D`||| 11524| ||+-------------------------------------------------+|| 11525| |+---------------------------------------------------+| 11526| || || 11527| |+---------------------------------------------------+| 11528+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 11529 11530+---------------------------------------------------------------------------------------------------+ 11531|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`| 11532+---------------------------------------------------------------------------------------------------+ 11533 11534 11535-Wtypedef-redefinition 11536---------------------- 11537This diagnostic is enabled by default. 11538 11539**Diagnostic text:** 11540 11541+--------------------------------------------------------------------------------------------------------------------------+ 11542|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`| 11543+--------------------------------------------------------------------------------------------------------------------------+ 11544 11545 11546-Wtypename-missing 11547------------------ 11548This diagnostic is enabled by default. 11549 11550**Diagnostic text:** 11551 11552+-------------------------------------------------------------------------------------------------------------------------------------+ 11553|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`| 11554+-------------------------------------------------------------------------------------------------------------------------------------+ 11555 11556 11557-Wunable-to-open-stats-file 11558--------------------------- 11559This diagnostic is enabled by default. 11560 11561**Diagnostic text:** 11562 11563+-------------------------------------------------------------------------------------------------------------------------------------------+ 11564|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 11565+-------------------------------------------------------------------------------------------------------------------------------------------+ 11566 11567 11568-Wunavailable-declarations 11569-------------------------- 11570This diagnostic is enabled by default. 11571 11572**Diagnostic text:** 11573 11574+----------------------------------------------------------------------------------------------------------------------+ 11575|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`| 11576+----------------------------------------------------------------------------------------------------------------------+ 11577 11578 11579-Wundeclared-selector 11580--------------------- 11581**Diagnostic text:** 11582 11583+----------------------------------------------------------------------------------+ 11584|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`| 11585+----------------------------------------------------------------------------------+ 11586 11587+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11588|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`| 11589+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11590 11591 11592-Wundef 11593------- 11594**Diagnostic text:** 11595 11596+---------------------------------------------------------------------------------------------+ 11597|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`| 11598+---------------------------------------------------------------------------------------------+ 11599 11600 11601-Wundefined-bool-conversion 11602--------------------------- 11603This diagnostic is enabled by default. 11604 11605**Diagnostic text:** 11606 11607+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11608|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`| 11609+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11610 11611+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11612|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`| 11613+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11614 11615 11616-Wundefined-func-template 11617------------------------- 11618**Diagnostic text:** 11619 11620+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11621|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 11622+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11623 11624 11625-Wundefined-inline 11626------------------ 11627This diagnostic is enabled by default. 11628 11629**Diagnostic text:** 11630 11631+----------------------------------------------------------------------------------------------------------------+ 11632|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`| 11633+----------------------------------------------------------------------------------------------------------------+ 11634 11635 11636-Wundefined-internal 11637-------------------- 11638This diagnostic is enabled by default. 11639 11640**Diagnostic text:** 11641 11642+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 11643|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`| 11644| ||:diagtext:`function`|| | 11645| |+--------------------+| | 11646| ||:diagtext:`variable`|| | 11647| |+--------------------+| | 11648+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 11649 11650 11651-Wundefined-internal-type 11652------------------------- 11653**Diagnostic text:** 11654 11655+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 11656|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`| 11657| ||:diagtext:`function`|| | 11658| |+--------------------+| | 11659| ||:diagtext:`variable`|| | 11660| |+--------------------+| | 11661+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 11662 11663 11664-Wundefined-reinterpret-cast 11665---------------------------- 11666**Diagnostic text:** 11667 11668+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11669|:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`| 11670+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11671 11672+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11673|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`| 11674+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11675 11676 11677-Wundefined-var-template 11678------------------------ 11679This diagnostic is enabled by default. 11680 11681**Diagnostic text:** 11682 11683+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11684|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 11685+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11686 11687 11688-Wunderaligned-exception-object 11689------------------------------- 11690This diagnostic is enabled by default. 11691 11692**Diagnostic text:** 11693 11694+---------------------------------------------------------------------------+ 11695|:warning:`warning:` |nbsp| :diagtext:`underaligned exception object thrown`| 11696+---------------------------------------------------------------------------+ 11697 11698 11699-Wunevaluated-expression 11700------------------------ 11701This diagnostic is enabled by default. 11702 11703Also controls `-Wpotentially-evaluated-expression`_. 11704 11705**Diagnostic text:** 11706 11707+-----------------------------------------------------------------------------------------------------------+ 11708|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`| 11709+-----------------------------------------------------------------------------------------------------------+ 11710 11711 11712-Wunguarded-availability 11713------------------------ 11714Some of the diagnostics controlled by this flag are enabled by default. 11715 11716Also controls `-Wunguarded-availability-new`_. 11717 11718**Diagnostic text:** 11719 11720+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11721|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 11722+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11723 11724 11725-Wunguarded-availability-new 11726---------------------------- 11727This diagnostic is enabled by default. 11728 11729**Diagnostic text:** 11730 11731+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11732|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 11733+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11734 11735 11736-Wunicode 11737--------- 11738This diagnostic is enabled by default. 11739 11740**Diagnostic text:** 11741 11742+-------------------------------------------------------------------------------------------------------------------+ 11743|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`| 11744+-------------------------------------------------------------------------------------------------------------------+ 11745 11746+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 11747|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`| 11748+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 11749 11750+-----------------------------------------------------------------------------------------------+ 11751|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`| 11752+-----------------------------------------------------------------------------------------------+ 11753 11754+--------------------------------------------------------------------------------------------------------------------------------------+ 11755|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`| 11756+--------------------------------------------------------------------------------------------------------------------------------------+ 11757 11758+---------------------------------------------------------------------------------------------+ 11759|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`| 11760+---------------------------------------------------------------------------------------------+ 11761 11762 11763-Wunicode-homoglyph 11764------------------- 11765This diagnostic is enabled by default. 11766 11767**Diagnostic text:** 11768 11769+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11770|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`| 11771+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11772 11773 11774-Wunicode-whitespace 11775-------------------- 11776This diagnostic is enabled by default. 11777 11778**Diagnostic text:** 11779 11780+-------------------------------------------------------------------------------+ 11781|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`| 11782+-------------------------------------------------------------------------------+ 11783 11784 11785-Wunicode-zero-width 11786-------------------- 11787This diagnostic is enabled by default. 11788 11789**Diagnostic text:** 11790 11791+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11792|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`| 11793+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11794 11795 11796-Wuninitialized 11797--------------- 11798Some of the diagnostics controlled by this flag are enabled by default. 11799 11800Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_. 11801 11802**Diagnostic text:** 11803 11804+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11805|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`| 11806+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11807 11808+-----------------------------------------------------------------------------------------------------------------------+ 11809|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`| 11810+-----------------------------------------------------------------------------------------------------------------------+ 11811 11812+--------------------------------------------------------------------------------------------------------------------------------------+ 11813|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`| 11814+--------------------------------------------------------------------------------------------------------------------------------------+ 11815 11816+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+ 11817|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-------------------------+| |nbsp| :diagtext:`when captured by block`| 11818| ||:diagtext:`uninitialized`|| | 11819| |+-------------------------+| | 11820| ||:diagtext:`null` || | 11821| |+-------------------------+| | 11822+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+ 11823 11824+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11825|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`| 11826+---------------------------------------------------------------------------------------------------------------------------------------------------+ 11827 11828+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11829|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`| 11830+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11831 11832+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 11833|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+| 11834| ||:diagtext:`used here` || 11835| |+-----------------------------+| 11836| ||:diagtext:`captured by block`|| 11837| |+-----------------------------+| 11838+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 11839 11840 11841-Wunknown-argument 11842------------------ 11843This diagnostic is enabled by default. 11844 11845**Diagnostic text:** 11846 11847+-----------------------------------------------------------------------------------------------------------+ 11848|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`| 11849+-----------------------------------------------------------------------------------------------------------+ 11850 11851+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11852|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| 11853+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11854 11855 11856-Wunknown-attributes 11857-------------------- 11858This diagnostic is enabled by default. 11859 11860**Diagnostic text:** 11861 11862+-----------------------------------------------------------------------------------------------------------+ 11863|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`| 11864+-----------------------------------------------------------------------------------------------------------+ 11865 11866 11867-Wunknown-escape-sequence 11868------------------------- 11869This diagnostic is enabled by default. 11870 11871**Diagnostic text:** 11872 11873+-----------------------------------------------------------------------------------------------+ 11874|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`| 11875+-----------------------------------------------------------------------------------------------+ 11876 11877 11878-Wunknown-pragmas 11879----------------- 11880Some of the diagnostics controlled by this flag are enabled by default. 11881 11882**Diagnostic text:** 11883 11884+------------------------------------------------------------------------------------+ 11885|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`| 11886+------------------------------------------------------------------------------------+ 11887 11888+--------------------------------------------------------------------------+ 11889|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`| 11890+--------------------------------------------------------------------------+ 11891 11892+-----------------------------------------------------------------------+ 11893|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`| 11894+-----------------------------------------------------------------------+ 11895 11896+--------------------------------------------------------------------------------------------+ 11897|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`| 11898+--------------------------------------------------------------------------------------------+ 11899 11900+--------------------------------------------------------------------------------------------------------------------------+ 11901|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`| 11902+--------------------------------------------------------------------------------------------------------------------------+ 11903 11904+----------------------------------------------------------------------------------------------+ 11905|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`| 11906+----------------------------------------------------------------------------------------------+ 11907 11908+----------------------------------------------------------------------------+ 11909|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`| 11910+----------------------------------------------------------------------------+ 11911 11912+----------------------------------------------------------------------------------------------------------------+ 11913|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected '`:placeholder:`A`:diagtext:`'`| 11914+----------------------------------------------------------------------------------------------------------------+ 11915 11916+------------------------------------------------------------------------------------------------------------------------------------------------+ 11917|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set invalid value '`:placeholder:`A`:diagtext:`', only 'UTF-8' is supported`| 11918+------------------------------------------------------------------------------------------------------------------------------------------------+ 11919 11920+-------------------------------------------------------------------------------------------------+ 11921|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected 'push' or 'pop'`| 11922+-------------------------------------------------------------------------------------------------+ 11923 11924+-------------------------------------------------------------+ 11925|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`| 11926+-------------------------------------------------------------+ 11927 11928+----------------------------------------------------------------------------------------------------+ 11929|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`| 11930+----------------------------------------------------------------------------------------------------+ 11931 11932+--------------------------------------------------------------------------------------+ 11933|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`| 11934+--------------------------------------------------------------------------------------+ 11935 11936+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11937|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`| 11938+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11939 11940+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11941|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`| 11942+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11943 11944+----------------------------------------------------------------------------------------------+ 11945|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`| 11946+----------------------------------------------------------------------------------------------+ 11947 11948+--------------------------------------------------------------------------------+ 11949|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`| 11950+--------------------------------------------------------------------------------+ 11951 11952+----------------------------------------------------------------------------------------------------+ 11953|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`| 11954+----------------------------------------------------------------------------------------------------+ 11955 11956+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11957|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`| 11958+-----------------------------------------------------------------------------------------------------------------------------------------------+ 11959 11960+----------------------------------------------------------------------------------------------------+ 11961|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`| 11962+----------------------------------------------------------------------------------------------------+ 11963 11964 11965-Wunknown-sanitizers 11966-------------------- 11967This diagnostic is enabled by default. 11968 11969**Diagnostic text:** 11970 11971+-----------------------------------------------------------------------------------------------+ 11972|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`| 11973+-----------------------------------------------------------------------------------------------+ 11974 11975 11976-Wunknown-warning-option 11977------------------------ 11978This diagnostic is enabled by default. 11979 11980**Diagnostic text:** 11981 11982+----------------------------------------------------------------------------------------------------+ 11983|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`| 11984+----------------------------------------------------------------------------------------------------+ 11985 11986+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 11987|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+| 11988| ||:diagtext:`warning`|| || || 11989| |+-------------------+| |+------------------------------------------------------------+| 11990| ||:diagtext:`remark` || ||+----------------------------------------------------------+|| 11991| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`||| 11992| | | ||+----------------------------------------------------------+|| 11993| | | |+------------------------------------------------------------+| 11994+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 11995 11996+-------------------------------------------------------------------------------------------------------------------------------------------+ 11997|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`| 11998+-------------------------------------------------------------------------------------------------------------------------------------------+ 11999 12000 12001-Wunnamed-type-template-args 12002---------------------------- 12003Some of the diagnostics controlled by this flag are enabled by default. 12004 12005Also controls `-Wc++98-compat-unnamed-type-template-args`_. 12006 12007**Diagnostic text:** 12008 12009+--------------------------------------------------------------------------+ 12010|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`| 12011+--------------------------------------------------------------------------+ 12012 12013 12014-Wunneeded-internal-declaration 12015------------------------------- 12016**Diagnostic text:** 12017 12018+---------------------------+----------------------+---------------------------------------------------------------------------------+ 12019|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`| 12020| ||:diagtext:`function`|| | 12021| |+--------------------+| | 12022| ||:diagtext:`variable`|| | 12023| |+--------------------+| | 12024+---------------------------+----------------------+---------------------------------------------------------------------------------+ 12025 12026+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12027|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`| 12028+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12029 12030 12031-Wunneeded-member-function 12032-------------------------- 12033**Diagnostic text:** 12034 12035+---------------------------------------------------------------------------------------------------------------------------------------+ 12036|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`| 12037+---------------------------------------------------------------------------------------------------------------------------------------+ 12038 12039 12040-Wunreachable-code 12041------------------ 12042Also controls `-Wunreachable-code-loop-increment`_. 12043 12044**Diagnostic text:** 12045 12046+------------------------------------------------------------------+ 12047|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`| 12048+------------------------------------------------------------------+ 12049 12050 12051-Wunreachable-code-aggressive 12052----------------------------- 12053Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_. 12054 12055 12056-Wunreachable-code-break 12057------------------------ 12058**Diagnostic text:** 12059 12060+---------------------------------------------------------------------+ 12061|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`| 12062+---------------------------------------------------------------------+ 12063 12064 12065-Wunreachable-code-loop-increment 12066--------------------------------- 12067**Diagnostic text:** 12068 12069+-------------------------------------------------------------------------------------------------+ 12070|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`| 12071+-------------------------------------------------------------------------------------------------+ 12072 12073 12074-Wunreachable-code-return 12075------------------------- 12076**Diagnostic text:** 12077 12078+----------------------------------------------------------------------+ 12079|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`| 12080+----------------------------------------------------------------------+ 12081 12082 12083-Wunsequenced 12084------------- 12085This diagnostic is enabled by default. 12086 12087**Diagnostic text:** 12088 12089+----------------------------------------------------------------------------------------------------+ 12090|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`| 12091+----------------------------------------------------------------------------------------------------+ 12092 12093+-----------------------------------------------------------------------------------------------------+ 12094|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`| 12095+-----------------------------------------------------------------------------------------------------+ 12096 12097 12098-Wunsupported-abs 12099----------------- 12100This diagnostic is enabled by default. 12101 12102**Diagnostic text:** 12103 12104+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12105|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 12106+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12107 12108+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12109|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 12110+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12111 12112 12113-Wunsupported-availability-guard 12114-------------------------------- 12115This diagnostic is enabled by default. 12116 12117**Diagnostic text:** 12118 12119+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 12120|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`| 12121| ||:diagtext:`@available` || ||:diagtext:`@available` || | 12122| |+----------------------------------+| |+----------------------------------+| | 12123| ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| | 12124| |+----------------------------------+| |+----------------------------------+| | 12125+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 12126 12127 12128-Wunsupported-cb 12129---------------- 12130This diagnostic is enabled by default. 12131 12132**Diagnostic text:** 12133 12134+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 12135|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 12136+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 12137 12138 12139-Wunsupported-dll-base-class-template 12140------------------------------------- 12141**Diagnostic text:** 12142 12143+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 12144|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`| 12145| ||:diagtext:`already instantiated` || | 12146| |+----------------------------------+| | 12147| ||:diagtext:`explicitly specialized`|| | 12148| |+----------------------------------+| | 12149+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 12150 12151 12152-Wunsupported-friend 12153-------------------- 12154This diagnostic is enabled by default. 12155 12156**Diagnostic text:** 12157 12158+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12159|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`| 12160+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12161 12162+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12163|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`| 12164+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12165 12166 12167-Wunsupported-gpopt 12168------------------- 12169This diagnostic is enabled by default. 12170 12171**Diagnostic text:** 12172 12173+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 12174|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 12175| || || | 12176| |+-----------------------------------------+| | 12177| ||:diagtext:`the implicit usage of` |nbsp| || | 12178| |+-----------------------------------------+| | 12179+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 12180 12181 12182-Wunsupported-nan 12183----------------- 12184This diagnostic is enabled by default. 12185 12186**Diagnostic text:** 12187 12188+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12189|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 12190+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12191 12192+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12193|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 12194+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12195 12196 12197-Wunsupported-target-opt 12198------------------------ 12199This diagnostic is enabled by default. 12200 12201**Diagnostic text:** 12202 12203+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12204|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 12205+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12206 12207 12208-Wunsupported-visibility 12209------------------------ 12210This diagnostic is enabled by default. 12211 12212**Diagnostic text:** 12213 12214+------------------------------------------------------------------------------------------------------+ 12215|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`| 12216+------------------------------------------------------------------------------------------------------+ 12217 12218 12219-Wunusable-partial-specialization 12220--------------------------------- 12221This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error. 12222 12223**Diagnostic text:** 12224 12225+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 12226|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`| 12227| ||:diagtext:`class` || ||:diagtext:`a template parameter`|| | 12228| |+--------------------+| |+--------------------------------+| | 12229| ||:diagtext:`variable`|| ||:diagtext:`template parameters` || | 12230| |+--------------------+| |+--------------------------------+| | 12231+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 12232 12233 12234-Wunused 12235-------- 12236Some of the diagnostics controlled by this flag are enabled by default. 12237 12238Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_. 12239 12240 12241-Wunused-argument 12242----------------- 12243This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 12244 12245-Wunused-command-line-argument 12246------------------------------ 12247This diagnostic is enabled by default. 12248 12249**Diagnostic text:** 12250 12251+-------------------------------------------------------------------------------------------------------------------------------+ 12252|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`| 12253+-------------------------------------------------------------------------------------------------------------------------------+ 12254 12255+---------------------------------------------------------------------------------------------------------------+ 12256|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`| 12257+---------------------------------------------------------------------------------------------------------------+ 12258 12259+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 12260|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+| 12261| ||+------------------------------------------------------------------+|| 12262| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`||| 12263| ||+------------------------------------------------------------------+|| 12264| |+--------------------------------------------------------------------+| 12265| || || 12266| |+--------------------------------------------------------------------+| 12267+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 12268 12269+----------------------------------------------------------------------------------------------------------------+ 12270|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`| 12271+----------------------------------------------------------------------------------------------------------------+ 12272 12273+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 12274|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+| 12275| ||+-------------------------------------------------------------------------+|| 12276| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`||| 12277| ||+-------------------------------------------------------------------------+|| 12278| |+---------------------------------------------------------------------------+| 12279| || || 12280| |+---------------------------------------------------------------------------+| 12281+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 12282 12283+---------------------------------------------------------------------------------------------------------+ 12284|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`| 12285+---------------------------------------------------------------------------------------------------------+ 12286 12287+----------------------------------------------------------------------------------------------------------------------+ 12288|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`| 12289+----------------------------------------------------------------------------------------------------------------------+ 12290 12291 12292-Wunused-comparison 12293------------------- 12294This diagnostic is enabled by default. 12295 12296**Diagnostic text:** 12297 12298+---------------------------+------------------------+--------------------------------------------+ 12299|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`| 12300| ||:diagtext:`equality` || | 12301| |+----------------------+| | 12302| ||:diagtext:`inequality`|| | 12303| |+----------------------+| | 12304| ||:diagtext:`relational`|| | 12305| |+----------------------+| | 12306| ||:diagtext:`three-way` || | 12307| |+----------------------+| | 12308+---------------------------+------------------------+--------------------------------------------+ 12309 12310 12311-Wunused-const-variable 12312----------------------- 12313**Diagnostic text:** 12314 12315+------------------------------------------------------------------------------+ 12316|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 12317+------------------------------------------------------------------------------+ 12318 12319 12320-Wunused-exception-parameter 12321---------------------------- 12322**Diagnostic text:** 12323 12324+-----------------------------------------------------------------------------------------+ 12325|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`| 12326+-----------------------------------------------------------------------------------------+ 12327 12328 12329-Wunused-function 12330----------------- 12331Also controls `-Wunneeded-internal-declaration`_. 12332 12333**Diagnostic text:** 12334 12335+------------------------------------------------------------------------------+ 12336|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`| 12337+------------------------------------------------------------------------------+ 12338 12339 12340-Wunused-getter-return-value 12341---------------------------- 12342This diagnostic is enabled by default. 12343 12344**Diagnostic text:** 12345 12346+------------------------------------------------------------------------------------------------------------------+ 12347|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`| 12348+------------------------------------------------------------------------------------------------------------------+ 12349 12350 12351-Wunused-label 12352-------------- 12353**Diagnostic text:** 12354 12355+---------------------------------------------------------------------------+ 12356|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`| 12357+---------------------------------------------------------------------------+ 12358 12359 12360-Wunused-lambda-capture 12361----------------------- 12362**Diagnostic text:** 12363 12364+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 12365|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+| 12366| ||:diagtext:`used` || 12367| |+------------------------------------------------+| 12368| ||:diagtext:`required to be captured for this use`|| 12369| |+------------------------------------------------+| 12370+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 12371 12372 12373-Wunused-local-typedef 12374---------------------- 12375**Diagnostic text:** 12376 12377+-----------------------------------------------------+------------------------+------------------------+ 12378|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`| 12379| ||:diagtext:`typedef` || | 12380| |+----------------------+| | 12381| ||:diagtext:`type alias`|| | 12382| |+----------------------+| | 12383+-----------------------------------------------------+------------------------+------------------------+ 12384 12385 12386-Wunused-local-typedefs 12387----------------------- 12388Synonym for `-Wunused-local-typedef`_. 12389 12390 12391-Wunused-macros 12392--------------- 12393**Diagnostic text:** 12394 12395+--------------------------------------------------------+ 12396|:warning:`warning:` |nbsp| :diagtext:`macro is not used`| 12397+--------------------------------------------------------+ 12398 12399 12400-Wunused-member-function 12401------------------------ 12402Also controls `-Wunneeded-member-function`_. 12403 12404**Diagnostic text:** 12405 12406+-------------------------------------------------------------------------------------+ 12407|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`| 12408+-------------------------------------------------------------------------------------+ 12409 12410 12411-Wunused-parameter 12412------------------ 12413**Diagnostic text:** 12414 12415+-------------------------------------------------------------------------------+ 12416|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`| 12417+-------------------------------------------------------------------------------+ 12418 12419 12420-Wunused-private-field 12421---------------------- 12422**Diagnostic text:** 12423 12424+-----------------------------------------------------------------------------------------------------------+ 12425|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`| 12426+-----------------------------------------------------------------------------------------------------------+ 12427 12428 12429-Wunused-property-ivar 12430---------------------- 12431**Diagnostic text:** 12432 12433+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12434|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`| 12435+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12436 12437 12438-Wunused-result 12439--------------- 12440This diagnostic is enabled by default. 12441 12442**Diagnostic text:** 12443 12444+-------------------------------------------------------------------------------------------------------------------------------------------+ 12445|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 12446+-------------------------------------------------------------------------------------------------------------------------------------------+ 12447 12448 12449-Wunused-template 12450----------------- 12451Also controls `-Wunneeded-internal-declaration`_. 12452 12453**Diagnostic text:** 12454 12455+-----------------------------------------------------+----------------------+----------------------------------------------------+ 12456|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`| 12457| ||:diagtext:`function`|| | 12458| |+--------------------+| | 12459| ||:diagtext:`variable`|| | 12460| |+--------------------+| | 12461+-----------------------------------------------------+----------------------+----------------------------------------------------+ 12462 12463 12464-Wunused-value 12465-------------- 12466This diagnostic is enabled by default. 12467 12468Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_. 12469 12470**Diagnostic text:** 12471 12472+-------------------------------------------------------------------------------------------------------------------------------------------+ 12473|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 12474+-------------------------------------------------------------------------------------------------------------------------------------------+ 12475 12476+----------------------------------------------------------------------------------------------------------------------------+ 12477|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`| 12478+----------------------------------------------------------------------------------------------------------------------------+ 12479 12480+---------------------------------------------------------------+ 12481|:warning:`warning:` |nbsp| :diagtext:`expression result unused`| 12482+---------------------------------------------------------------+ 12483 12484+-----------------------------------------------------------------------------------------------+ 12485|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`| 12486+-----------------------------------------------------------------------------------------------+ 12487 12488 12489-Wunused-variable 12490----------------- 12491Also controls `-Wunused-const-variable`_. 12492 12493**Diagnostic text:** 12494 12495+------------------------------------------------------------------------------+ 12496|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 12497+------------------------------------------------------------------------------+ 12498 12499 12500-Wunused-volatile-lvalue 12501------------------------ 12502This diagnostic is enabled by default. 12503 12504**Diagnostic text:** 12505 12506+----------------------------------------------------------------------------------------------------------------+ 12507|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`| 12508+----------------------------------------------------------------------------------------------------------------+ 12509 12510 12511-Wused-but-marked-unused 12512------------------------ 12513**Diagnostic text:** 12514 12515+---------------------------------------------------------------------------------------------+ 12516|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`| 12517+---------------------------------------------------------------------------------------------+ 12518 12519 12520-Wuser-defined-literals 12521----------------------- 12522This diagnostic is enabled by default. 12523 12524**Diagnostic text:** 12525 12526+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 12527|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+| 12528| ||:diagtext:`; no literal will invoke this operator`|| 12529| |+--------------------------------------------------+| 12530| || || 12531| |+--------------------------------------------------+| 12532+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 12533 12534 12535-Wuser-defined-warnings 12536----------------------- 12537This diagnostic is enabled by default. 12538 12539**Diagnostic text:** 12540 12541The text of this diagnostic is not controlled by Clang. 12542 12543 12544-Wvarargs 12545--------- 12546This diagnostic is enabled by default. 12547 12548**Diagnostic text:** 12549 12550+-----------------------------------------------------------------------------------------------------+ 12551|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`| 12552+-----------------------------------------------------------------------------------------------------+ 12553 12554+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12555|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`| 12556+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12557 12558+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 12559|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`| 12560| ||:diagtext:`an object that undergoes default argument promotion`|| | 12561| |+---------------------------------------------------------------+| | 12562| ||:diagtext:`an object of reference type` || | 12563| |+---------------------------------------------------------------+| | 12564| ||:diagtext:`a parameter declared with the 'register' keyword` || | 12565| |+---------------------------------------------------------------+| | 12566+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 12567 12568 12569-Wvariadic-macros 12570----------------- 12571Some of the diagnostics controlled by this flag are enabled by default. 12572 12573**Diagnostic text:** 12574 12575+--------------------------------------------------------------------------------+ 12576|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 12577+--------------------------------------------------------------------------------+ 12578 12579+-----------------------------------------------------------------------------------------------------------+ 12580|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`| 12581+-----------------------------------------------------------------------------------------------------------+ 12582 12583+------------------------------------------------------------------------+ 12584|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 12585+------------------------------------------------------------------------+ 12586 12587 12588-Wvec-elem-size 12589--------------- 12590This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error. 12591 12592**Diagnostic text:** 12593 12594+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12595|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 12596+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12597 12598 12599-Wvector-conversion 12600------------------- 12601**Diagnostic text:** 12602 12603+------------------------------------------------------------------------+----------------------------------------------------------------+ 12604|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+| 12605| ||:diagtext:`assigning to different types` || 12606| |+--------------------------------------------------------------+| 12607| ||:diagtext:`passing to parameter of different type` || 12608| |+--------------------------------------------------------------+| 12609| ||:diagtext:`returning from function with different return type`|| 12610| |+--------------------------------------------------------------+| 12611| ||:diagtext:`converting between types` || 12612| |+--------------------------------------------------------------+| 12613| ||:diagtext:`initializing with expression of different type` || 12614| |+--------------------------------------------------------------+| 12615| ||:diagtext:`sending to parameter of different type` || 12616| |+--------------------------------------------------------------+| 12617| ||:diagtext:`casting between types` || 12618| |+--------------------------------------------------------------+| 12619+------------------------------------------------------------------------+----------------------------------------------------------------+ 12620 12621 12622-Wvector-conversions 12623-------------------- 12624Synonym for `-Wvector-conversion`_. 12625 12626 12627-Wvexing-parse 12628-------------- 12629This diagnostic is enabled by default. 12630 12631**Diagnostic text:** 12632 12633+----------------------------------------------------------------------------------------------+ 12634|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`| 12635+----------------------------------------------------------------------------------------------+ 12636 12637+-----------------------------------------------------------------------------------------------+ 12638|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`| 12639+-----------------------------------------------------------------------------------------------+ 12640 12641+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12642|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`| 12643+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12644 12645 12646-Wvisibility 12647------------ 12648This diagnostic is enabled by default. 12649 12650**Diagnostic text:** 12651 12652+---------------------------------------------------------------------------------------------------------------------------------------------+ 12653|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 12654+---------------------------------------------------------------------------------------------------------------------------------------------+ 12655 12656+----------------------------------------------------------------------------------------------------------------------------------------------+ 12657|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 12658+----------------------------------------------------------------------------------------------------------------------------------------------+ 12659 12660 12661-Wvla 12662----- 12663**Diagnostic text:** 12664 12665+-----------------------------------------------------------------+ 12666|:warning:`warning:` |nbsp| :diagtext:`variable length array used`| 12667+-----------------------------------------------------------------+ 12668 12669 12670-Wvla-extension 12671--------------- 12672**Diagnostic text:** 12673 12674+-------------------------------------------------------------------------------+ 12675|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`| 12676+-------------------------------------------------------------------------------+ 12677 12678 12679-Wvoid-ptr-dereference 12680---------------------- 12681This diagnostic is enabled by default. 12682 12683**Diagnostic text:** 12684 12685+--------------------------------------------------------------------------------------------------------------------+ 12686|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`| 12687+--------------------------------------------------------------------------------------------------------------------+ 12688 12689 12690-Wvolatile-register-var 12691----------------------- 12692This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 12693 12694-Wweak-template-vtables 12695----------------------- 12696**Diagnostic text:** 12697 12698+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12699|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`| 12700+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12701 12702 12703-Wweak-vtables 12704-------------- 12705**Diagnostic text:** 12706 12707+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12708|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`| 12709+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12710 12711 12712-Wwritable-strings 12713------------------ 12714This diagnostic is enabled by default. 12715 12716Also controls `-Wdeprecated-writable-strings`_. 12717 12718**Diagnostic text:** 12719 12720+-------------------------------------------------------------------------------------------------------------------------+ 12721|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`| 12722+-------------------------------------------------------------------------------------------------------------------------+ 12723 12724 12725-Wwrite-strings 12726--------------- 12727Synonym for `-Wwritable-strings`_. 12728 12729 12730-Wzero-as-null-pointer-constant 12731------------------------------- 12732**Diagnostic text:** 12733 12734+--------------------------------------------------------------------+ 12735|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`| 12736+--------------------------------------------------------------------+ 12737 12738 12739-Wzero-length-array 12740------------------- 12741**Diagnostic text:** 12742 12743+------------------------------------------------------------------------+ 12744|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`| 12745+------------------------------------------------------------------------+ 12746 12747 12748