1.. 2 ------------------------------------------------------------------- 3 NOTE: This file is automatically generated by running clang-tblgen 4 -gen-diag-docs. Do not edit this file by hand!! 5 ------------------------------------------------------------------- 6 7.. Add custom CSS to output. FIXME: This should be put into <head> rather 8 than the start of <body>. 9.. raw:: html 10 11 <style> 12 table.docutils { 13 width: 1px; 14 } 15 table.docutils td { 16 border: none; 17 padding: 0 0 0 0.2em; 18 vertical-align: middle; 19 white-space: nowrap; 20 width: 1px; 21 font-family: monospace; 22 } 23 table.docutils tr + tr { 24 border-top: 0.2em solid #aaa; 25 } 26 .error { 27 font-family: monospace; 28 font-weight: bold; 29 color: #c00; 30 } 31 .warning { 32 font-family: monospace; 33 font-weight: bold; 34 color: #80a; 35 } 36 .remark { 37 font-family: monospace; 38 font-weight: bold; 39 color: #00c; 40 } 41 .diagtext { 42 font-family: monospace; 43 font-weight: bold; 44 } 45 </style> 46 47.. FIXME: rST doesn't support formatting this, so we format all <td> elements 48 as monospace font face instead. 49.. |nbsp| unicode:: 0xA0 50 :trim: 51 52.. Roles generated by clang-tblgen. 53.. role:: error 54.. role:: warning 55.. role:: remark 56.. role:: diagtext 57.. role:: placeholder(emphasis) 58 59========================= 60Diagnostic flags in Clang 61========================= 62.. contents:: 63 :local: 64 65Introduction 66============ 67 68This page lists the diagnostic flags currently supported by Clang. 69 70Diagnostic flags 71================ 72 73-W 74-- 75Synonym for `-Wextra`_. 76 77 78-W#pragma-messages 79------------------ 80This diagnostic is enabled by default. 81 82**Diagnostic text:** 83 84The text of this diagnostic is not controlled by Clang. 85 86 87-W#warnings 88----------- 89This diagnostic is enabled by default. 90 91**Diagnostic text:** 92 93The text of this diagnostic is not controlled by Clang. 94 95 96-WCFString-literal 97------------------ 98This diagnostic is enabled by default. 99 100**Diagnostic text:** 101 102+------------------------------------------------------------------------------------------------------------------------------------+ 103|:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`| 104+------------------------------------------------------------------------------------------------------------------------------------+ 105 106 107-WCL4 108----- 109Some of the diagnostics controlled by this flag are enabled by default. 110 111Controls `-Wall`_, `-Wextra`_. 112 113 114-WIndependentClass-attribute 115---------------------------- 116This diagnostic is enabled by default. 117 118**Diagnostic text:** 119 120+------------------------------------------------------------------------------------------------------------------------------+ 121|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`| 122+------------------------------------------------------------------------------------------------------------------------------+ 123 124+----------------------------------------------------------------------------------------------------------------------------------------------------+ 125|:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`| 126+----------------------------------------------------------------------------------------------------------------------------------------------------+ 127 128 129-WNSObject-attribute 130-------------------- 131This diagnostic is enabled by default. 132 133**Diagnostic text:** 134 135+--------------------------------------------------------------------------------------------------------------+ 136|:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`| 137+--------------------------------------------------------------------------------------------------------------+ 138 139 140-Wabi 141----- 142This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 143 144-Wabsolute-value 145---------------- 146This diagnostic is enabled by default. 147 148**Diagnostic text:** 149 150+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 151|:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`| 152+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 153 154+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 155|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`| 156| ||:diagtext:`pointer` || | 157| |+--------------------+| | 158| ||:diagtext:`function`|| | 159| |+--------------------+| | 160| ||:diagtext:`array` || | 161| |+--------------------+| | 162+---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ 163 164+------------------------------------------------------------------------------------------------------------------------------------------+ 165|:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`| 166+------------------------------------------------------------------------------------------------------------------------------------------+ 167 168+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 169|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`| 170| ||:diagtext:`integer` || ||:diagtext:`integer` || | 171| |+--------------------------+| |+--------------------------+| | 172| ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| | 173| |+--------------------------+| |+--------------------------+| | 174| ||:diagtext:`complex` || ||:diagtext:`complex` || | 175| |+--------------------------+| |+--------------------------+| | 176+----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ 177 178 179-Wabstract-final-class 180---------------------- 181This diagnostic is enabled by default. 182 183**Diagnostic text:** 184 185+-----------------------------------------------------------------+--------------------+-------------+ 186|:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`| 187| ||:diagtext:`final` || | 188| |+------------------+| | 189| ||:diagtext:`sealed`|| | 190| |+------------------+| | 191+-----------------------------------------------------------------+--------------------+-------------+ 192 193 194-Wabstract-vbase-init 195--------------------- 196**Diagnostic text:** 197 198+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 199|:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`| 200+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 201 202 203-Waddress 204--------- 205This diagnostic is enabled by default. 206 207Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_. 208 209 210-Waddress-of-packed-member 211-------------------------- 212This diagnostic is enabled by default. 213 214**Diagnostic text:** 215 216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 217|:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`| 218+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 219 220 221-Waddress-of-temporary 222---------------------- 223This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error. 224 225**Diagnostic text:** 226 227+-----------------------------------------------------------------------------------------------------------+ 228|:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`| 229+-----------------------------------------------------------------------------------------------------------+ 230 231 232-Waggregate-return 233------------------ 234This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 235 236-Wall 237----- 238Some of the diagnostics controlled by this flag are enabled by default. 239 240Controls `-Wmisleading-indentation`_, `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_. 241 242 243-Walloca 244-------- 245**Diagnostic text:** 246 247+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 248|:warning:`warning:` |nbsp| :diagtext:`use of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability`| 249+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 250 251 252-Walloca-with-align-alignof 253--------------------------- 254This diagnostic is enabled by default. 255 256**Diagnostic text:** 257 258+--------------------------------------------------------------------------------------------------------------------+ 259|:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`| 260+--------------------------------------------------------------------------------------------------------------------+ 261 262 263-Wambiguous-delete 264------------------ 265This diagnostic is enabled by default. 266 267**Diagnostic text:** 268 269+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 270|:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`| 271+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 272 273 274-Wambiguous-ellipsis 275-------------------- 276This diagnostic is enabled by default. 277 278**Diagnostic text:** 279 280+------------------------------------------------------------------------------------------------+---------------------------------------------+ 281|:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+| 282| ||:diagtext:`, not a function parameter pack`|| 283| |+-------------------------------------------+| 284| || || 285| |+-------------------------------------------+| 286+------------------------------------------------------------------------------------------------+---------------------------------------------+ 287 288 289-Wambiguous-macro 290----------------- 291This diagnostic is enabled by default. 292 293**Diagnostic text:** 294 295+-------------------------------------------------------------------------------------------+ 296|:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`| 297+-------------------------------------------------------------------------------------------+ 298 299 300-Wambiguous-member-template 301--------------------------- 302This diagnostic is enabled by default. 303 304**Diagnostic text:** 305 306+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 307|:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`| 308+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 309 310 311-Wambiguous-reversed-operator 312----------------------------- 313This diagnostic is enabled by default. 314 315**Diagnostic text:** 316 317+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+ 318|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 considers use of overloaded operator '`:placeholder:`A`:diagtext:`' (with operand types` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`:diagtext:`) to be ambiguous despite there being a unique best viable function`|+-----------------------------------------------+| 319| || |nbsp| :diagtext:`with non-reversed arguments`|| 320| |+-----------------------------------------------+| 321| || || 322| |+-----------------------------------------------+| 323+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------+ 324 325 326-Wanalyzer-incompatible-plugin 327------------------------------ 328This diagnostic is enabled by default. 329 330**Diagnostic text:** 331 332+----------------------------------------------------------------------------------------------------------------------------------------+ 333|:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`| 334+----------------------------------------------------------------------------------------------------------------------------------------+ 335 336 337-Wanon-enum-enum-conversion 338--------------------------- 339Some of the diagnostics controlled by this flag are enabled by default. 340 341Also controls `-Wdeprecated-anon-enum-enum-conversion`_. 342 343**Diagnostic text:** 344 345+---------------------------+--------------------------------------------+-----------------------------------------------+ 346|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`| 347| ||:diagtext:`arithmetic between` || | 348| |+------------------------------------------+| | 349| ||:diagtext:`bitwise operation between` || | 350| |+------------------------------------------+| | 351| ||:diagtext:`comparison of` || | 352| |+------------------------------------------+| | 353| ||:diagtext:`conditional expression between`|| | 354| |+------------------------------------------+| | 355| ||:diagtext:`compound assignment of` || | 356| |+------------------------------------------+| | 357+---------------------------+--------------------------------------------+-----------------------------------------------+ 358 359 360-Wanonymous-pack-parens 361----------------------- 362This diagnostic is enabled by default. 363 364**Diagnostic text:** 365 366+---------------------------------------------------------------------------------------------------------+ 367|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`| 368+---------------------------------------------------------------------------------------------------------+ 369 370 371-Warc 372----- 373This diagnostic is enabled by default. 374 375Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_. 376 377 378-Warc-bridge-casts-disallowed-in-nonarc 379--------------------------------------- 380This diagnostic is enabled by default. 381 382**Diagnostic text:** 383 384+-------------------------------------------------------------------------------------------------------------+ 385|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`| 386+-------------------------------------------------------------------------------------------------------------+ 387 388 389-Warc-maybe-repeated-use-of-weak 390-------------------------------- 391**Diagnostic text:** 392 393+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 394|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 395| ||:diagtext:`variable` || ||:diagtext:`function`|| | 396| |+-----------------------------+| |+--------------------+| | 397| ||:diagtext:`property` || ||:diagtext:`method` || | 398| |+-----------------------------+| |+--------------------+| | 399| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 400| |+-----------------------------+| |+--------------------+| | 401| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 402| |+-----------------------------+| |+--------------------+| | 403+---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 404 405 406-Warc-non-pod-memaccess 407----------------------- 408This diagnostic is enabled by default. 409 410**Diagnostic text:** 411 412+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 413|:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`| 414| ||:diagtext:`destination for`|| | 415| |+---------------------------+| | 416| ||:diagtext:`source of` || | 417| |+---------------------------+| | 418+---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ 419 420 421-Warc-performSelector-leaks 422--------------------------- 423This diagnostic is enabled by default. 424 425**Diagnostic text:** 426 427+-------------------------------------------------------------------------------------------------------+ 428|:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`| 429+-------------------------------------------------------------------------------------------------------+ 430 431 432-Warc-repeated-use-of-weak 433-------------------------- 434Also controls `-Warc-maybe-repeated-use-of-weak`_. 435 436**Diagnostic text:** 437 438+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 439|:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`| 440| ||:diagtext:`variable` || ||:diagtext:`function`|| | 441| |+-----------------------------+| |+--------------------+| | 442| ||:diagtext:`property` || ||:diagtext:`method` || | 443| |+-----------------------------+| |+--------------------+| | 444| ||:diagtext:`implicit property`|| ||:diagtext:`block` || | 445| |+-----------------------------+| |+--------------------+| | 446| ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | 447| |+-----------------------------+| |+--------------------+| | 448+---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ 449 450 451-Warc-retain-cycles 452------------------- 453This diagnostic is enabled by default. 454 455**Diagnostic text:** 456 457+------------------------------------------------------------------------------------------------------------------------------------------------------+ 458|:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`| 459+------------------------------------------------------------------------------------------------------------------------------------------------------+ 460 461 462-Warc-unsafe-retained-assign 463---------------------------- 464This diagnostic is enabled by default. 465 466**Diagnostic text:** 467 468+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 469|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 470| ||:diagtext:`array literal` || ||:diagtext:`property`|| | 471| |+-------------------------------+| |+--------------------+| | 472| ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| | 473| |+-------------------------------+| |+--------------------+| | 474| ||:diagtext:`numeric literal` || | | | 475| |+-------------------------------+| | | | 476| ||:diagtext:`boxed expression` || | | | 477| |+-------------------------------+| | | | 478| ||:diagtext:`<should not happen>`|| | | | 479| |+-------------------------------+| | | | 480| ||:diagtext:`block literal` || | | | 481| |+-------------------------------+| | | | 482+--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ 483 484+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 485|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| 486| ||:diagtext:`weak` || ||:diagtext:`property`|| | 487| |+------------------------------+| |+--------------------+| | 488| ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| | 489| |+------------------------------+| |+--------------------+| | 490+---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ 491 492+-----------------------------------------------------------------------------------------------------------------------------+ 493|:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`| 494+-----------------------------------------------------------------------------------------------------------------------------+ 495 496 497-Wargument-outside-range 498------------------------ 499This diagnostic is an error by default, but the flag ``-Wno-argument-outside-range`` can be used to disable the error. 500 501**Diagnostic text:** 502 503+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 504|:error:`error:` |nbsp| :diagtext:`argument value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is outside the valid range \[`:placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`\]`| 505+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 506 507 508-Warray-bounds 509-------------- 510This diagnostic is enabled by default. 511 512**Diagnostic text:** 513 514+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 515|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 516| || || | 517| |+-------------+| | 518| ||:diagtext:`s`|| | 519| |+-------------+| | 520+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 521 522+----------------------------------------------------------------------------------------------------------------------------------+ 523|:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`| 524+----------------------------------------------------------------------------------------------------------------------------------+ 525 526+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+ 527|:warning:`warning:` |nbsp| :diagtext:`array argument is too small;` |nbsp| |+--------------------------------------------------------------------------+|:diagtext:`, callee requires at least` |nbsp| :placeholder:`B`| 528| ||+------------------------------------------------------------------------+|| | 529| |||:diagtext:`contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements`||| | 530| ||+------------------------------------------------------------------------+|| | 531| |+--------------------------------------------------------------------------+| | 532| ||+----------------------------------------------+ || | 533| |||:diagtext:`is of size` |nbsp| :placeholder:`A`| || | 534| ||+----------------------------------------------+ || | 535| |+--------------------------------------------------------------------------+| | 536+---------------------------------------------------------------------------+----------------------------------------------------------------------------+--------------------------------------------------------------+ 537 538+-----------------------------------------------------------------------------------+ 539|:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`| 540+-----------------------------------------------------------------------------------+ 541 542 543-Warray-bounds-pointer-arithmetic 544--------------------------------- 545**Diagnostic text:** 546 547+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 548|:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| 549| || || | 550| |+-------------+| | 551| ||:diagtext:`s`|| | 552| |+-------------+| | 553+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ 554 555+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 556|:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`| 557+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 558 559 560-Wasm 561----- 562Synonym for `-Wasm-operand-widths`_. 563 564 565-Wasm-operand-widths 566-------------------- 567This diagnostic is enabled by default. 568 569**Diagnostic text:** 570 571+-----------------------------------------------------------------------------------------------------------------------+ 572|:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`| 573+-----------------------------------------------------------------------------------------------------------------------+ 574 575 576-Wassign-enum 577------------- 578**Diagnostic text:** 579 580+---------------------------------------------------------------------------------------------------------------+ 581|:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`| 582+---------------------------------------------------------------------------------------------------------------+ 583 584 585-Wassume 586-------- 587This diagnostic is enabled by default. 588 589**Diagnostic text:** 590 591+-----------------------------------------------------------------------------------------------------------------------------------------+ 592|:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`| 593+-----------------------------------------------------------------------------------------------------------------------------------------+ 594 595 596-Wat-protocol 597------------- 598This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 599 600-Watimport-in-framework-header 601------------------------------ 602This diagnostic is enabled by default. 603 604**Diagnostic text:** 605 606+------------------------------------------------------------------------------------------------------------------------------------+ 607|:warning:`warning:` |nbsp| :diagtext:`use of '@import' in framework header is discouraged, including this header requires -fmodules`| 608+------------------------------------------------------------------------------------------------------------------------------------+ 609 610 611-Watomic-alignment 612------------------ 613This diagnostic is enabled by default. 614 615**Diagnostic text:** 616 617+---------------------------+------------------------+------------------------------------------------------------------------------+ 618|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`atomic operation may incur significant performance penalty`| 619| ||:diagtext:`large` || | 620| |+----------------------+| | 621| ||:diagtext:`misaligned`|| | 622| |+----------------------+| | 623+---------------------------+------------------------+------------------------------------------------------------------------------+ 624 625 626-Watomic-implicit-seq-cst 627------------------------- 628**Diagnostic text:** 629 630+---------------------------------------------------------------------------------------------------------------------------------------+ 631|:warning:`warning:` |nbsp| :diagtext:`implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary`| 632+---------------------------------------------------------------------------------------------------------------------------------------+ 633 634 635-Watomic-memory-ordering 636------------------------ 637This diagnostic is enabled by default. 638 639**Diagnostic text:** 640 641+-------------------------------------------------------------------------------------------+ 642|:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`| 643+-------------------------------------------------------------------------------------------+ 644 645 646-Watomic-properties 647------------------- 648Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_. 649 650 651-Watomic-property-with-user-defined-accessor 652-------------------------------------------- 653This diagnostic is enabled by default. 654 655**Diagnostic text:** 656 657+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 658|:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+| 659| ||:diagtext:`getter`|| ||:diagtext:`getter`|| 660| |+------------------+| |+------------------+| 661| ||:diagtext:`setter`|| ||:diagtext:`setter`|| 662| |+------------------+| |+------------------+| 663+--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ 664 665 666-Wattribute-packed-for-bitfield 667------------------------------- 668This diagnostic is enabled by default. 669 670**Diagnostic text:** 671 672+-------------------------------------------------------------------------------------------------------------------------------------------------+ 673|:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`| 674+-------------------------------------------------------------------------------------------------------------------------------------------------+ 675 676 677-Wattributes 678------------ 679This diagnostic is enabled by default. 680 681Controls `-Wignored-attributes`_, `-Wunknown-attributes`_. 682 683 684-Wauto-disable-vptr-sanitizer 685----------------------------- 686This diagnostic is enabled by default. 687 688**Diagnostic text:** 689 690+------------------------------------------------------------------------------------------------------+ 691|:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`| 692+------------------------------------------------------------------------------------------------------+ 693 694 695-Wauto-import 696------------- 697**Diagnostic text:** 698 699+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 700|:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`| 701| ||:diagtext:`include` || | 702| |+-------------------------------+| | 703| ||:diagtext:`import` || | 704| |+-------------------------------+| | 705| ||:diagtext:`include\_next` || | 706| |+-------------------------------+| | 707| ||:diagtext:`\_\_include\_macros`|| | 708| |+-------------------------------+| | 709+-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ 710 711 712-Wauto-storage-class 713-------------------- 714This diagnostic is enabled by default. 715 716**Diagnostic text:** 717 718+---------------------------------------------------------------------------------------------------------------------------------------------+ 719|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`| 720+---------------------------------------------------------------------------------------------------------------------------------------------+ 721 722 723-Wauto-var-id 724------------- 725This diagnostic is enabled by default. 726 727**Diagnostic text:** 728 729+-------------------------------------------------------------------------------------------------------+ 730|:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`| 731+-------------------------------------------------------------------------------------------------------+ 732 733 734-Wavailability 735-------------- 736This diagnostic is enabled by default. 737 738**Diagnostic text:** 739 740+--------------------------------------------------------------------------------------------------------------+ 741|:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`| 742+--------------------------------------------------------------------------------------------------------------+ 743 744+------------------------------------------------------------------------------+----------------------------------------+ 745|:warning:`warning:` |nbsp| :diagtext:`ignoring availability attribute` |nbsp| |+--------------------------------------+| 746| ||:diagtext:`on '+load' method` || 747| |+--------------------------------------+| 748| ||:diagtext:`with constructor attribute`|| 749| |+--------------------------------------+| 750| ||:diagtext:`with destructor attribute` || 751| |+--------------------------------------+| 752+------------------------------------------------------------------------------+----------------------------------------+ 753 754+---------------------------------------------------------------------------------------------------------------+ 755|:warning:`warning:` |nbsp| :diagtext:`only 'unavailable' and 'deprecated' are supported for Swift availability`| 756+---------------------------------------------------------------------------------------------------------------+ 757 758+------------------------------------------------------------------------------------------------------------------------+ 759|:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`| 760+------------------------------------------------------------------------------------------------------------------------+ 761 762+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 763|:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`| 764| ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| | 765| |+----------------------+| |+----------------------+| | 766| ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| | 767| |+----------------------+| |+----------------------+| | 768| ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || | 769| |+----------------------+| |+----------------------+| | 770+----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ 771 772+---------------------------------------------------------------------------------------------------------------------------+ 773|:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`| 774+---------------------------------------------------------------------------------------------------------------------------+ 775 776+---------------------------------------------------------------------------------------+ 777|:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`| 778+---------------------------------------------------------------------------------------+ 779 780+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 781|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 782| || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| | 783| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 784| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || | 785| |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | 786| | | ||:diagtext:`obsoleted before` || | | | 787| | | |+-----------------------------+| | | | 788+---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 789 790+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 791|:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`| 792| || || ||:diagtext:`the protocol method it implements`|| | 793| |+------------------------------+| |+---------------------------------------------+| | 794| ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || | 795| |+------------------------------+| |+---------------------------------------------+| | 796+---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ 797 798 799-Wavr-rtlib-linking-quirks 800-------------------------- 801This diagnostic is enabled by default. 802 803**Diagnostic text:** 804 805+----------------------------------------------------------------------------------------------------------------------------------------+ 806|:warning:`warning:` |nbsp| :diagtext:`support for linking stdlibs for microcontroller '`:placeholder:`A`:diagtext:`' is not implemented`| 807+----------------------------------------------------------------------------------------------------------------------------------------+ 808 809+-------------------------------------------------------------------------------------------------------------------------+ 810|:warning:`warning:` |nbsp| :diagtext:`no avr-gcc installation can be found on the system, cannot link standard libraries`| 811+-------------------------------------------------------------------------------------------------------------------------+ 812 813+--------------------------------------------------------------------------------------------------------------------------+ 814|:warning:`warning:` |nbsp| :diagtext:`no avr-libc installation can be found on the system, cannot link standard libraries`| 815+--------------------------------------------------------------------------------------------------------------------------+ 816 817+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 818|:warning:`warning:` |nbsp| :diagtext:`no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>`| 819+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 820 821+-----------------------------------------------------------------------------------------------------------------------------------------------+ 822|:warning:`warning:` |nbsp| :diagtext:`standard library not linked and so no interrupt vector table or compiler runtime routines will be linked`| 823+-----------------------------------------------------------------------------------------------------------------------------------------------+ 824 825 826-Wbackend-plugin 827---------------- 828This diagnostic is enabled by default. 829 830**Diagnostic text:** 831 832The text of this diagnostic is not controlled by Clang. 833 834 835-Wbackslash-newline-escape 836-------------------------- 837This diagnostic is enabled by default. 838 839**Diagnostic text:** 840 841+-------------------------------------------------------------------------------+ 842|:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`| 843+-------------------------------------------------------------------------------+ 844 845 846-Wbad-function-cast 847------------------- 848**Diagnostic text:** 849 850+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 851|:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`| 852+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 853 854 855-Wbinary-literal 856---------------- 857Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_. 858 859 860-Wbind-to-temporary-copy 861------------------------ 862Also controls `-Wc++98-compat-bind-to-temporary-copy`_. 863 864**Diagnostic text:** 865 866+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 867|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 868| ||:diagtext:`private` || 869| |+---------------------+| 870| ||:diagtext:`protected`|| 871| |+---------------------+| 872+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 873 874+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 875|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 876| ||:diagtext:`copying variable` || | 877| |+----------------------------------------------------+| | 878| ||:diagtext:`copying parameter` || | 879| |+----------------------------------------------------+| | 880| ||:diagtext:`returning object` || | 881| |+----------------------------------------------------+| | 882| ||:diagtext:`initializing statement expression result`|| | 883| |+----------------------------------------------------+| | 884| ||:diagtext:`throwing object` || | 885| |+----------------------------------------------------+| | 886| ||:diagtext:`copying member subobject` || | 887| |+----------------------------------------------------+| | 888| ||:diagtext:`copying array element` || | 889| |+----------------------------------------------------+| | 890| ||:diagtext:`allocating object` || | 891| |+----------------------------------------------------+| | 892| ||:diagtext:`copying temporary` || | 893| |+----------------------------------------------------+| | 894| ||:diagtext:`initializing base subobject` || | 895| |+----------------------------------------------------+| | 896| ||:diagtext:`initializing vector element` || | 897| |+----------------------------------------------------+| | 898| ||:diagtext:`capturing value` || | 899| |+----------------------------------------------------+| | 900+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 901 902 903-Wbinding-in-condition 904---------------------- 905This diagnostic is enabled by default. 906 907**Diagnostic text:** 908 909+--------------------------------------------------------------------------------------------------------------+ 910|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not permit structured binding declaration in a condition`| 911+--------------------------------------------------------------------------------------------------------------+ 912 913 914-Wbitfield-constant-conversion 915------------------------------ 916This diagnostic is enabled by default. 917 918**Diagnostic text:** 919 920+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 921|:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 922+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 923 924 925-Wbitfield-enum-conversion 926-------------------------- 927**Diagnostic text:** 928 929+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 930|:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`| 931+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 932 933+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 934|:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`| 935+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 936 937+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 938|:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`| 939+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 940 941 942-Wbitfield-width 943---------------- 944This diagnostic is enabled by default. 945 946**Diagnostic text:** 947 948+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 949|:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+| 950| || || 951| |+-------------+| 952| ||:diagtext:`s`|| 953| |+-------------+| 954+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 955 956+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 957|:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+| 958| || || 959| |+-------------+| 960| ||:diagtext:`s`|| 961| |+-------------+| 962+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ 963 964 965-Wbitwise-conditional-parentheses 966--------------------------------- 967This diagnostic is enabled by default. 968 969**Diagnostic text:** 970 971+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 972|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`| 973+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 974 975 976-Wbitwise-op-parentheses 977------------------------ 978**Diagnostic text:** 979 980+-----------------------------------------------------------------------------------------------------------+ 981|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`| 982+-----------------------------------------------------------------------------------------------------------+ 983 984 985-Wblock-capture-autoreleasing 986----------------------------- 987This diagnostic is enabled by default. 988 989**Diagnostic text:** 990 991+-----------------------------------------------------------------------------------------------------------------------------+ 992|:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`| 993+-----------------------------------------------------------------------------------------------------------------------------+ 994 995 996-Wbool-conversion 997----------------- 998This diagnostic is enabled by default. 999 1000Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_. 1001 1002**Diagnostic text:** 1003 1004+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1005|:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`| 1006+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1007 1008 1009-Wbool-conversions 1010------------------ 1011Synonym for `-Wbool-conversion`_. 1012 1013 1014-Wbool-operation 1015---------------- 1016This diagnostic is enabled by default. 1017 1018**Diagnostic text:** 1019 1020+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+ 1021|:warning:`warning:` |nbsp| :diagtext:`bitwise negation of a boolean expression`|+-----------------------------------------------+| |nbsp| :diagtext:`did you mean logical negation?`| 1022| ||:diagtext:`;` || | 1023| |+-----------------------------------------------+| | 1024| || |nbsp| :diagtext:`always evaluates to 'true';`|| | 1025| |+-----------------------------------------------+| | 1026+-------------------------------------------------------------------------------+-------------------------------------------------+--------------------------------------------------+ 1027 1028 1029-Wbraced-scalar-init 1030-------------------- 1031This diagnostic is enabled by default. 1032 1033**Diagnostic text:** 1034 1035+------------------------------------------------------------+----------------------------+-----------------------+ 1036|:warning:`warning:` |nbsp| :diagtext:`braces around` |nbsp| |+--------------------------+|:diagtext:`initializer`| 1037| ||:diagtext:`scalar` |nbsp| || | 1038| |+--------------------------+| | 1039| || || | 1040| |+--------------------------+| | 1041+------------------------------------------------------------+----------------------------+-----------------------+ 1042 1043 1044-Wbridge-cast 1045------------- 1046This diagnostic is enabled by default. 1047 1048**Diagnostic text:** 1049 1050+------------------------------------------------------------------------------------------------------------------------------------------+ 1051|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`| 1052+------------------------------------------------------------------------------------------------------------------------------------------+ 1053 1054+-------------------------------------------------------------------------------------------------------+ 1055|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`| 1056+-------------------------------------------------------------------------------------------------------+ 1057 1058 1059-Wbuiltin-assume-aligned-alignment 1060---------------------------------- 1061This diagnostic is enabled by default. 1062 1063**Diagnostic text:** 1064 1065+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 1066|:warning:`warning:` |nbsp| :diagtext:`requested alignment must be` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes or smaller; maximum alignment assumed`| 1067+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 1068 1069 1070-Wbuiltin-macro-redefined 1071------------------------- 1072This diagnostic is enabled by default. 1073 1074**Diagnostic text:** 1075 1076+---------------------------------------------------------------+ 1077|:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`| 1078+---------------------------------------------------------------+ 1079 1080+---------------------------------------------------------------+ 1081|:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`| 1082+---------------------------------------------------------------+ 1083 1084 1085-Wbuiltin-memcpy-chk-size 1086------------------------- 1087This diagnostic is enabled by default. 1088 1089**Diagnostic text:** 1090 1091+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1092|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 1093+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1094 1095 1096-Wbuiltin-requires-header 1097------------------------- 1098This diagnostic is enabled by default. 1099 1100**Diagnostic text:** 1101 1102+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1103|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`| 1104+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1105 1106 1107-Wc++-compat 1108------------ 1109**Diagnostic text:** 1110 1111+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1112|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 1113| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 1114| |+-------------------------+|+------------------+| |+-------------------------+| | 1115| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 1116| |+-------------------------+|+------------------+| |+-------------------------+| | 1117+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 1118 1119 1120-Wc++0x-compat 1121-------------- 1122Synonym for `-Wc++11-compat`_. 1123 1124 1125-Wc++0x-extensions 1126------------------ 1127Synonym for `-Wc++11-extensions`_. 1128 1129 1130-Wc++0x-narrowing 1131----------------- 1132Synonym for `-Wc++11-narrowing`_. 1133 1134 1135-Wc++11-compat 1136-------------- 1137Some of the diagnostics controlled by this flag are enabled by default. 1138 1139Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_. 1140 1141**Diagnostic text:** 1142 1143+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1144|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1145| ||:diagtext:`have type 'long long'`|| | 1146| |+---------------------------------+| | 1147| ||:diagtext:`be ill-formed` || | 1148| |+---------------------------------+| | 1149+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1150 1151+--------------------------------------------------------------------------------------------------------------+ 1152|:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`| 1153+--------------------------------------------------------------------------------------------------------------+ 1154 1155+-------------------------------------------------------------------------------------------------------------------------+ 1156|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`| 1157+-------------------------------------------------------------------------------------------------------------------------+ 1158 1159+-------------------------------------------------------------------------------------------+ 1160|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`| 1161+-------------------------------------------------------------------------------------------+ 1162 1163+--------------------------------------------------------------------------------------------------------------------------------+ 1164|:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`| 1165+--------------------------------------------------------------------------------------------------------------------------------+ 1166 1167+--------------------------------------------------------------------------------+ 1168|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`| 1169+--------------------------------------------------------------------------------+ 1170 1171+--------------------------------------------------------------------------------------------------------------------------------------+ 1172|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`| 1173+--------------------------------------------------------------------------------------------------------------------------------------+ 1174 1175+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1176|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`| 1177+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1178 1179+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1180|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`| 1181+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1182 1183+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1184|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| 1185| ||:diagtext:`have type 'long long'`|| | 1186| |+---------------------------------+| | 1187| ||:diagtext:`be ill-formed` || | 1188| |+---------------------------------+| | 1189+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ 1190 1191 1192-Wc++11-compat-deprecated-writable-strings 1193------------------------------------------ 1194This diagnostic is enabled by default. 1195 1196**Diagnostic text:** 1197 1198+---------------------------------------------------------------------------------------------------------------------------------+ 1199|:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 1200+---------------------------------------------------------------------------------------------------------------------------------+ 1201 1202 1203-Wc++11-compat-pedantic 1204----------------------- 1205Some of the diagnostics controlled by this flag are enabled by default. 1206 1207Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_. 1208 1209 1210-Wc++11-compat-reserved-user-defined-literal 1211-------------------------------------------- 1212**Diagnostic text:** 1213 1214+----------------------------------------------------------------------------------------------------------------------------------+ 1215|:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`| 1216+----------------------------------------------------------------------------------------------------------------------------------+ 1217 1218 1219-Wc++11-extensions 1220------------------ 1221Some of the diagnostics controlled by this flag are enabled by default. 1222 1223Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_. 1224 1225**Diagnostic text:** 1226 1227+-------------------------------------------------------------------------------+ 1228|:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`| 1229+-------------------------------------------------------------------------------+ 1230 1231+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1232|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 1233| ||:diagtext:`integral` || | 1234| |+-----------------------+| | 1235| ||:diagtext:`enumeration`|| | 1236| |+-----------------------+| | 1237+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 1238 1239+---------------------------------------------------------------------------------+ 1240|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`| 1241+---------------------------------------------------------------------------------+ 1242 1243+-----------------------------------------------------------------------------------------------------------+ 1244|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 1245+-----------------------------------------------------------------------------------------------------------+ 1246 1247+---------------------------+-----------------------+--------------------------------------------------------------+ 1248|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`| 1249| ||:diagtext:`defaulted`|| | 1250| |+---------------------+| | 1251| ||:diagtext:`deleted` || | 1252| |+---------------------+| | 1253+---------------------------+-----------------------+--------------------------------------------------------------+ 1254 1255+-----------------------------------------------------------------------------------------------------------------------------------+ 1256|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1257+-----------------------------------------------------------------------------------------------------------------------------------+ 1258 1259+--------------------------------------------------------------------------------------------------+ 1260|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 1261+--------------------------------------------------------------------------------------------------+ 1262 1263+------------------------------------------------------------------------------------------+ 1264|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`| 1265+------------------------------------------------------------------------------------------+ 1266 1267+-----------------------------------------------------------------------------+ 1268|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 1269+-----------------------------------------------------------------------------+ 1270 1271+--------------------------------------------------------------------------------+ 1272|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`| 1273+--------------------------------------------------------------------------------+ 1274 1275+------------------------------------------------------------------------------------------+ 1276|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`| 1277+------------------------------------------------------------------------------------------+ 1278 1279+---------------------------------------------------------------------------------------------------------+ 1280|:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`| 1281+---------------------------------------------------------------------------------------------------------+ 1282 1283+----------------------------------------------------------------------------------------------------------------------------+ 1284|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| 1285+----------------------------------------------------------------------------------------------------------------------------+ 1286 1287+-------------------------------------------------------------------------------------------------------------+ 1288|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`| 1289+-------------------------------------------------------------------------------------------------------------+ 1290 1291+--------------------------------------------------------------------------------------------------+ 1292|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`| 1293+--------------------------------------------------------------------------------------------------+ 1294 1295+----------------------------------------------------------------------------------------------+ 1296|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`| 1297+----------------------------------------------------------------------------------------------+ 1298 1299+------------------------------------------------------------------------------+ 1300|:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`| 1301+------------------------------------------------------------------------------+ 1302 1303+--------------------------------------------------------------------------------+ 1304|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`| 1305+--------------------------------------------------------------------------------+ 1306 1307+----------------------------------------------------------------------------------------------------------------------------------+ 1308|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`| 1309+----------------------------------------------------------------------------------------------------------------------------------+ 1310 1311+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1312|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`| 1313| ||:diagtext:`function`|| | 1314| |+--------------------+| | 1315| ||:diagtext:`object` || | 1316| |+--------------------+| | 1317+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ 1318 1319+-------------------------------------------------------------------------------+ 1320|:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`| 1321+-------------------------------------------------------------------------------+ 1322 1323+---------------------------------------------------------------------------------------------------------------+ 1324|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`| 1325+---------------------------------------------------------------------------------------------------------------+ 1326 1327+------------------------------------------------------------------------------+ 1328|:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`| 1329+------------------------------------------------------------------------------+ 1330 1331+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1332|:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`| 1333| ||:diagtext:`struct` || | 1334| |+---------------------+| | 1335| ||:diagtext:`interface`|| | 1336| |+---------------------+| | 1337| ||:diagtext:`union` || | 1338| |+---------------------+| | 1339| ||:diagtext:`class` || | 1340| |+---------------------+| | 1341| ||:diagtext:`enum` || | 1342| |+---------------------+| | 1343+------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ 1344 1345+-------------------------------------------------------------------------------+ 1346|:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`| 1347+-------------------------------------------------------------------------------+ 1348 1349 1350-Wc++11-extra-semi 1351------------------ 1352**Diagnostic text:** 1353 1354+-------------------------------------------------------------------------------------------+ 1355|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`| 1356+-------------------------------------------------------------------------------------------+ 1357 1358 1359-Wc++11-inline-namespace 1360------------------------ 1361This diagnostic is enabled by default. 1362 1363**Diagnostic text:** 1364 1365+----------------------------------------------------------------------------+ 1366|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`| 1367+----------------------------------------------------------------------------+ 1368 1369 1370-Wc++11-long-long 1371----------------- 1372**Diagnostic text:** 1373 1374+-----------------------------------------------------------------------+ 1375|:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`| 1376+-----------------------------------------------------------------------+ 1377 1378 1379-Wc++11-narrowing 1380----------------- 1381Some of the diagnostics controlled by this flag are enabled by default. 1382 1383**Diagnostic text:** 1384 1385+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1386|:error:`error:` |nbsp| |+---------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+| 1387| ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1388| |+---------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| || 1389| ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ || 1390| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1391| ||:diagtext:`non-type template argument` || ||+----------------------------------------------------------------------------------------------------------------------+|| 1392| |+---------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`||| 1393| ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+|| 1394| |+---------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| 1395| ||:diagtext:`constexpr if condition` || | | 1396| |+---------------------------------------+| | | 1397| ||:diagtext:`explicit specifier argument`|| | | 1398| |+---------------------------------------+| | | 1399+-----------------------+-----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ 1400 1401+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1402|:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`| 1403+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1404 1405+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1406|:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1407+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1408 1409+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1410|:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| 1411+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1412 1413+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1414|:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`| 1415+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1416 1417+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1418|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1419+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1420 1421+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1422|:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| 1423+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1424 1425 1426-Wc++14-binary-literal 1427---------------------- 1428**Diagnostic text:** 1429 1430+------------------------------------------------------------------------------------+ 1431|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`| 1432+------------------------------------------------------------------------------------+ 1433 1434 1435-Wc++14-compat 1436-------------- 1437Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_. 1438 1439 1440-Wc++14-compat-pedantic 1441----------------------- 1442Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_. 1443 1444 1445-Wc++14-extensions 1446------------------ 1447Some of the diagnostics controlled by this flag are enabled by default. 1448 1449Also controls `-Wc++14-binary-literal`_. 1450 1451**Diagnostic text:** 1452 1453+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1454|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1455| ||:diagtext:`function` || | 1456| |+-----------------------+| | 1457| ||:diagtext:`constructor`|| | 1458| |+-----------------------+| | 1459+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1460 1461+------------------------------------------------------------------------------------------------------------+ 1462|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`| 1463+------------------------------------------------------------------------------------------------------------+ 1464 1465+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1466|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1467| ||:diagtext:`function` || | 1468| |+-----------------------+| | 1469| ||:diagtext:`constructor`|| | 1470| |+-----------------------+| | 1471+----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1472 1473+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1474|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| 1475| ||:diagtext:`function` || | 1476| |+-----------------------+| | 1477| ||:diagtext:`constructor`|| | 1478| |+-----------------------+| | 1479+-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1480 1481+---------------------------------------------------------------------------------------------------------------------------+ 1482|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 1483+---------------------------------------------------------------------------------------------------------------------------+ 1484 1485+-------------------------------------------------------------------------------------------+ 1486|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`| 1487+-------------------------------------------------------------------------------------------+ 1488 1489+----------------------------------------------------------------------------------------+ 1490|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`| 1491+----------------------------------------------------------------------------------------+ 1492 1493+-------------------------------------------------------------------------------+ 1494|:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`| 1495+-------------------------------------------------------------------------------+ 1496 1497 1498-Wc++17-compat 1499-------------- 1500Some of the diagnostics controlled by this flag are enabled by default. 1501 1502Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_. 1503 1504 1505-Wc++17-compat-mangling 1506----------------------- 1507This diagnostic is enabled by default. 1508 1509**Diagnostic text:** 1510 1511+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1512|:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`| 1513+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1514 1515 1516-Wc++17-compat-pedantic 1517----------------------- 1518Some of the diagnostics controlled by this flag are enabled by default. 1519 1520Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_. 1521 1522 1523-Wc++17-extensions 1524------------------ 1525Some of the diagnostics controlled by this flag are enabled by default. 1526 1527**Diagnostic text:** 1528 1529+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1530|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 1531+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1532 1533+------------------------------------------------------------------------+ 1534|:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`| 1535+------------------------------------------------------------------------+ 1536 1537+---------------------------------------------------------------------------------------------+ 1538|:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`| 1539+---------------------------------------------------------------------------------------------+ 1540 1541+---------------------------------------------------------------------------------------------------------------------------+ 1542|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 1543+---------------------------------------------------------------------------------------------------------------------------+ 1544 1545+---------------------------------------------------------------------------------------+ 1546|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`| 1547+---------------------------------------------------------------------------------------+ 1548 1549+--------------------------------------------------------------------------------+ 1550|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`| 1551+--------------------------------------------------------------------------------+ 1552 1553+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1554|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`| 1555+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1556 1557+----------------------------------------------------------------------------------------+ 1558|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 1559+----------------------------------------------------------------------------------------+ 1560 1561+----------------------------------------+--------------------+-------------------------------------------------------------+ 1562|:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`| 1563| ||:diagtext:`if` || | 1564| |+------------------+| | 1565| ||:diagtext:`switch`|| | 1566| |+------------------+| | 1567+----------------------------------------+--------------------+-------------------------------------------------------------+ 1568 1569+-----------------------------------------------------------------------------+ 1570|:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`| 1571+-----------------------------------------------------------------------------+ 1572 1573+---------------------------------------------------------------------------------------------------------------------+ 1574|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`| 1575+---------------------------------------------------------------------------------------------------------------------+ 1576 1577+-------------------------------------------------------------------------------------------------------------------------+ 1578|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`| 1579+-------------------------------------------------------------------------------------------------------------------------+ 1580 1581+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1582|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 1583| ||:diagtext:`a namespace` || | 1584| |+-------------------------+| | 1585| ||:diagtext:`an enumerator`|| | 1586| |+-------------------------+| | 1587+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 1588 1589+---------------------------------------------------------------------------------------+ 1590|:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`| 1591+---------------------------------------------------------------------------------------+ 1592 1593+------------------------------------------------------------------------------------------+ 1594|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`| 1595+------------------------------------------------------------------------------------------+ 1596 1597+--------------------------------------------------------------------------------------------------------+ 1598|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`| 1599+--------------------------------------------------------------------------------------------------------+ 1600 1601+--------------------------------------------------------------------------------------------------+ 1602|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`| 1603+--------------------------------------------------------------------------------------------------+ 1604 1605+-----------------------------------------------------------------------------------------------+ 1606|:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`| 1607+-----------------------------------------------------------------------------------------------+ 1608 1609 1610-Wc++1y-extensions 1611------------------ 1612Synonym for `-Wc++14-extensions`_. 1613 1614 1615-Wc++1z-compat 1616-------------- 1617Synonym for `-Wc++17-compat`_. 1618 1619 1620-Wc++1z-compat-mangling 1621----------------------- 1622Synonym for `-Wc++17-compat-mangling`_. 1623 1624 1625-Wc++1z-extensions 1626------------------ 1627Synonym for `-Wc++17-extensions`_. 1628 1629 1630-Wc++20-compat 1631-------------- 1632Some of the diagnostics controlled by this flag are enabled by default. 1633 1634**Diagnostic text:** 1635 1636+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1637|:warning:`warning:` |nbsp| :diagtext:`aggregate initialization of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with user-declared constructors is incompatible with C++20`| 1638+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1639 1640+------------------------------------------------------------------------------------------------------------+ 1641|:warning:`warning:` |nbsp| :diagtext:`'consteval' specifier is incompatible with C++ standards before C++20`| 1642+------------------------------------------------------------------------------------------------------------+ 1643 1644+------------------------------------------------------------------------------------------------------------+ 1645|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier is incompatible with C++ standards before C++20`| 1646+------------------------------------------------------------------------------------------------------------+ 1647 1648+------------------------------------------------------------------------------------------------+ 1649|:warning:`warning:` |nbsp| :diagtext:`this expression will be parsed as explicit(bool) in C++20`| 1650+------------------------------------------------------------------------------------------------+ 1651 1652+------------------------------------------------------------------------------------------------------------------+ 1653|:warning:`warning:` |nbsp| :diagtext:`'<=>' is a single token in C++20; add a space to avoid a change in behavior`| 1654+------------------------------------------------------------------------------------------------------------------+ 1655 1656+--------------------------------------------------------------------------------------------------------------------------------------------+ 1657|:warning:`warning:` |nbsp| :diagtext:`type of UTF-8 string literal will change from array of const char to array of const char8\_t in C++20`| 1658+--------------------------------------------------------------------------------------------------------------------------------------------+ 1659 1660+-------------------------------------------------------------------------------------------+ 1661|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++20`| 1662+-------------------------------------------------------------------------------------------+ 1663 1664 1665-Wc++20-compat-pedantic 1666----------------------- 1667Synonym for `-Wc++20-compat`_. 1668 1669 1670-Wc++20-designator 1671------------------ 1672**Diagnostic text:** 1673 1674+------------------------------------------------------------------------------------+ 1675|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C++20 extension`| 1676+------------------------------------------------------------------------------------+ 1677 1678 1679-Wc++20-extensions 1680------------------ 1681Some of the diagnostics controlled by this flag are enabled by default. 1682 1683Also controls `-Wc++20-designator`_. 1684 1685**Diagnostic text:** 1686 1687+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1688|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension`| 1689+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1690 1691+----------------------------------------------------------------------------------------------------+ 1692|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++20 extension`| 1693+----------------------------------------------------------------------------------------------------+ 1694 1695+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1696|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`| 1697| ||:diagtext:`function` || | 1698| |+-----------------------+| | 1699| ||:diagtext:`constructor`|| | 1700| |+-----------------------+| | 1701+-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1702 1703+----------------------------------------------------------------------------------------------------------------------+ 1704|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is a C++20 extension`| 1705+----------------------------------------------------------------------------------------------------------------------+ 1706 1707+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1708|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`| 1709| ||:diagtext:`function` || | 1710| |+-----------------------+| | 1711| ||:diagtext:`constructor`|| | 1712| |+-----------------------+| | 1713+------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1714 1715+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1716|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++20 extension`| 1717| ||:diagtext:`function` || | 1718| |+-----------------------+| | 1719| ||:diagtext:`constructor`|| | 1720| |+-----------------------+| | 1721+------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 1722 1723+---------------------------------------------------------------------------------------------------------------------------+ 1724|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is a C++20 extension`| 1725+---------------------------------------------------------------------------------------------------------------------------+ 1726 1727+---------------------------------------------------------------------------------------------------------------------------+ 1728|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`| 1729+---------------------------------------------------------------------------------------------------------------------------+ 1730 1731+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+ 1732|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is a C++20 extension`| 1733| ||+------------------------------------------+ || | 1734| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || | 1735| ||+------------------------------------------+ || | 1736| |+------------------------------------------------------------+| | 1737| ||+----------------------------------------------------------+|| | 1738| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| | 1739| ||+----------------------------------------------------------+|| | 1740| |+------------------------------------------------------------+| | 1741+---------------------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------+ 1742 1743+-------------------------------------------------------------------------------------------+ 1744|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are a C++20 extension`| 1745+-------------------------------------------------------------------------------------------+ 1746 1747+--------------------------------------------------------------------------------------------------------------------+ 1748|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++20 extension`| 1749+--------------------------------------------------------------------------------------------------------------------+ 1750 1751+--------------------------------------------------------------------------+ 1752|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is a C++20 extension`| 1753+--------------------------------------------------------------------------+ 1754 1755+-----------------------------------------------------------------------------------------------------------+ 1756|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are a C++20 extension`| 1757+-----------------------------------------------------------------------------------------------------------+ 1758 1759+---------------------------------------------------------------------------------------------+ 1760|:warning:`warning:` |nbsp| :diagtext:`initialized lambda pack captures are a C++20 extension`| 1761+---------------------------------------------------------------------------------------------+ 1762 1763+----------------------------------------------------------------------------------------------+ 1764|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is a C++20 extension`| 1765+----------------------------------------------------------------------------------------------+ 1766 1767+--------------------------------------------------------------------------------------------------------+ 1768|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is a C++20 extension`| 1769+--------------------------------------------------------------------------------------------------------+ 1770 1771+--------------------------------------------------------------------------------------------------------------------------+ 1772|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`| 1773+--------------------------------------------------------------------------------------------------------------------------+ 1774 1775 1776-Wc++2a-compat 1777-------------- 1778Synonym for `-Wc++20-compat`_. 1779 1780 1781-Wc++2a-compat-pedantic 1782----------------------- 1783Synonym for `-Wc++20-compat-pedantic`_. 1784 1785 1786-Wc++2a-extensions 1787------------------ 1788Synonym for `-Wc++20-extensions`_. 1789 1790 1791-Wc++98-c++11-c++14-c++17-compat 1792-------------------------------- 1793**Diagnostic text:** 1794 1795+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1796|:warning:`warning:` |nbsp| :diagtext:`use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20`| 1797+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1798 1799+-------------------------------------------------------------------------------------------------------------------------------+ 1800|:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++20`| 1801+-------------------------------------------------------------------------------------------------------------------------------+ 1802 1803+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1804|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`| 1805| ||:diagtext:`function` || | 1806| |+-----------------------+| | 1807| ||:diagtext:`constructor`|| | 1808| |+-----------------------+| | 1809+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1810 1811+-------------------------------------------------------------------------------------------------------------------------------------------------+ 1812|:warning:`warning:` |nbsp| :diagtext:`constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20`| 1813+-------------------------------------------------------------------------------------------------------------------------------------------------+ 1814 1815+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1816|:warning:`warning:` |nbsp| :diagtext:`function try block in constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`| 1817| ||:diagtext:`function` || | 1818| |+-----------------------+| | 1819| ||:diagtext:`constructor`|| | 1820| |+-----------------------+| | 1821+------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1822 1823+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1824|:warning:`warning:` |nbsp| :diagtext:`uninitialized variable in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`| 1825| ||:diagtext:`function` || | 1826| |+-----------------------+| | 1827| ||:diagtext:`constructor`|| | 1828| |+-----------------------+| | 1829+------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 1830 1831+------------------------------------------------------------------------------------------------------------------------------------------------------+ 1832|:warning:`warning:` |nbsp| :diagtext:`constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20`| 1833+------------------------------------------------------------------------------------------------------------------------------------------------------+ 1834 1835+-------------------------------------------------------------------------------------------------------------------+ 1836|:warning:`warning:` |nbsp| :diagtext:`virtual constexpr functions are incompatible with C++ standards before C++20`| 1837+-------------------------------------------------------------------------------------------------------------------+ 1838 1839+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+ 1840|:warning:`warning:` |nbsp| :diagtext:`decomposition declaration declared` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++20`| 1841| ||+------------------------------------------+ || | 1842| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`| || | 1843| ||+------------------------------------------+ || | 1844| |+------------------------------------------------------------+| | 1845| ||+----------------------------------------------------------+|| | 1846| |||:diagtext:`with '`:placeholder:`B`:diagtext:`' specifiers`||| | 1847| ||+----------------------------------------------------------+|| | 1848| |+------------------------------------------------------------+| | 1849+---------------------------------------------------------------------------------+--------------------------------------------------------------+-------------------------------------------------------------------+ 1850 1851+----------------------------------------------------------------------------------------------------------------------+ 1852|:warning:`warning:` |nbsp| :diagtext:`defaulted comparison operators are incompatible with C++ standards before C++20`| 1853+----------------------------------------------------------------------------------------------------------------------+ 1854 1855+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1856|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulting this` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`with a type different from the implicit type is incompatible with C++ standards before C++20`| 1857| ||:diagtext:`default constructor` || | 1858| |+------------------------------------+| | 1859| ||:diagtext:`copy constructor` || | 1860| |+------------------------------------+| | 1861| ||:diagtext:`move constructor` || | 1862| |+------------------------------------+| | 1863| ||:diagtext:`copy assignment operator`|| | 1864| |+------------------------------------+| | 1865| ||:diagtext:`move assignment operator`|| | 1866| |+------------------------------------+| | 1867| ||:diagtext:`destructor` || | 1868| |+------------------------------------+| | 1869+-------------------------------------------------------------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------+ 1870 1871+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1872|:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++20`| 1873+-----------------------------------------------------------------------------------------------------------------------------------------------+ 1874 1875+-----------------------------------------------------------------------------------------------------+ 1876|:warning:`warning:` |nbsp| :diagtext:`explicit(bool) is incompatible with C++ standards before C++20`| 1877+-----------------------------------------------------------------------------------------------------+ 1878 1879+--------------------------------------------------------------------------------------------------------------------------------------+ 1880|:warning:`warning:` |nbsp| :diagtext:`range-based for loop initialization statements are incompatible with C++ standards before C++20`| 1881+--------------------------------------------------------------------------------------------------------------------------------------+ 1882 1883+------------------------------------------------------------------------------------------------------------------------+ 1884|:warning:`warning:` |nbsp| :diagtext:`initialized lambda capture packs are incompatible with C++ standards before C++20`| 1885+------------------------------------------------------------------------------------------------------------------------+ 1886 1887+-------------------------------------------------------------------------------------------------------------------------+ 1888|:warning:`warning:` |nbsp| :diagtext:`inline nested namespace definition is incompatible with C++ standards before C++20`| 1889+-------------------------------------------------------------------------------------------------------------------------+ 1890 1891+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1892|:warning:`warning:` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`of lambda is incompatible with C++ standards before C++20`| 1893| ||:diagtext:`default construction`|| | 1894| |+--------------------------------+| | 1895| ||:diagtext:`assignment` || | 1896| |+--------------------------------+| | 1897+---------------------------+----------------------------------+-----------------------------------------------------------------------------+ 1898 1899+-----------------------------------------------------------------------------------------------------------------------------------+ 1900|:warning:`warning:` |nbsp| :diagtext:`explicit template parameter list for lambdas is incompatible with C++ standards before C++20`| 1901+-----------------------------------------------------------------------------------------------------------------------------------+ 1902 1903+-----------------------------------------------------------------------------------------------------+ 1904|:warning:`warning:` |nbsp| :diagtext:`'<=>' operator is incompatible with C++ standards before C++20`| 1905+-----------------------------------------------------------------------------------------------------+ 1906 1907+----------------------------------------------------------------------------------------------------------------+ 1908|:warning:`warning:` |nbsp| :diagtext:`'char8\_t' type specifier is incompatible with C++ standards before C++20`| 1909+----------------------------------------------------------------------------------------------------------------+ 1910 1911 1912-Wc++98-c++11-c++14-c++17-compat-pedantic 1913----------------------------------------- 1914Also controls `-Wc++98-c++11-c++14-c++17-compat`_. 1915 1916**Diagnostic text:** 1917 1918+---------------------------------------------------------------------------------------------------------------+ 1919|:warning:`warning:` |nbsp| :diagtext:`designated initializers are incompatible with C++ standards before C++20`| 1920+---------------------------------------------------------------------------------------------------------------+ 1921 1922+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1923|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++20`| 1924+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 1925 1926 1927-Wc++98-c++11-c++14-compat 1928-------------------------- 1929**Diagnostic text:** 1930 1931+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1932|:warning:`warning:` |nbsp| :diagtext:`class template argument deduction is incompatible with C++ standards before C++17`|+---------------------------------------------------------------------------------+| 1933| || || 1934| |+---------------------------------------------------------------------------------+| 1935| ||+-------------------------------------------------------------------------------+|| 1936| |||:diagtext:`; for compatibility, use explicit type name` |nbsp| :placeholder:`B`||| 1937| ||+-------------------------------------------------------------------------------+|| 1938| |+---------------------------------------------------------------------------------+| 1939+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+ 1940 1941+---------------------------------------------------------------------------------------------------+ 1942|:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`| 1943+---------------------------------------------------------------------------------------------------+ 1944 1945+----------------------------------------------------------------------------------------------------------------------+ 1946|:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`| 1947+----------------------------------------------------------------------------------------------------------------------+ 1948 1949+------------------------------------------------------------------------------------------------------------------+ 1950|:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`| 1951+------------------------------------------------------------------------------------------------------------------+ 1952 1953+-----------------------------------------------------------------------------------------------------------+ 1954|:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`| 1955+-----------------------------------------------------------------------------------------------------------+ 1956 1957+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1958|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`| 1959| ||:diagtext:`if` || | 1960| |+------------------+| | 1961| ||:diagtext:`switch`|| | 1962| |+------------------+| | 1963+---------------------------+--------------------+----------------------------------------------------------------------------------------------+ 1964 1965+--------------------------------------------------------------------------------------------------------+ 1966|:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`| 1967+--------------------------------------------------------------------------------------------------------+ 1968 1969+------------------------------------------------------------------------------------------------------------------+ 1970|:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`| 1971+------------------------------------------------------------------------------------------------------------------+ 1972 1973+-------------------------------------------------------------------------------------------------------------------+ 1974|:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`| 1975+-------------------------------------------------------------------------------------------------------------------+ 1976 1977+---------------------------------------------------------------------------------------------------------------------+ 1978|:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`| 1979+---------------------------------------------------------------------------------------------------------------------+ 1980 1981+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1982|:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`| 1983+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1984 1985+-----------------------------------------------------------------------------------------------------------------------------------+ 1986|:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`| 1987+-----------------------------------------------------------------------------------------------------------------------------------+ 1988 1989+--------------------------------------------------------------------------------------------------------+ 1990|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`| 1991+--------------------------------------------------------------------------------------------------------+ 1992 1993+-----------------------------------------------------------------------------------------------------------------------------+ 1994|:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`| 1995+-----------------------------------------------------------------------------------------------------------------------------+ 1996 1997+------------------------------------------------------------------------------------------------------------------------------------------------+ 1998|:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`| 1999+------------------------------------------------------------------------------------------------------------------------------------------------+ 2000 2001+-----------------------------------------------------------------------------------------------------------------------+ 2002|:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`| 2003+-----------------------------------------------------------------------------------------------------------------------+ 2004 2005+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2006|:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`| 2007+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2008 2009 2010-Wc++98-c++11-c++14-compat-pedantic 2011----------------------------------- 2012Also controls `-Wc++98-c++11-c++14-compat`_. 2013 2014**Diagnostic text:** 2015 2016+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 2017|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`| 2018| ||:diagtext:`a namespace` || | 2019| |+-------------------------+| | 2020| ||:diagtext:`an enumerator`|| | 2021| |+-------------------------+| | 2022+------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ 2023 2024+---------------------------------------------------------------------------------------------------------------------+ 2025|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`| 2026+---------------------------------------------------------------------------------------------------------------------+ 2027 2028 2029-Wc++98-c++11-compat 2030-------------------- 2031**Diagnostic text:** 2032 2033+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2034|:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 2035| ||:diagtext:`function` || | 2036| |+-----------------------+| | 2037| ||:diagtext:`constructor`|| | 2038| |+-----------------------+| | 2039+-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2040 2041+---------------------------------------------------------------------------------------------------------------------------------------+ 2042|:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`| 2043+---------------------------------------------------------------------------------------------------------------------------------------+ 2044 2045+-----------------------------------------------------------------------------------------------------------------------------------+ 2046|:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`| 2047+-----------------------------------------------------------------------------------------------------------------------------------+ 2048 2049+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2050|:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 2051| ||:diagtext:`function` || | 2052| |+-----------------------+| | 2053| ||:diagtext:`constructor`|| | 2054| |+-----------------------+| | 2055+----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2056 2057+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2058|:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| 2059| ||:diagtext:`function` || | 2060| |+-----------------------+| | 2061| ||:diagtext:`constructor`|| | 2062| |+-----------------------+| | 2063+-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ 2064 2065+----------------------------------------------------------------------------------------------------------------------+ 2066|:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`| 2067+----------------------------------------------------------------------------------------------------------------------+ 2068 2069+------------------------------------------------------------------------------------------------------------+ 2070|:warning:`warning:` |nbsp| :diagtext:`return type deduction is incompatible with C++ standards before C++14`| 2071+------------------------------------------------------------------------------------------------------------+ 2072 2073+--------------------------------------------------------------------------------------------------------+ 2074|:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`| 2075+--------------------------------------------------------------------------------------------------------+ 2076 2077+----------------------------------------------------------------------------------+ 2078|:warning:`warning:` |nbsp| :diagtext:`generic lambdas are incompatible with C++11`| 2079+----------------------------------------------------------------------------------+ 2080 2081+-------------------------------------------------------------------------------------------------------------------+ 2082|:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`| 2083+-------------------------------------------------------------------------------------------------------------------+ 2084 2085+----------------------------------------------------------------------------------------------------------+ 2086|:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`| 2087+----------------------------------------------------------------------------------------------------------+ 2088 2089 2090-Wc++98-c++11-compat-binary-literal 2091----------------------------------- 2092**Diagnostic text:** 2093 2094+---------------------------------------------------------------------------------------------------------------+ 2095|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`| 2096+---------------------------------------------------------------------------------------------------------------+ 2097 2098 2099-Wc++98-c++11-compat-pedantic 2100----------------------------- 2101Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_. 2102 2103 2104-Wc++98-compat 2105-------------- 2106Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_. 2107 2108**Diagnostic text:** 2109 2110+-------------------------------------------------------------------------------------+ 2111|:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`| 2112+-------------------------------------------------------------------------------------+ 2113 2114+---------------------------------------------------------------------------+ 2115|:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`| 2116+---------------------------------------------------------------------------+ 2117 2118+--------------------------------------------------------------------------------------+ 2119|:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`| 2120+--------------------------------------------------------------------------------------+ 2121 2122+----------------------------------------------------------------------------------------+ 2123|:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`| 2124+----------------------------------------------------------------------------------------+ 2125 2126+---------------------------------------------------------------------------------------+ 2127|:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`| 2128+---------------------------------------------------------------------------------------+ 2129 2130+---------------------------------------------------------------------------------------+ 2131|:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`| 2132+---------------------------------------------------------------------------------------+ 2133 2134+--------------------------------------------------------------------------------------------------------+ 2135|:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`| 2136+--------------------------------------------------------------------------------------------------------+ 2137 2138+-------------------------------------------------------------------------------------------+ 2139|:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`| 2140+-------------------------------------------------------------------------------------------+ 2141 2142+---------------------------+-----------------------+--------------------------------------------------------------------+ 2143|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`| 2144| ||:diagtext:`defaulted`|| | 2145| |+---------------------+| | 2146| ||:diagtext:`deleted` || | 2147| |+---------------------+| | 2148+---------------------------+-----------------------+--------------------------------------------------------------------+ 2149 2150+------------------------------------------------------------------------------------------+ 2151|:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`| 2152+------------------------------------------------------------------------------------------+ 2153 2154+----------------------------------------------------------------------------------------------------------------+ 2155|:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`| 2156+----------------------------------------------------------------------------------------------------------------+ 2157 2158+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2159|:warning:`warning:` |nbsp| :diagtext:`initializing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`from an empty initializer list is incompatible with C++98`| 2160+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 2161 2162+-----------------------------------------------------------------------------------------------------------------+ 2163|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`| 2164+-----------------------------------------------------------------------------------------------------------------+ 2165 2166+-----------------------------------------------------------------------------------------------------------------------------------------+ 2167|:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 2168+-----------------------------------------------------------------------------------------------------------------------------------------+ 2169 2170+-----------------------------------------------------------------------------------------------------------+ 2171|:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`| 2172+-----------------------------------------------------------------------------------------------------------+ 2173 2174+------------------------------------------------------------------------------------------------+ 2175|:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`| 2176+------------------------------------------------------------------------------------------------+ 2177 2178+--------------------------------------------------------------------------------------+ 2179|:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`| 2180+--------------------------------------------------------------------------------------+ 2181 2182+---------------------------------------------------------------------------------------------------------------------------+ 2183|:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`| 2184+---------------------------------------------------------------------------------------------------------------------------+ 2185 2186+------------------------------------------------------------------------------------------------+ 2187|:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`| 2188+------------------------------------------------------------------------------------------------+ 2189 2190+------------------------------------------------------------------------------------------------------------+ 2191|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`| 2192+------------------------------------------------------------------------------------------------------------+ 2193 2194+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2195|:warning:`warning:` |nbsp| :diagtext:`jump from this` |nbsp| |+--------------------+| |nbsp| :diagtext:`goto statement to one of its possible targets is incompatible with C++98`| 2196| ||:diagtext:`indirect`|| | 2197| |+--------------------+| | 2198| ||:diagtext:`asm` || | 2199| |+--------------------+| | 2200+-------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2201 2202+------------------------------------------------------------------------------------------------------------+ 2203|:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`| 2204+------------------------------------------------------------------------------------------------------------+ 2205 2206+------------------------------------------------------------------------------------+ 2207|:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`| 2208+------------------------------------------------------------------------------------+ 2209 2210+-------------------------------------------------------------------------------------+ 2211|:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`| 2212+-------------------------------------------------------------------------------------+ 2213 2214+-----------------------------------------------------------------------------------------------------------+ 2215|:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`| 2216+-----------------------------------------------------------------------------------------------------------+ 2217 2218+------------------------------------------------------------------------------------+ 2219|:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`| 2220+------------------------------------------------------------------------------------+ 2221 2222+---------------------------------------------------------------------------------------------------------------------------+ 2223|:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`| 2224+---------------------------------------------------------------------------------------------------------------------------+ 2225 2226+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2227|:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`| 2228+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2229 2230+------------------------------------------------------------------------------------------+ 2231|:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`| 2232+------------------------------------------------------------------------------------------+ 2233 2234+---------------------------------------------------------------------------------------+ 2235|:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`| 2236+---------------------------------------------------------------------------------------+ 2237 2238+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2239|:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`| 2240+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2241 2242+----------------------------------------------------------------------------------------------------------------------------------+ 2243|:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| 2244+----------------------------------------------------------------------------------------------------------------------------------+ 2245 2246+--------------------------------------------------------------------------------------------------------------------+ 2247|:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`| 2248+--------------------------------------------------------------------------------------------------------------------+ 2249 2250+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 2251|:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 2252| ||:diagtext:`anonymous struct`|| ||:diagtext:`default constructor` || | 2253| |+----------------------------+| |+------------------------------------+| | 2254| ||:diagtext:`union` || ||:diagtext:`copy constructor` || | 2255| |+----------------------------+| |+------------------------------------+| | 2256| | | ||:diagtext:`move constructor` || | 2257| | | |+------------------------------------+| | 2258| | | ||:diagtext:`copy assignment operator`|| | 2259| | | |+------------------------------------+| | 2260| | | ||:diagtext:`move assignment operator`|| | 2261| | | |+------------------------------------+| | 2262| | | ||:diagtext:`destructor` || | 2263| | | |+------------------------------------+| | 2264+---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ 2265 2266+---------------------------------------------------------------------------+ 2267|:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`| 2268+---------------------------------------------------------------------------+ 2269 2270+--------------------------------------------------------------------------------------------------------+ 2271|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`| 2272+--------------------------------------------------------------------------------------------------------+ 2273 2274+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2275|:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`| 2276| ||:diagtext:`function` || | 2277| |+-----------------------+| | 2278| ||:diagtext:`block` || | 2279| |+-----------------------+| | 2280| ||:diagtext:`method` || | 2281| |+-----------------------+| | 2282| ||:diagtext:`constructor`|| | 2283| |+-----------------------+| | 2284+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2285 2286+--------------------------------------------------------------------------------------+ 2287|:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`| 2288+--------------------------------------------------------------------------------------+ 2289 2290+----------------------------------------------------------------------------------------------------+ 2291|:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`| 2292+----------------------------------------------------------------------------------------------------+ 2293 2294+-------------------------------------------------------------------------------------------------------------+ 2295|:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`| 2296+-------------------------------------------------------------------------------------------------------------+ 2297 2298+------------------------------------------------------------------------------------+ 2299|:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`| 2300+------------------------------------------------------------------------------------+ 2301 2302+--------------------------------------------------------------------------------------+ 2303|:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`| 2304+--------------------------------------------------------------------------------------+ 2305 2306+------------------------------------------------------------------------------------------------------------+ 2307|:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`| 2308+------------------------------------------------------------------------------------------------------------+ 2309 2310+----------------------------------------------------------------------------------------------+ 2311|:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`| 2312+----------------------------------------------------------------------------------------------+ 2313 2314+----------------------------------------------------------------------------------------------------------------------------------------+ 2315|:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`| 2316+----------------------------------------------------------------------------------------------------------------------------------------+ 2317 2318+---------------------------------------------------------------------------------------------------------------+ 2319|:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`| 2320+---------------------------------------------------------------------------------------------------------------+ 2321 2322+---------------------------------------------------------------------------------------------------------------------------------------+ 2323|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`| 2324+---------------------------------------------------------------------------------------------------------------------------------------+ 2325 2326+-------------------------------------------------------------------------------------------------------------------+ 2327|:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`| 2328+-------------------------------------------------------------------------------------------------------------------+ 2329 2330+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2331|:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`| 2332| ||:diagtext:`function`|| | 2333| |+--------------------+| | 2334| ||:diagtext:`object` || | 2335| |+--------------------+| | 2336+--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ 2337 2338+-----------------------------------------------------------------------------------------------------------------+ 2339|:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`| 2340+-----------------------------------------------------------------------------------------------------------------+ 2341 2342+---------------------------------------------------------------------------------------------------------------------+ 2343|:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`| 2344+---------------------------------------------------------------------------------------------------------------------+ 2345 2346+----------------------------------------------------------------------------------------+ 2347|:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`| 2348+----------------------------------------------------------------------------------------+ 2349 2350+---------------------------------------------------------------------------------------------------------------+ 2351|:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`| 2352+---------------------------------------------------------------------------------------------------------------+ 2353 2354+---------------------------------------------------------------------------------------------------------+ 2355|:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`| 2356+---------------------------------------------------------------------------------------------------------+ 2357 2358+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2359|:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`| 2360| ||:diagtext:`struct` || | 2361| |+---------------------+| | 2362| ||:diagtext:`interface`|| | 2363| |+---------------------+| | 2364| ||:diagtext:`union` || | 2365| |+---------------------+| | 2366| ||:diagtext:`class` || | 2367| |+---------------------+| | 2368| ||:diagtext:`enum` || | 2369| |+---------------------+| | 2370+-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ 2371 2372+-------------------------------------------------------------------------------------------------------+ 2373|:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`| 2374+-------------------------------------------------------------------------------------------------------+ 2375 2376+-----------------------------------------------------------------------------------+ 2377|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`| 2378+-----------------------------------------------------------------------------------+ 2379 2380+---------------------------------------------------------------------------------------------------------------+ 2381|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`| 2382+---------------------------------------------------------------------------------------------------------------+ 2383 2384+------------------------------------------------------------------------------------------+ 2385|:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`| 2386+------------------------------------------------------------------------------------------+ 2387 2388+-------------------------------------------------------------------------------------+ 2389|:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`| 2390+-------------------------------------------------------------------------------------+ 2391 2392 2393-Wc++98-compat-bind-to-temporary-copy 2394------------------------------------- 2395**Diagnostic text:** 2396 2397+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2398|:warning:`warning:` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`| 2399| ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| | 2400| |+----------------------------------------------------+| |+----------------------------------------------+| | 2401| ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || | 2402| |+----------------------------------------------------+| |+----------------------------------------------+| | 2403| ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || | 2404| |+----------------------------------------------------+| |+----------------------------------------------+| | 2405| ||:diagtext:`initializing statement expression result`|| ||:diagtext:`invoke a deleted constructor` || | 2406| |+----------------------------------------------------+| |+----------------------------------------------+| | 2407| ||:diagtext:`throwing object` || | | | 2408| |+----------------------------------------------------+| | | | 2409| ||:diagtext:`copying member subobject` || | | | 2410| |+----------------------------------------------------+| | | | 2411| ||:diagtext:`copying array element` || | | | 2412| |+----------------------------------------------------+| | | | 2413| ||:diagtext:`allocating object` || | | | 2414| |+----------------------------------------------------+| | | | 2415| ||:diagtext:`copying temporary` || | | | 2416| |+----------------------------------------------------+| | | | 2417| ||:diagtext:`initializing base subobject` || | | | 2418| |+----------------------------------------------------+| | | | 2419| ||:diagtext:`initializing vector element` || | | | 2420| |+----------------------------------------------------+| | | | 2421| ||:diagtext:`capturing value` || | | | 2422| |+----------------------------------------------------+| | | | 2423+---------------------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ 2424 2425 2426-Wc++98-compat-extra-semi 2427------------------------- 2428**Diagnostic text:** 2429 2430+-------------------------------------------------------------------------------------------------+ 2431|:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`| 2432+-------------------------------------------------------------------------------------------------+ 2433 2434 2435-Wc++98-compat-local-type-template-args 2436--------------------------------------- 2437**Diagnostic text:** 2438 2439+--------------------------------------------------------------------------------------------------------------------------------------------+ 2440|:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`| 2441+--------------------------------------------------------------------------------------------------------------------------------------------+ 2442 2443 2444-Wc++98-compat-pedantic 2445----------------------- 2446Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_, `-Wc++98-compat-extra-semi`_. 2447 2448**Diagnostic text:** 2449 2450+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2451|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| 2452| ||:diagtext:`integral` || | 2453| |+-----------------------+| | 2454| ||:diagtext:`enumeration`|| | 2455| |+-----------------------+| | 2456+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ 2457 2458+------------------------------------------------------------------------------------------------------------------------+ 2459|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`| 2460+------------------------------------------------------------------------------------------------------------------------+ 2461 2462+----------------------------------------------------------------------------------------+ 2463|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`| 2464+----------------------------------------------------------------------------------------+ 2465 2466+--------------------------------------------------------------------------------------------------------+ 2467|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`| 2468+--------------------------------------------------------------------------------------------------------+ 2469 2470+-----------------------------------------------------------------------------------+ 2471|:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`| 2472+-----------------------------------------------------------------------------------+ 2473 2474+-----------------------------------------------------------------------------+ 2475|:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`| 2476+-----------------------------------------------------------------------------+ 2477 2478+----------------------------------------------------------------------------+ 2479|:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`| 2480+----------------------------------------------------------------------------+ 2481 2482+-------------------------------------------------------------------------------------------------+ 2483|:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`| 2484+-------------------------------------------------------------------------------------------------+ 2485 2486+----------------------------------------------------------------------------------+ 2487|:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`| 2488+----------------------------------------------------------------------------------+ 2489 2490 2491-Wc++98-compat-unnamed-type-template-args 2492----------------------------------------- 2493**Diagnostic text:** 2494 2495+---------------------------------------------------------------------------------------------------+ 2496|:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`| 2497+---------------------------------------------------------------------------------------------------+ 2498 2499 2500-Wc11-extensions 2501---------------- 2502**Diagnostic text:** 2503 2504+---------------------------------------------------------------------------+ 2505|:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`| 2506+---------------------------------------------------------------------------+ 2507 2508+----------------------------------------------------------------------------+ 2509|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`| 2510+----------------------------------------------------------------------------+ 2511 2512+----------------------------------------------------------------------------------------+ 2513|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C11 extension`| 2514+----------------------------------------------------------------------------------------+ 2515 2516 2517-Wc2x-extensions 2518---------------- 2519This diagnostic is enabled by default. 2520 2521**Diagnostic text:** 2522 2523+--------------------------------------------------------------------------------------------------------------+ 2524|:warning:`warning:` |nbsp| :diagtext:`omitting the parameter name in a function definition is a C2x extension`| 2525+--------------------------------------------------------------------------------------------------------------+ 2526 2527 2528-Wc99-compat 2529------------ 2530Some of the diagnostics controlled by this flag are enabled by default. 2531 2532**Diagnostic text:** 2533 2534+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2535|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`| 2536| ||:diagtext:`using this character in an identifier` || | 2537| |+------------------------------------------------------+| | 2538| ||:diagtext:`starting an identifier with this character`|| | 2539| |+------------------------------------------------------+| | 2540+---------------------------+--------------------------------------------------------+--------------------------------------------+ 2541 2542+---------------------------------------------------------------------------------+ 2543|:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`| 2544+---------------------------------------------------------------------------------+ 2545 2546+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2547|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`| 2548| ||:diagtext:`have type 'long long'`|| | 2549| |+---------------------------------+| | 2550| ||:diagtext:`be ill-formed` || | 2551| |+---------------------------------+| | 2552+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ 2553 2554 2555-Wc99-designator 2556---------------- 2557Some of the diagnostics controlled by this flag are enabled by default. 2558 2559Also controls `-Wc++20-designator`_. 2560 2561**Diagnostic text:** 2562 2563+--------------------------------------------------------------------------------+ 2564|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 2565+--------------------------------------------------------------------------------+ 2566 2567+----------------------------------------------------------------------------+ 2568|:warning:`warning:` |nbsp| :diagtext:`array designators are a C99 extension`| 2569+----------------------------------------------------------------------------+ 2570 2571+--------------------------------------------------------------------------------------------------------------------------------------------+ 2572|:warning:`warning:` |nbsp| :diagtext:`mixture of designated and non-designated initializers in the same initializer list is a C99 extension`| 2573+--------------------------------------------------------------------------------------------------------------------------------------------+ 2574 2575+-----------------------------------------------------------------------------+ 2576|:warning:`warning:` |nbsp| :diagtext:`nested designators are a C99 extension`| 2577+-----------------------------------------------------------------------------+ 2578 2579 2580-Wc99-extensions 2581---------------- 2582Some of the diagnostics controlled by this flag are enabled by default. 2583 2584Also controls `-Wc99-designator`_. 2585 2586**Diagnostic text:** 2587 2588+-----------------------------------------------------------------------------------------------+ 2589|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 2590+-----------------------------------------------------------------------------------------------+ 2591 2592+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2593|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 2594| ||:diagtext:`qualifier in` |nbsp| || || || | 2595| |+--------------------------------+| |+---------------------+| | 2596| ||:diagtext:`static` |nbsp| || || || | 2597| |+--------------------------------+| |+---------------------+| | 2598| || || ||:diagtext:`'\[\*\] '`|| | 2599| |+--------------------------------+| |+---------------------+| | 2600+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 2601 2602+-----------------------------------------------------------------------------------+ 2603|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 2604+-----------------------------------------------------------------------------------+ 2605 2606+----------------------------------------------------------------------------------------+ 2607|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C99 extension`| 2608+----------------------------------------------------------------------------------------+ 2609 2610+-------------------------------------------------------------------------------+ 2611|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 2612+-------------------------------------------------------------------------------+ 2613 2614+-------------------------------------------------------------------------------------------------+ 2615|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 2616+-------------------------------------------------------------------------------------------------+ 2617 2618+---------------------------------------------------------------------------------------+ 2619|:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`| 2620+---------------------------------------------------------------------------------------+ 2621 2622+------------------------------------------------------------------------------+ 2623|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 2624+------------------------------------------------------------------------------+ 2625 2626+-------------------------------------------------------------------------------------------------------+ 2627|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 2628+-------------------------------------------------------------------------------------------------------+ 2629 2630+---------------------------------------------------------------------------------------+ 2631|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 2632+---------------------------------------------------------------------------------------+ 2633 2634 2635-Wcall-to-pure-virtual-from-ctor-dtor 2636------------------------------------- 2637This diagnostic is enabled by default. 2638 2639**Diagnostic text:** 2640 2641+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2642|:warning:`warning:` |nbsp| :diagtext:`call to pure virtual member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior; overrides of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in subclasses are not available in the` |nbsp| |+-----------------------+| |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 2643| ||:diagtext:`constructor`|| | 2644| |+-----------------------+| | 2645| ||:diagtext:`destructor` || | 2646| |+-----------------------+| | 2647+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ 2648 2649 2650-Wcast-align 2651------------ 2652**Diagnostic text:** 2653 2654+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2655|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 2656+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2657 2658 2659-Wcast-calling-convention 2660------------------------- 2661This diagnostic is enabled by default. 2662 2663**Diagnostic text:** 2664 2665+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2666|:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`| 2667+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2668 2669 2670-Wcast-of-sel-type 2671------------------ 2672This diagnostic is enabled by default. 2673 2674**Diagnostic text:** 2675 2676+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2677|:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`| 2678+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2679 2680 2681-Wcast-qual 2682----------- 2683**Diagnostic text:** 2684 2685+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2686|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+| 2687| ||:diagtext:`const and volatile qualifiers`|| 2688| |+-----------------------------------------+| 2689| ||:diagtext:`const qualifier` || 2690| |+-----------------------------------------+| 2691| ||:diagtext:`volatile qualifier` || 2692| |+-----------------------------------------+| 2693+-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ 2694 2695+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2696|:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`| 2697+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2698 2699 2700-Wcast-qual-unrelated 2701--------------------- 2702This diagnostic is enabled by default. 2703 2704**Diagnostic text:** 2705 2706+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2707|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`because it casts away qualifiers, even though the source and destination types are unrelated`| 2708| ||:diagtext:`const\_cast` || | 2709| |+---------------------------------+| | 2710| ||:diagtext:`static\_cast` || | 2711| |+---------------------------------+| | 2712| ||:diagtext:`reinterpret\_cast` || | 2713| |+---------------------------------+| | 2714| ||:diagtext:`dynamic\_cast` || | 2715| |+---------------------------------+| | 2716| ||:diagtext:`C-style cast` || | 2717| |+---------------------------------+| | 2718| ||:diagtext:`functional-style cast`|| | 2719| |+---------------------------------+| | 2720+---------------------------------------------------------------------+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2721 2722 2723-Wchar-align 2724------------ 2725This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 2726 2727-Wchar-subscripts 2728----------------- 2729**Diagnostic text:** 2730 2731+------------------------------------------------------------+-------------------------+-------------------------------------+ 2732|:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`| 2733| ||:diagtext:`lower bound`|| | 2734| |+-----------------------+| | 2735| ||:diagtext:`length` || | 2736| |+-----------------------+| | 2737+------------------------------------------------------------+-------------------------+-------------------------------------+ 2738 2739+------------------------------------------------------------------------+ 2740|:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`| 2741+------------------------------------------------------------------------+ 2742 2743 2744-Wclang-cl-pch 2745-------------- 2746This diagnostic is enabled by default. 2747 2748**Diagnostic text:** 2749 2750+-------------------------------------------------------------------------------------------------------------------------+ 2751|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`| 2752+-------------------------------------------------------------------------------------------------------------------------+ 2753 2754+------------------------------------------------------------------------------------------------------------------------------+ 2755|:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`| 2756+------------------------------------------------------------------------------------------------------------------------------+ 2757 2758+-------------------------------------------------------------------------------------------------------------------------------------+ 2759|:warning:`warning:` |nbsp| :diagtext:`#pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename`| 2760+-------------------------------------------------------------------------------------------------------------------------------------+ 2761 2762+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2763|:warning:`warning:` |nbsp| :diagtext:`definition of macro` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match definition in precompiled header`| 2764+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2765 2766 2767-Wclass-varargs 2768--------------- 2769Some of the diagnostics controlled by this flag are enabled by default. 2770 2771Also controls `-Wnon-pod-varargs`_. 2772 2773**Diagnostic text:** 2774 2775+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2776|:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+| 2777| ||:diagtext:`function` ||| || 2778| |+-----------------------+|+--------------------------------------------------------------------+| 2779| ||:diagtext:`block` |||+------------------------------------------------------------------+|| 2780| |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`||| 2781| ||:diagtext:`method` |||+------------------------------------------------------------------+|| 2782| |+-----------------------+|+--------------------------------------------------------------------+| 2783| ||:diagtext:`constructor`|| | 2784| |+-----------------------+| | 2785+---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ 2786 2787 2788-Wcmse-union-leak 2789----------------- 2790This diagnostic is enabled by default. 2791 2792**Diagnostic text:** 2793 2794+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+ 2795|:warning:`warning:` |nbsp| :diagtext:`passing union across security boundary via` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`may leak information`| 2796| ||+---------------------------------------------+|| | 2797| |||:diagtext:`parameter` |nbsp| :placeholder:`B`||| | 2798| ||+---------------------------------------------+|| | 2799| |+-----------------------------------------------+| | 2800| ||:diagtext:`return value` || | 2801| |+-----------------------------------------------+| | 2802+-----------------------------------------------------------------------------------------+-------------------------------------------------+----------------------------------------+ 2803 2804 2805-Wcomma 2806------- 2807**Diagnostic text:** 2808 2809+-----------------------------------------------------------------------------+ 2810|:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`| 2811+-----------------------------------------------------------------------------+ 2812 2813 2814-Wcomment 2815--------- 2816Some of the diagnostics controlled by this flag are enabled by default. 2817 2818**Diagnostic text:** 2819 2820+--------------------------------------------------------------------------------------------------+ 2821|:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`| 2822+--------------------------------------------------------------------------------------------------+ 2823 2824+-----------------------------------------------------------------------------------+ 2825|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 2826+-----------------------------------------------------------------------------------+ 2827 2828+------------------------------------------------------------+ 2829|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 2830+------------------------------------------------------------+ 2831 2832+-----------------------------------------------------------------+ 2833|:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`| 2834+-----------------------------------------------------------------+ 2835 2836 2837-Wcomments 2838---------- 2839Synonym for `-Wcomment`_. 2840 2841 2842-Wcompare-distinct-pointer-types 2843-------------------------------- 2844This diagnostic is enabled by default. 2845 2846**Diagnostic text:** 2847 2848+---------------------------------------------------------------------------+ 2849|:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`| 2850+---------------------------------------------------------------------------+ 2851 2852 2853-Wcomplex-component-init 2854------------------------ 2855**Diagnostic text:** 2856 2857+----------------------------------------------------------------------------------------------------------------------+ 2858|:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`| 2859+----------------------------------------------------------------------------------------------------------------------+ 2860 2861 2862-Wconcepts-ts-compat 2863-------------------- 2864This diagnostic is enabled by default. 2865 2866**Diagnostic text:** 2867 2868+---------------------------------------------------------------------------------------------------+ 2869|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit the 'bool' keyword after 'concept'`| 2870+---------------------------------------------------------------------------------------------------+ 2871 2872 2873-Wconditional-type-mismatch 2874--------------------------- 2875This diagnostic is enabled by default. 2876 2877**Diagnostic text:** 2878 2879+----------------------------------------------------------------------------------------------+ 2880|:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`| 2881+----------------------------------------------------------------------------------------------+ 2882 2883 2884-Wconditional-uninitialized 2885--------------------------- 2886**Diagnostic text:** 2887 2888+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2889|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+| 2890| ||:diagtext:`used here` || 2891| |+-----------------------------+| 2892| ||:diagtext:`captured by block`|| 2893| |+-----------------------------+| 2894+----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 2895 2896 2897-Wconfig-macros 2898--------------- 2899This diagnostic is enabled by default. 2900 2901**Diagnostic text:** 2902 2903+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2904|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`| 2905| ||:diagtext:`definition`|| ||+----------------------------------------------+|| | 2906| |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| | 2907| ||:diagtext:`#undef` || ||+----------------------------------------------+|| | 2908| |+----------------------+| |+------------------------------------------------+| | 2909| | | ||+------------------------------+ || | 2910| | | |||:diagtext:`-U`:placeholder:`B`| || | 2911| | | ||+------------------------------+ || | 2912| | | |+------------------------------------------------+| | 2913+---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ 2914 2915 2916-Wconstant-conversion 2917--------------------- 2918This diagnostic is enabled by default. 2919 2920Also controls `-Wbitfield-constant-conversion`_, `-Wobjc-bool-constant-conversion`_. 2921 2922**Diagnostic text:** 2923 2924+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2925|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 2926+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2927 2928 2929-Wconstant-evaluated 2930-------------------- 2931This diagnostic is enabled by default. 2932 2933**Diagnostic text:** 2934 2935+--------------------------------------------------------------------------------------------------------------------------------------------------+ 2936|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always evaluate to 'true' in a manifestly constant-evaluated expression`| 2937+--------------------------------------------------------------------------------------------------------------------------------------------------+ 2938 2939 2940-Wconstant-logical-operand 2941-------------------------- 2942This diagnostic is enabled by default. 2943 2944**Diagnostic text:** 2945 2946+----------------------------------------------------------------------------------------------------------+ 2947|:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`| 2948+----------------------------------------------------------------------------------------------------------+ 2949 2950 2951-Wconstexpr-not-const 2952--------------------- 2953This diagnostic is enabled by default. 2954 2955**Diagnostic text:** 2956 2957+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2958|:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`| 2959+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2960 2961 2962-Wconsumed 2963---------- 2964**Diagnostic text:** 2965 2966+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2967|:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which isn't marked as consumable`| 2968+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2969 2970+--------------------------------------------------------------------------------------------------------------------------------+ 2971|:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`| 2972+--------------------------------------------------------------------------------------------------------------------------------+ 2973 2974+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2975|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`| 2976+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2977 2978+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2979|:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2980+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2981 2982+---------------------------------------------------------------------------------------------------------------+ 2983|:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`| 2984+---------------------------------------------------------------------------------------------------------------+ 2985 2986+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2987|:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| 2988+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 2989 2990+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2991|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`| 2992+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2993 2994+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2995|:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`| 2996+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2997 2998 2999-Wconversion 3000------------ 3001Some of the diagnostics controlled by this flag are enabled by default. 3002 3003Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wimplicit-float-conversion`_, `-Wimplicit-int-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_. 3004 3005**Diagnostic text:** 3006 3007+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3008|:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 3009+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3010 3011+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3012|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 3013+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3014 3015+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3016|:warning:`warning:` |nbsp| :diagtext:`passing non-generic address space pointer to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause dynamic conversion affecting performance`| 3017+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3018 3019+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3020|:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`| 3021+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3022 3023+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3024|:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`| 3025+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3026 3027 3028-Wconversion-null 3029----------------- 3030Synonym for `-Wnull-conversion`_. 3031 3032 3033-Wcoroutine 3034----------- 3035Synonym for `-Wcoroutine-missing-unhandled-exception`_. 3036 3037 3038-Wcoroutine-missing-unhandled-exception 3039--------------------------------------- 3040This diagnostic is enabled by default. 3041 3042**Diagnostic text:** 3043 3044+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 3045|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`| 3046+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 3047 3048 3049-Wcovered-switch-default 3050------------------------ 3051**Diagnostic text:** 3052 3053+--------------------------------------------------------------------------------------------------+ 3054|:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`| 3055+--------------------------------------------------------------------------------------------------+ 3056 3057 3058-Wcpp 3059----- 3060Synonym for `-W#warnings`_. 3061 3062 3063-Wcstring-format-directive 3064-------------------------- 3065**Diagnostic text:** 3066 3067+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 3068|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+| 3069| ||:diagtext:`NSString`|| ||:diagtext:`method` || 3070| |+--------------------+| |+----------------------+| 3071| ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`|| 3072| |+--------------------+| |+----------------------+| 3073+------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ 3074 3075 3076-Wctad-maybe-unsupported 3077------------------------ 3078**Diagnostic text:** 3079 3080+--------------------------------------------------------------------------------------------------------------------------+ 3081|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not intend to support class template argument deduction`| 3082+--------------------------------------------------------------------------------------------------------------------------+ 3083 3084 3085-Wctor-dtor-privacy 3086------------------- 3087This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3088 3089-Wctu 3090----- 3091This diagnostic is enabled by default. 3092 3093**Diagnostic text:** 3094 3095+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3096|:warning:`warning:` |nbsp| :diagtext:`imported AST from '`:placeholder:`A`:diagtext:`' had been generated for a different target, current:` |nbsp| :placeholder:`B`:diagtext:`, imported:` |nbsp| :placeholder:`C`| 3097+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3098 3099 3100-Wcuda-compat 3101------------- 3102Some of the diagnostics controlled by this flag are enabled by default. 3103 3104**Diagnostic text:** 3105 3106+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3107|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`| 3108+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3109 3110+---------------------------------------------------------------------------------------------------------------------------------+ 3111|:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`| 3112+---------------------------------------------------------------------------------------------------------------------------------+ 3113 3114+------------------------------------------------------------------------------------------------------------+ 3115|:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`| 3116+------------------------------------------------------------------------------------------------------------+ 3117 3118+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3119|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 3120+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3121 3122+--------------------------------------------------------------------------------------------------------------+ 3123|:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`| 3124+--------------------------------------------------------------------------------------------------------------+ 3125 3126 3127-Wcustom-atomic-properties 3128-------------------------- 3129**Diagnostic text:** 3130 3131+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 3132|:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`| 3133| ||:diagtext:`getter`|| | 3134| |+------------------+| | 3135| ||:diagtext:`setter`|| | 3136| |+------------------+| | 3137+---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ 3138 3139 3140-Wdangling 3141---------- 3142This diagnostic is enabled by default. 3143 3144Also controls `-Wdangling-field`_, `-Wdangling-gsl`_, `-Wdangling-initializer-list`_, `-Wreturn-stack-address`_. 3145 3146**Diagnostic text:** 3147 3148+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 3149|:warning:`warning:` |nbsp| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| |+--------------------------+|:diagtext:`will be destroyed at the end of the full-expression`| 3150| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| ||+------------------------+|| | 3151| |||:diagtext:`temporary` |nbsp| |+-------------------------------------------------------+| |nbsp| |+----------------------------------------------------------------------+||| |||:placeholder:`D` |nbsp| ||| | 3152| ||| ||:diagtext:`whose address is used as value of` || ||+-------------------------------+------------------------------------+|||| ||+------------------------+|| | 3153| ||| |+-------------------------------------------------------+| |||+-----------------------------+|:diagtext:`member of local variable`||||| |+--------------------------+| | 3154| ||| ||+--------------------------------+--------------------+|| |||| || ||||| || || | 3155| ||| |||+------------------------------+|:diagtext:`bound to`||| |||+-----------------------------+| ||||| |+--------------------------+| | 3156| ||| |||| || ||| ||||:diagtext:`reference` |nbsp| || ||||| | | | 3157| ||| |||+------------------------------+| ||| |||+-----------------------------+| ||||| | | | 3158| ||| ||||:diagtext:`implicitly` |nbsp| || ||| ||+-------------------------------+------------------------------------+|||| | | | 3159| ||| |||+------------------------------+| ||| |+----------------------------------------------------------------------+||| | | | 3160| ||| ||+--------------------------------+--------------------+|| ||+-------------------------+-----------------------+ |||| | | | 3161| ||| |+-------------------------------------------------------+| |||:diagtext:`local` |nbsp| |+---------------------+| |||| | | | 3162| ||| | | ||| ||:diagtext:`variable` || |||| | | | 3163| ||| | | ||| |+---------------------+| |||| | | | 3164| ||| | | ||| ||:diagtext:`reference`|| |||| | | | 3165| ||| | | ||| |+---------------------+| |||| | | | 3166| ||| | | ||+-------------------------+-----------------------+ |||| | | | 3167| ||| | | |+----------------------------------------------------------------------+||| | | | 3168| ||+-----------------------------+---------------------------------------------------------+--------+------------------------------------------------------------------------+|| | | | 3169| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 3170| ||+---------------------------------+----------------------------------------------------------+ || | | | 3171| |||:diagtext:`array backing` |nbsp| |+--------------------------------------------------------+| || | | | 3172| ||| ||:diagtext:`initializer list subobject of local variable`|| || | | | 3173| ||| |+--------------------------------------------------------+| || | | | 3174| ||| ||:diagtext:`local initializer list` || || | | | 3175| ||| |+--------------------------------------------------------+| || | | | 3176| ||+---------------------------------+----------------------------------------------------------+ || | | | 3177| |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| | | | 3178+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+----------------------------+---------------------------------------------------------------+ 3179 3180+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 3181|:warning:`warning:` |nbsp| :diagtext:`sorry, lifetime extension of` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`created by aggregate initialization using default member initializer is not supported; lifetime of` |nbsp| |+-------------------------+| |nbsp| :diagtext:`will end at the end of the full-expression`| 3182| ||:diagtext:`temporary` || ||:diagtext:`temporary` || | 3183| |+---------------------------------------------+| |+-------------------------+| | 3184| ||:diagtext:`backing array of initializer list`|| ||:diagtext:`backing array`|| | 3185| |+---------------------------------------------+| |+-------------------------+| | 3186+---------------------------------------------------------------------------+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+ 3187 3188 3189-Wdangling-else 3190--------------- 3191This diagnostic is enabled by default. 3192 3193**Diagnostic text:** 3194 3195+---------------------------------------------------------------------------------+ 3196|:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`| 3197+---------------------------------------------------------------------------------+ 3198 3199 3200-Wdangling-field 3201---------------- 3202This diagnostic is enabled by default. 3203 3204**Diagnostic text:** 3205 3206+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3207|:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 3208| ||:diagtext:`variable` || | 3209| |+---------------------+| | 3210| ||:diagtext:`parameter`|| | 3211| |+---------------------+| | 3212+-------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3213 3214+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 3215|:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| |+--------------------+| |nbsp| :diagtext:`a temporary object whose lifetime is shorter than the lifetime of the constructed object`| 3216| ||:diagtext:`reference` || || || ||:diagtext:`binds to`|| | 3217| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 3218| ||:diagtext:`backing array for 'std::initializer\_list'`|| ||:diagtext:`subobject of` |nbsp| || ||:diagtext:`is` || | 3219| |+------------------------------------------------------+| |+--------------------------------+| |+--------------------+| | 3220+---------------------------+--------------------------------------------------------+--------+----------------------------------+--------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------+ 3221 3222+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3223|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of` |nbsp| |+---------------------+| |nbsp| :placeholder:`B`| 3224| ||:diagtext:`variable` || | 3225| |+---------------------+| | 3226| ||:diagtext:`parameter`|| | 3227| |+---------------------+| | 3228+-----------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+------------------------+ 3229 3230+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3231|:warning:`warning:` |nbsp| :diagtext:`temporary bound to reference member of allocated object will be destroyed at the end of the full-expression`| 3232+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3233 3234 3235-Wdangling-gsl 3236-------------- 3237This diagnostic is enabled by default. 3238 3239**Diagnostic text:** 3240 3241+---------------------------------------------------------------------------------------------------------------------+ 3242|:warning:`warning:` |nbsp| :diagtext:`object backing the pointer will be destroyed at the end of the full-expression`| 3243+---------------------------------------------------------------------------------------------------------------------+ 3244 3245+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3246|:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object`| 3247+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3248 3249 3250-Wdangling-initializer-list 3251--------------------------- 3252This diagnostic is enabled by default. 3253 3254**Diagnostic text:** 3255 3256+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 3257|:warning:`warning:` |nbsp| :diagtext:`array backing` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`will be destroyed at the end of the full-expression`| 3258| ||:diagtext:`initializer list subobject of the allocated object`|| | 3259| |+--------------------------------------------------------------+| | 3260| ||:diagtext:`the allocated initializer list` || | 3261| |+--------------------------------------------------------------+| | 3262+------------------------------------------------------------+----------------------------------------------------------------+-----------------------------------------------------------------------+ 3263 3264 3265-Wdarwin-sdk-settings 3266--------------------- 3267This diagnostic is enabled by default. 3268 3269**Diagnostic text:** 3270 3271+----------------------------------------------------------------------------------------------------------+ 3272|:warning:`warning:` |nbsp| :diagtext:`SDK settings were ignored as 'SDKSettings.json' could not be parsed`| 3273+----------------------------------------------------------------------------------------------------------+ 3274 3275 3276-Wdate-time 3277----------- 3278**Diagnostic text:** 3279 3280+------------------------------------------------------------------------------------------+ 3281|:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`| 3282+------------------------------------------------------------------------------------------+ 3283 3284 3285-Wdealloc-in-category 3286--------------------- 3287This diagnostic is enabled by default. 3288 3289**Diagnostic text:** 3290 3291+---------------------------------------------------------------------------------+ 3292|:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`| 3293+---------------------------------------------------------------------------------+ 3294 3295 3296-Wdebug-compression-unavailable 3297------------------------------- 3298This diagnostic is enabled by default. 3299 3300**Diagnostic text:** 3301 3302+------------------------------------------------------------------------------------------+ 3303|:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`| 3304+------------------------------------------------------------------------------------------+ 3305 3306 3307-Wdeclaration-after-statement 3308----------------------------- 3309**Diagnostic text:** 3310 3311+-----------------------------------------------------------------------------------+ 3312|:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`| 3313+-----------------------------------------------------------------------------------+ 3314 3315 3316-Wdefaulted-function-deleted 3317---------------------------- 3318This diagnostic is enabled by default. 3319 3320**Diagnostic text:** 3321 3322+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+ 3323|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison operator` |nbsp| :diagtext:`is implicitly deleted`| 3324| ||:diagtext:`<ERROR>` || | 3325| |+----------------------+| | 3326| ||:diagtext:`equality` || | 3327| |+----------------------+| | 3328| ||:diagtext:`three-way` || | 3329| |+----------------------+| | 3330| ||:diagtext:`equality` || | 3331| |+----------------------+| | 3332| ||:diagtext:`relational`|| | 3333| |+----------------------+| | 3334+-------------------------------------------------------------------+------------------------+--------------------------------------------------------------------------------+ 3335 3336+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 3337|:warning:`warning:` |nbsp| :diagtext:`explicitly defaulted` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is implicitly deleted`| 3338| ||:diagtext:`default constructor` || | 3339| |+------------------------------------+| | 3340| ||:diagtext:`copy constructor` || | 3341| |+------------------------------------+| | 3342| ||:diagtext:`move constructor` || | 3343| |+------------------------------------+| | 3344| ||:diagtext:`copy assignment operator`|| | 3345| |+------------------------------------+| | 3346| ||:diagtext:`move assignment operator`|| | 3347| |+------------------------------------+| | 3348| ||:diagtext:`destructor` || | 3349| |+------------------------------------+| | 3350+-------------------------------------------------------------------+--------------------------------------+-----------------------------------------+ 3351 3352 3353-Wdelegating-ctor-cycles 3354------------------------ 3355This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error. 3356 3357**Diagnostic text:** 3358 3359+------------------------------------------------------------------------------------------------------------------------+ 3360|:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`| 3361+------------------------------------------------------------------------------------------------------------------------+ 3362 3363 3364-Wdelete-abstract-non-virtual-dtor 3365---------------------------------- 3366This diagnostic is enabled by default. 3367 3368**Diagnostic text:** 3369 3370+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3371|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`| 3372| ||:diagtext:`delete` || | 3373| |+----------------------+| | 3374| ||:diagtext:`destructor`|| | 3375| |+----------------------+| | 3376+---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ 3377 3378 3379-Wdelete-incomplete 3380------------------- 3381This diagnostic is enabled by default. 3382 3383**Diagnostic text:** 3384 3385+-------------------------------------------------------------------------------------------------------------------+ 3386|:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`| 3387+-------------------------------------------------------------------------------------------------------------------+ 3388 3389+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3390|:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`| 3391+--------------------------------------------------------------------------------------------------------------------------------------------------+ 3392 3393 3394-Wdelete-non-abstract-non-virtual-dtor 3395-------------------------------------- 3396**Diagnostic text:** 3397 3398+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3399|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`| 3400| ||:diagtext:`delete` || | 3401| |+----------------------+| | 3402| ||:diagtext:`destructor`|| | 3403| |+----------------------+| | 3404+---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ 3405 3406 3407-Wdelete-non-virtual-dtor 3408------------------------- 3409Some of the diagnostics controlled by this flag are enabled by default. 3410 3411Controls `-Wdelete-abstract-non-virtual-dtor`_, `-Wdelete-non-abstract-non-virtual-dtor`_. 3412 3413 3414-Wdeprecated 3415------------ 3416Some of the diagnostics controlled by this flag are enabled by default. 3417 3418Also controls `-Wdeprecated-anon-enum-enum-conversion`_, `-Wdeprecated-array-compare`_, `-Wdeprecated-attributes`_, `-Wdeprecated-comma-subscript`_, `-Wdeprecated-copy`_, `-Wdeprecated-copy-dtor`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-enum-compare`_, `-Wdeprecated-enum-compare-conditional`_, `-Wdeprecated-enum-enum-conversion`_, `-Wdeprecated-enum-float-conversion`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-this-capture`_, `-Wdeprecated-volatile`_, `-Wdeprecated-writable-strings`_. 3419 3420**Diagnostic text:** 3421 3422+---------------------------------------------------------------+ 3423|:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`| 3424+---------------------------------------------------------------+ 3425 3426+---------------------------------------------------------------------------------------------------------+ 3427|:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`| 3428+---------------------------------------------------------------------------------------------------------+ 3429 3430+-------------------------------------------------------------------------------------------------------------------------------------+ 3431|:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`| 3432+-------------------------------------------------------------------------------------------------------------------------------------+ 3433 3434+----------------------------------------------------------------------------------------------------------------------------------------+ 3435|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`| 3436+----------------------------------------------------------------------------------------------------------------------------------------+ 3437 3438+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3439|:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`| 3440+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3441 3442+----------------------------------------------------------------------------------------------------------+ 3443|:warning:`warning:` |nbsp| :diagtext:`-fconcepts-ts is deprecated - use '-std=c++20' for Concepts support`| 3444+----------------------------------------------------------------------------------------------------------+ 3445 3446+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3447|:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`| 3448+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3449 3450+------------------------------------------------------------------------------------+ 3451|:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`| 3452+------------------------------------------------------------------------------------+ 3453 3454 3455-Wdeprecated-anon-enum-enum-conversion 3456-------------------------------------- 3457This diagnostic is enabled by default. 3458 3459**Diagnostic text:** 3460 3461+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3462|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`| 3463| ||:diagtext:`arithmetic between` || | 3464| |+------------------------------------------+| | 3465| ||:diagtext:`bitwise operation between` || | 3466| |+------------------------------------------+| | 3467| ||:diagtext:`comparison of` || | 3468| |+------------------------------------------+| | 3469| ||:diagtext:`conditional expression between`|| | 3470| |+------------------------------------------+| | 3471| ||:diagtext:`compound assignment of` || | 3472| |+------------------------------------------+| | 3473+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3474 3475 3476-Wdeprecated-array-compare 3477-------------------------- 3478This diagnostic is enabled by default. 3479 3480**Diagnostic text:** 3481 3482+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3483|:warning:`warning:` |nbsp| :diagtext:`comparison between two arrays is deprecated; to compare array addresses, use unary '+' to decay operands to pointers`| 3484+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 3485 3486 3487-Wdeprecated-attributes 3488----------------------- 3489This diagnostic is enabled by default. 3490 3491**Diagnostic text:** 3492 3493+------------------------------------------------------------------------------------------------------------------------------------------------+ 3494|:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`| 3495+------------------------------------------------------------------------------------------------------------------------------------------------+ 3496 3497 3498-Wdeprecated-comma-subscript 3499---------------------------- 3500This diagnostic is enabled by default. 3501 3502**Diagnostic text:** 3503 3504+--------------------------------------------------------------------------------------------------+ 3505|:warning:`warning:` |nbsp| :diagtext:`top-level comma expression in array subscript is deprecated`| 3506+--------------------------------------------------------------------------------------------------+ 3507 3508 3509-Wdeprecated-copy 3510----------------- 3511**Diagnostic text:** 3512 3513+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+ 3514|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared copy` |nbsp| |+-------------------------------+| 3515| ||:diagtext:`constructor` || ||:diagtext:`assignment operator`|| 3516| |+-------------------------------+| |+-------------------------------+| 3517| ||:diagtext:`assignment operator`|| ||:diagtext:`constructor` || 3518| |+-------------------------------+| |+-------------------------------+| 3519+--------------------------------------------------------------------------+---------------------------------+----------------------------------------------------------------------------------------------------------------------------+---------------------------------+ 3520 3521 3522-Wdeprecated-copy-dtor 3523---------------------- 3524**Diagnostic text:** 3525 3526+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+ 3527|:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared destructor`| 3528| ||:diagtext:`constructor` || | 3529| |+-------------------------------+| | 3530| ||:diagtext:`assignment operator`|| | 3531| |+-------------------------------+| | 3532+--------------------------------------------------------------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+ 3533 3534 3535-Wdeprecated-declarations 3536------------------------- 3537This diagnostic is enabled by default. 3538 3539**Diagnostic text:** 3540 3541+--------------------------------------------------------------------------------------------------------------------+ 3542|:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`| 3543+--------------------------------------------------------------------------------------------------------------------+ 3544 3545+-----------------------------------------------------------------------------------------------------------------+ 3546|:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`| 3547+-----------------------------------------------------------------------------------------------------------------+ 3548 3549+----------------------------------------------------------------------------+ 3550|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3551+----------------------------------------------------------------------------+ 3552 3553+---------------------------------------------------------------------------------------------------------------------+ 3554|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`| 3555+---------------------------------------------------------------------------------------------------------------------+ 3556 3557+-----------------------------------------------------------------------------------------------------+ 3558|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`| 3559+-----------------------------------------------------------------------------------------------------+ 3560 3561+-------------------------------------------------------------------------------------------------------------------------------------+ 3562|:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`| 3563+-------------------------------------------------------------------------------------------------------------------------------------+ 3564 3565 3566-Wdeprecated-dynamic-exception-spec 3567----------------------------------- 3568**Diagnostic text:** 3569 3570+--------------------------------------------------------------------------------------+ 3571|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`| 3572+--------------------------------------------------------------------------------------+ 3573 3574 3575-Wdeprecated-enum-compare 3576------------------------- 3577This diagnostic is enabled by default. 3578 3579**Diagnostic text:** 3580 3581+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3582|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`| 3583| ||:diagtext:`arithmetic between` || | 3584| |+------------------------------------------+| | 3585| ||:diagtext:`bitwise operation between` || | 3586| |+------------------------------------------+| | 3587| ||:diagtext:`comparison of` || | 3588| |+------------------------------------------+| | 3589| ||:diagtext:`conditional expression between`|| | 3590| |+------------------------------------------+| | 3591| ||:diagtext:`compound assignment of` || | 3592| |+------------------------------------------+| | 3593+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3594 3595 3596-Wdeprecated-enum-compare-conditional 3597------------------------------------- 3598This diagnostic is enabled by default. 3599 3600**Diagnostic text:** 3601 3602+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3603|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`| 3604| ||:diagtext:`arithmetic between` || | 3605| |+------------------------------------------+| | 3606| ||:diagtext:`bitwise operation between` || | 3607| |+------------------------------------------+| | 3608| ||:diagtext:`comparison of` || | 3609| |+------------------------------------------+| | 3610| ||:diagtext:`conditional expression between`|| | 3611| |+------------------------------------------+| | 3612| ||:diagtext:`compound assignment of` || | 3613| |+------------------------------------------+| | 3614+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3615 3616 3617-Wdeprecated-enum-enum-conversion 3618--------------------------------- 3619This diagnostic is enabled by default. 3620 3621**Diagnostic text:** 3622 3623+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3624|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types` |nbsp| :diagtext:`is deprecated`| 3625| ||:diagtext:`arithmetic between` || | 3626| |+------------------------------------------+| | 3627| ||:diagtext:`bitwise operation between` || | 3628| |+------------------------------------------+| | 3629| ||:diagtext:`comparison of` || | 3630| |+------------------------------------------+| | 3631| ||:diagtext:`conditional expression between`|| | 3632| |+------------------------------------------+| | 3633| ||:diagtext:`compound assignment of` || | 3634| |+------------------------------------------+| | 3635+---------------------------+--------------------------------------------+--------------------------------------------------------------------------------+ 3636 3637 3638-Wdeprecated-enum-float-conversion 3639---------------------------------- 3640This diagnostic is enabled by default. 3641 3642**Diagnostic text:** 3643 3644+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+ 3645|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is deprecated`| 3646| ||:diagtext:`arithmetic between` || ||:diagtext:`floating-point`|| ||:diagtext:`with`|| ||:diagtext:`enumeration` || | 3647| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| | 3648| ||:diagtext:`bitwise operation between` || ||:diagtext:`enumeration` || ||:diagtext:`from`|| ||:diagtext:`floating-point`|| | 3649| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| | 3650| ||:diagtext:`comparison of` || | | ||:diagtext:`and` || | | | 3651| |+------------------------------------------+| | | |+----------------+| | | | 3652| ||:diagtext:`conditional expression between`|| | | | | | | | 3653| |+------------------------------------------+| | | | | | | | 3654| ||:diagtext:`compound assignment of` || | | | | | | | 3655| |+------------------------------------------+| | | | | | | | 3656+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+---------------------------------------------------------------------------------+ 3657 3658 3659-Wdeprecated-implementations 3660---------------------------- 3661**Diagnostic text:** 3662 3663+----------------------------------------------------------------------+----------------------+ 3664|:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+| 3665| ||:diagtext:`method` || 3666| |+--------------------+| 3667| ||:diagtext:`class` || 3668| |+--------------------+| 3669| ||:diagtext:`category`|| 3670| |+--------------------+| 3671+----------------------------------------------------------------------+----------------------+ 3672 3673+----------------------------------------------------------------------+ 3674|:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`| 3675+----------------------------------------------------------------------+ 3676 3677 3678-Wdeprecated-increment-bool 3679--------------------------- 3680This diagnostic is enabled by default. 3681 3682**Diagnostic text:** 3683 3684+---------------------------------------------------------------------------------------------------------------------+ 3685|:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`| 3686+---------------------------------------------------------------------------------------------------------------------+ 3687 3688 3689-Wdeprecated-objc-isa-usage 3690--------------------------- 3691This diagnostic is enabled by default. 3692 3693**Diagnostic text:** 3694 3695+-------------------------------------------------------------------------------------------------------------------+ 3696|:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`| 3697+-------------------------------------------------------------------------------------------------------------------+ 3698 3699+----------------------------------------------------------------------------------------------------------------------+ 3700|:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`| 3701+----------------------------------------------------------------------------------------------------------------------+ 3702 3703 3704-Wdeprecated-objc-pointer-introspection 3705--------------------------------------- 3706This diagnostic is enabled by default. 3707 3708Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_. 3709 3710**Diagnostic text:** 3711 3712+--------------------------------------------------------------------------------------------------------------------------+ 3713|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3714+--------------------------------------------------------------------------------------------------------------------------+ 3715 3716 3717-Wdeprecated-objc-pointer-introspection-performSelector 3718------------------------------------------------------- 3719This diagnostic is enabled by default. 3720 3721**Diagnostic text:** 3722 3723+--------------------------------------------------------------------------------------------------------------------------+ 3724|:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| 3725+--------------------------------------------------------------------------------------------------------------------------+ 3726 3727 3728-Wdeprecated-register 3729--------------------- 3730This diagnostic is enabled by default. 3731 3732**Diagnostic text:** 3733 3734+-------------------------------------------------------------------------------------------------------------------+ 3735|:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`| 3736+-------------------------------------------------------------------------------------------------------------------+ 3737 3738 3739-Wdeprecated-this-capture 3740------------------------- 3741**Diagnostic text:** 3742 3743+-------------------------------------------------------------------------------------------------------------+ 3744|:warning:`warning:` |nbsp| :diagtext:`implicit capture of 'this' with a capture default of '=' is deprecated`| 3745+-------------------------------------------------------------------------------------------------------------+ 3746 3747 3748-Wdeprecated-volatile 3749--------------------- 3750This diagnostic is enabled by default. 3751 3752**Diagnostic text:** 3753 3754+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3755|:warning:`warning:` |nbsp| :diagtext:`compound assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3756+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 3757 3758+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+ 3759|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of object of volatile-qualified type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated`| 3760| ||:diagtext:`decrement`|| | 3761| |+---------------------+| | 3762| ||:diagtext:`increment`|| | 3763| |+---------------------+| | 3764+---------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------+ 3765 3766+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3767|:warning:`warning:` |nbsp| :diagtext:`use of result of assignment to object of volatile-qualified type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3768+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3769 3770+---------------------------------------------------------------------------------------------------------------------------------+ 3771|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified parameter type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3772+---------------------------------------------------------------------------------------------------------------------------------+ 3773 3774+------------------------------------------------------------------------------------------------------------------------------+ 3775|:warning:`warning:` |nbsp| :diagtext:`volatile-qualified return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| 3776+------------------------------------------------------------------------------------------------------------------------------+ 3777 3778+---------------------------------------------------------------------------------------------------------+ 3779|:warning:`warning:` |nbsp| :diagtext:`volatile qualifier in structured binding declaration is deprecated`| 3780+---------------------------------------------------------------------------------------------------------+ 3781 3782 3783-Wdeprecated-writable-strings 3784----------------------------- 3785Synonym for `-Wc++11-compat-deprecated-writable-strings`_. 3786 3787 3788-Wdirect-ivar-access 3789-------------------- 3790**Diagnostic text:** 3791 3792+------------------------------------------------------------------------------------------------------------------------------+ 3793|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`| 3794+------------------------------------------------------------------------------------------------------------------------------+ 3795 3796 3797-Wdisabled-macro-expansion 3798-------------------------- 3799**Diagnostic text:** 3800 3801+----------------------------------------------------------------------------+ 3802|:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`| 3803+----------------------------------------------------------------------------+ 3804 3805 3806-Wdisabled-optimization 3807----------------------- 3808This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3809 3810-Wdiscard-qual 3811-------------- 3812This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 3813 3814-Wdistributed-object-modifiers 3815------------------------------ 3816This diagnostic is enabled by default. 3817 3818**Diagnostic text:** 3819 3820+----------------------------------------------------------------------------------------------------------------------------------------------+ 3821|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`| 3822+----------------------------------------------------------------------------------------------------------------------------------------------+ 3823 3824+-------------------------------------------------------------------------------------------------------------------------------------------+ 3825|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`| 3826+-------------------------------------------------------------------------------------------------------------------------------------------+ 3827 3828 3829-Wdiv-by-zero 3830------------- 3831Synonym for `-Wdivision-by-zero`_. 3832 3833 3834-Wdivision-by-zero 3835------------------ 3836This diagnostic is enabled by default. 3837 3838**Diagnostic text:** 3839 3840+---------------------------+-----------------------+----------------------------------------+ 3841|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`| 3842| ||:diagtext:`remainder`|| | 3843| |+---------------------+| | 3844| ||:diagtext:`division` || | 3845| |+---------------------+| | 3846+---------------------------+-----------------------+----------------------------------------+ 3847 3848 3849-Wdll-attribute-on-redeclaration 3850-------------------------------- 3851This diagnostic is enabled by default. 3852 3853**Diagnostic text:** 3854 3855+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3856|:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`| 3857+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3858 3859 3860-Wdllexport-explicit-instantiation-decl 3861--------------------------------------- 3862This diagnostic is enabled by default. 3863 3864**Diagnostic text:** 3865 3866+---------------------------------------------------------------------------------------------------+ 3867|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`| 3868+---------------------------------------------------------------------------------------------------+ 3869 3870 3871-Wdllimport-static-field-def 3872---------------------------- 3873This diagnostic is enabled by default. 3874 3875**Diagnostic text:** 3876 3877+---------------------------------------------------------------------------+ 3878|:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`| 3879+---------------------------------------------------------------------------+ 3880 3881 3882-Wdocumentation 3883--------------- 3884Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_. 3885 3886**Diagnostic text:** 3887 3888+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3889|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`| 3890| ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || | 3891| |+--------------+|+---------------------+| |+---------------------+| | 3892| ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| | 3893| |+--------------+|+---------------------+| |+---------------------+| | 3894| | ||:diagtext:`protocol` || ||:diagtext:`protocol` || | 3895| | |+---------------------+| |+---------------------+| | 3896| | ||:diagtext:`struct` || ||:diagtext:`struct` || | 3897| | |+---------------------+| |+---------------------+| | 3898| | ||:diagtext:`union` || ||:diagtext:`union` || | 3899| | |+---------------------+| |+---------------------+| | 3900+----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ 3901 3902+-----------------------------------------------------------+----------------+-----------------------------+ 3903|:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`| 3904| ||:diagtext:`\\`|| | 3905| |+--------------+| | 3906| ||:diagtext:`@` || | 3907| |+--------------+| | 3908+-----------------------------------------------------------+----------------+-----------------------------+ 3909 3910+------------------------------------------------------------------+----------------+-------------------------------------+ 3911|:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`| 3912| ||:diagtext:`\\`|| | 3913| |+--------------+| | 3914| ||:diagtext:`@` || | 3915| |+--------------+| | 3916+------------------------------------------------------------------+----------------+-------------------------------------+ 3917 3918+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3919|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`| 3920| ||:diagtext:`\\`|||:diagtext:`classdesign` || | 3921| |+--------------+|+------------------------+| | 3922| ||:diagtext:`@` |||:diagtext:`coclass` || | 3923| |+--------------+|+------------------------+| | 3924| | ||:diagtext:`dependency` || | 3925| | |+------------------------+| | 3926| | ||:diagtext:`helper` || | 3927| | |+------------------------+| | 3928| | ||:diagtext:`helperclass` || | 3929| | |+------------------------+| | 3930| | ||:diagtext:`helps` || | 3931| | |+------------------------+| | 3932| | ||:diagtext:`instancesize`|| | 3933| | |+------------------------+| | 3934| | ||:diagtext:`ownership` || | 3935| | |+------------------------+| | 3936| | ||:diagtext:`performance` || | 3937| | |+------------------------+| | 3938| | ||:diagtext:`security` || | 3939| | |+------------------------+| | 3940| | ||:diagtext:`superclass` || | 3941| | |+------------------------+| | 3942+----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ 3943 3944+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3945|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`| 3946| ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || | 3947| |+--------------+|+-------------------------+| |+---------------------------------+| | 3948| ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || | 3949| |+--------------+|+-------------------------+| |+---------------------------------+| | 3950| | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| | 3951| | |+-------------------------+| |+---------------------------------+| | 3952| | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| | 3953| | |+-------------------------+| |+---------------------------------+| | 3954| | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| | 3955| | |+-------------------------+| |+---------------------------------+| | 3956+----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ 3957 3958+-------------------------------------------------------------------------------------------------------+ 3959|:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`| 3960+-------------------------------------------------------------------------------------------------------+ 3961 3962+-------------------------------------------------------------------------------+ 3963|:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`| 3964+-------------------------------------------------------------------------------+ 3965 3966+----------------------------------------+----------------+-------------------------------------------------------------------------+ 3967|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not have a valid word argument`| 3968| ||:diagtext:`\\`|| | 3969| |+--------------+| | 3970| ||:diagtext:`@` || | 3971| |+--------------+| | 3972+----------------------------------------+----------------+-------------------------------------------------------------------------+ 3973 3974+-----------------------------------------------------------------------------------------------------+ 3975|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`| 3976+-----------------------------------------------------------------------------------------------------+ 3977 3978+------------------------------------------------------------------------------------------------------------------------------------------+ 3979|:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`| 3980+------------------------------------------------------------------------------------------------------------------------------------------+ 3981 3982+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3983|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`| 3984| ||:diagtext:`\\`|| | 3985| |+--------------+| | 3986| ||:diagtext:`@` || | 3987| |+--------------+| | 3988+----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ 3989 3990+---------------------------------------------------------------------------------------------------------------------+ 3991|:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`| 3992+---------------------------------------------------------------------------------------------------------------------+ 3993 3994+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 3995|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+| 3996| ||:diagtext:`\\`|| ||:diagtext:`function returning void`|| 3997| |+--------------+| |+-----------------------------------+| 3998| ||:diagtext:`@` || ||:diagtext:`constructor` || 3999| |+--------------+| |+-----------------------------------+| 4000| | | ||:diagtext:`destructor` || 4001| | | |+-----------------------------------+| 4002| | | ||:diagtext:`method returning void` || 4003| | | |+-----------------------------------+| 4004+----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ 4005 4006+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 4007|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`| 4008| ||:diagtext:`\\`|| | 4009| |+--------------+| | 4010| ||:diagtext:`@` || | 4011| |+--------------+| | 4012+----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ 4013 4014+--------------------------------------------------------------------------------------------------------------+ 4015|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`| 4016+--------------------------------------------------------------------------------------------------------------+ 4017 4018+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 4019|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`| 4020| ||:diagtext:`\\`|| | 4021| |+--------------+| | 4022| ||:diagtext:`@` || | 4023| |+--------------+| | 4024+----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ 4025 4026+------------------------------------------------------------------------------------------------------------------------------+ 4027|:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`| 4028+------------------------------------------------------------------------------------------------------------------------------+ 4029 4030+---------------------------------------------------------------------+ 4031|:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`| 4032+---------------------------------------------------------------------+ 4033 4034+----------------------------------------+----------------+------------------------------------------------------------------------------+ 4035|:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`| 4036| ||:diagtext:`\\`|| | 4037| |+--------------+| | 4038| ||:diagtext:`@` || | 4039| |+--------------+| | 4040+----------------------------------------+----------------+------------------------------------------------------------------------------+ 4041 4042 4043-Wdocumentation-deprecated-sync 4044------------------------------- 4045**Diagnostic text:** 4046 4047+-------------------------------------------------------------------+----------------+-------------------------------------------------------------------------+ 4048|:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '`|+--------------+|:diagtext:`deprecated' command but does not have a deprecation attribute`| 4049| ||:diagtext:`\\`|| | 4050| |+--------------+| | 4051| ||:diagtext:`@` || | 4052| |+--------------+| | 4053+-------------------------------------------------------------------+----------------+-------------------------------------------------------------------------+ 4054 4055 4056-Wdocumentation-html 4057-------------------- 4058**Diagnostic text:** 4059 4060+-----------------------------------------------------------------------------------------------+ 4061|:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`| 4062+-----------------------------------------------------------------------------------------------+ 4063 4064+--------------------------------------------------------------------------------+ 4065|:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`| 4066+--------------------------------------------------------------------------------+ 4067 4068+--------------------------------------------------------------------------------------------------+ 4069|:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`| 4070+--------------------------------------------------------------------------------------------------+ 4071 4072+-----------------------------------------------------------------------------------------------------------------------------+ 4073|:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`| 4074+-----------------------------------------------------------------------------------------------------------------------------+ 4075 4076 4077-Wdocumentation-pedantic 4078------------------------ 4079Also controls `-Wdocumentation-unknown-command`_. 4080 4081**Diagnostic text:** 4082 4083+-----------------------------------------------------------------------------------------------+ 4084|:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`| 4085+-----------------------------------------------------------------------------------------------+ 4086 4087 4088-Wdocumentation-unknown-command 4089------------------------------- 4090**Diagnostic text:** 4091 4092+--------------------------------------------------------------------------------------------------------------------------------------------+ 4093|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| 4094+--------------------------------------------------------------------------------------------------------------------------------------------+ 4095 4096+---------------------------------------------------------------+ 4097|:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`| 4098+---------------------------------------------------------------+ 4099 4100 4101-Wdollar-in-identifier-extension 4102-------------------------------- 4103**Diagnostic text:** 4104 4105+--------------------------------------------------------+ 4106|:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`| 4107+--------------------------------------------------------+ 4108 4109 4110-Wdouble-promotion 4111------------------ 4112**Diagnostic text:** 4113 4114+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4115|:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 4116+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4117 4118 4119-Wdtor-name 4120----------- 4121Some of the diagnostics controlled by this flag are enabled by default. 4122 4123**Diagnostic text:** 4124 4125+----------------------------------------------------------------------------------------------------+ 4126|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`| 4127+----------------------------------------------------------------------------------------------------+ 4128 4129+-----------------------------------------------------------------------------------------------------------------------------------+ 4130|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`| 4131+-----------------------------------------------------------------------------------------------------------------------------------+ 4132 4133+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4134|:warning:`warning:` |nbsp| :diagtext:`qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup`| 4135+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4136 4137 4138-Wdtor-typedef 4139-------------- 4140This diagnostic is an error by default, but the flag ``-Wno-dtor-typedef`` can be used to disable the error. 4141 4142**Diagnostic text:** 4143 4144+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+ 4145|:error:`error:` |nbsp| :diagtext:`destructor cannot be declared using a` |nbsp| |+----------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`of the class name`| 4146| ||:diagtext:`typedef` || | 4147| |+----------------------+| | 4148| ||:diagtext:`type alias`|| | 4149| |+----------------------+| | 4150+--------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------+ 4151 4152 4153-Wduplicate-decl-specifier 4154-------------------------- 4155Some of the diagnostics controlled by this flag are enabled by default. 4156 4157**Diagnostic text:** 4158 4159+-----------------------------------------------------------------------------------------------------+ 4160|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 4161+-----------------------------------------------------------------------------------------------------+ 4162 4163+-----------------------------------------------------------------------------------------------------+ 4164|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 4165+-----------------------------------------------------------------------------------------------------+ 4166 4167+-------------------------------------------------------------------------------------------+ 4168|:warning:`warning:` |nbsp| :diagtext:`multiple identical address spaces specified for type`| 4169+-------------------------------------------------------------------------------------------+ 4170 4171+-----------------------------------------------------------------------------------------------------+ 4172|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 4173+-----------------------------------------------------------------------------------------------------+ 4174 4175 4176-Wduplicate-enum 4177---------------- 4178**Diagnostic text:** 4179 4180+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4181|:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`| 4182+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4183 4184 4185-Wduplicate-method-arg 4186---------------------- 4187**Diagnostic text:** 4188 4189+------------------------------------------------------------------------------------------------+ 4190|:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`| 4191+------------------------------------------------------------------------------------------------+ 4192 4193 4194-Wduplicate-method-match 4195------------------------ 4196**Diagnostic text:** 4197 4198+-----------------------------------------------------------------------------------------------------------------------------------+ 4199|:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`| 4200+-----------------------------------------------------------------------------------------------------------------------------------+ 4201 4202 4203-Wduplicate-protocol 4204-------------------- 4205This diagnostic is enabled by default. 4206 4207**Diagnostic text:** 4208 4209+-----------------------------------------------------------------------------------------------------------------------------+ 4210|:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`| 4211+-----------------------------------------------------------------------------------------------------------------------------+ 4212 4213 4214-Wdynamic-class-memaccess 4215------------------------- 4216This diagnostic is enabled by default. 4217 4218**Diagnostic text:** 4219 4220+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 4221|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+| 4222| ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`|| 4223| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 4224| ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` || 4225| |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| 4226| ||:diagtext:`first operand of` || | | ||:diagtext:`moved` || 4227| |+-----------------------------+| | | |+-----------------------+| 4228| ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` || 4229| |+-----------------------------+| | | |+-----------------------+| 4230+---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ 4231 4232 4233-Wdynamic-exception-spec 4234------------------------ 4235Some of the diagnostics controlled by this flag are enabled by default. 4236 4237Also controls `-Wdeprecated-dynamic-exception-spec`_. 4238 4239**Diagnostic text:** 4240 4241+--------------------------------------------------------------------------------------------+ 4242|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`| 4243+--------------------------------------------------------------------------------------------+ 4244 4245 4246-Weffc++ 4247-------- 4248Synonym for `-Wnon-virtual-dtor`_. 4249 4250 4251-Wembedded-directive 4252-------------------- 4253**Diagnostic text:** 4254 4255+----------------------------------------------------------------------------------------------------------+ 4256|:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`| 4257+----------------------------------------------------------------------------------------------------------+ 4258 4259 4260-Wempty-body 4261------------ 4262This diagnostic is enabled by default. 4263 4264**Diagnostic text:** 4265 4266+--------------------------------------------------------------+ 4267|:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`| 4268+--------------------------------------------------------------+ 4269 4270+------------------------------------------------------------------+ 4271|:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`| 4272+------------------------------------------------------------------+ 4273 4274+--------------------------------------------------------------------------+ 4275|:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`| 4276+--------------------------------------------------------------------------+ 4277 4278+----------------------------------------------------------------------+ 4279|:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`| 4280+----------------------------------------------------------------------+ 4281 4282+----------------------------------------------------------------+ 4283|:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`| 4284+----------------------------------------------------------------+ 4285 4286 4287-Wempty-decomposition 4288--------------------- 4289This diagnostic is enabled by default. 4290 4291**Diagnostic text:** 4292 4293+-------------------------------------------------------------------------------------------------+ 4294|:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`| 4295+-------------------------------------------------------------------------------------------------+ 4296 4297 4298-Wempty-init-stmt 4299----------------- 4300**Diagnostic text:** 4301 4302+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 4303|:warning:`warning:` |nbsp| :diagtext:`empty initialization statement of '`|+---------------------------+|:diagtext:`' has no effect`| 4304| ||:diagtext:`if` || | 4305| |+---------------------------+| | 4306| ||:diagtext:`switch` || | 4307| |+---------------------------+| | 4308| ||:diagtext:`range-based for`|| | 4309| |+---------------------------+| | 4310+--------------------------------------------------------------------------+-----------------------------+---------------------------+ 4311 4312 4313-Wempty-translation-unit 4314------------------------ 4315**Diagnostic text:** 4316 4317+------------------------------------------------------------------------------------------------------------+ 4318|:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`| 4319+------------------------------------------------------------------------------------------------------------+ 4320 4321 4322-Wencode-type 4323------------- 4324This diagnostic is enabled by default. 4325 4326**Diagnostic text:** 4327 4328+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4329|:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`| 4330+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4331 4332 4333-Wendif-labels 4334-------------- 4335Synonym for `-Wextra-tokens`_. 4336 4337 4338-Wenum-compare 4339-------------- 4340This diagnostic is enabled by default. 4341 4342Also controls `-Wdeprecated-enum-compare`_, `-Wenum-compare-switch`_. 4343 4344**Diagnostic text:** 4345 4346+---------------------------+--------------------------------------------+-----------------------------------------------+ 4347|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`| 4348| ||:diagtext:`arithmetic between` || | 4349| |+------------------------------------------+| | 4350| ||:diagtext:`bitwise operation between` || | 4351| |+------------------------------------------+| | 4352| ||:diagtext:`comparison of` || | 4353| |+------------------------------------------+| | 4354| ||:diagtext:`conditional expression between`|| | 4355| |+------------------------------------------+| | 4356| ||:diagtext:`compound assignment of` || | 4357| |+------------------------------------------+| | 4358+---------------------------+--------------------------------------------+-----------------------------------------------+ 4359 4360 4361-Wenum-compare-conditional 4362-------------------------- 4363Some of the diagnostics controlled by this flag are enabled by default. 4364 4365Also controls `-Wdeprecated-enum-compare-conditional`_. 4366 4367**Diagnostic text:** 4368 4369+---------------------------+--------------------------------------------+-----------------------------------------------+ 4370|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`| 4371| ||:diagtext:`arithmetic between` || | 4372| |+------------------------------------------+| | 4373| ||:diagtext:`bitwise operation between` || | 4374| |+------------------------------------------+| | 4375| ||:diagtext:`comparison of` || | 4376| |+------------------------------------------+| | 4377| ||:diagtext:`conditional expression between`|| | 4378| |+------------------------------------------+| | 4379| ||:diagtext:`compound assignment of` || | 4380| |+------------------------------------------+| | 4381+---------------------------+--------------------------------------------+-----------------------------------------------+ 4382 4383 4384-Wenum-compare-switch 4385--------------------- 4386This diagnostic is enabled by default. 4387 4388**Diagnostic text:** 4389 4390+----------------------------------------------------------------------------------------------------+ 4391|:warning:`warning:` |nbsp| :diagtext:`comparison of different enumeration types in switch statement`| 4392+----------------------------------------------------------------------------------------------------+ 4393 4394 4395-Wenum-conversion 4396----------------- 4397Some of the diagnostics controlled by this flag are enabled by default. 4398 4399Also controls `-Wenum-compare-conditional`_, `-Wenum-enum-conversion`_, `-Wenum-float-conversion`_. 4400 4401**Diagnostic text:** 4402 4403+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4404|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`| 4405+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4406 4407 4408-Wenum-enum-conversion 4409---------------------- 4410Some of the diagnostics controlled by this flag are enabled by default. 4411 4412Also controls `-Wdeprecated-enum-enum-conversion`_. 4413 4414**Diagnostic text:** 4415 4416+---------------------------+--------------------------------------------+-----------------------------------------------+ 4417|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| :diagtext:`different enumeration types`| 4418| ||:diagtext:`arithmetic between` || | 4419| |+------------------------------------------+| | 4420| ||:diagtext:`bitwise operation between` || | 4421| |+------------------------------------------+| | 4422| ||:diagtext:`comparison of` || | 4423| |+------------------------------------------+| | 4424| ||:diagtext:`conditional expression between`|| | 4425| |+------------------------------------------+| | 4426| ||:diagtext:`compound assignment of` || | 4427| |+------------------------------------------+| | 4428+---------------------------+--------------------------------------------+-----------------------------------------------+ 4429 4430 4431-Wenum-float-conversion 4432----------------------- 4433Some of the diagnostics controlled by this flag are enabled by default. 4434 4435Also controls `-Wdeprecated-enum-float-conversion`_. 4436 4437**Diagnostic text:** 4438 4439+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+ 4440|:warning:`warning:` |nbsp| |+------------------------------------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`D`| 4441| ||:diagtext:`arithmetic between` || ||:diagtext:`floating-point`|| ||:diagtext:`with`|| ||:diagtext:`enumeration` || | 4442| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| | 4443| ||:diagtext:`bitwise operation between` || ||:diagtext:`enumeration` || ||:diagtext:`from`|| ||:diagtext:`floating-point`|| | 4444| |+------------------------------------------+| |+--------------------------+| |+----------------+| |+--------------------------+| | 4445| ||:diagtext:`comparison of` || | | ||:diagtext:`and` || | | | 4446| |+------------------------------------------+| | | |+----------------+| | | | 4447| ||:diagtext:`conditional expression between`|| | | | | | | | 4448| |+------------------------------------------+| | | | | | | | 4449| ||:diagtext:`compound assignment of` || | | | | | | | 4450| |+------------------------------------------+| | | | | | | | 4451+---------------------------+--------------------------------------------+--------+----------------------------+--------------------------------------------------------+------------------+--------+----------------------------+------------------------------------------------+ 4452 4453 4454-Wenum-too-large 4455---------------- 4456This diagnostic is enabled by default. 4457 4458**Diagnostic text:** 4459 4460+-----------------------------------------------------------------------------------------+ 4461|:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`| 4462+-----------------------------------------------------------------------------------------+ 4463 4464+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4465|:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`| 4466+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4467 4468 4469-Wexceptions 4470------------ 4471This diagnostic is enabled by default. 4472 4473**Diagnostic text:** 4474 4475+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 4476|:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`| 4477| ||:diagtext:`constructor`|| | 4478| |+-----------------------+| | 4479| ||:diagtext:`destructor` || | 4480| |+-----------------------+| | 4481+--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ 4482 4483+-------------------------------------------------------------------------------------------------------------------------------------+ 4484|:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`| 4485+-------------------------------------------------------------------------------------------------------------------------------------+ 4486 4487+-----------------------------------------------------------------------------------------------------------------------------+ 4488|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`| 4489+-----------------------------------------------------------------------------------------------------------------------------+ 4490 4491 4492-Wexcess-initializers 4493--------------------- 4494This diagnostic is enabled by default. 4495 4496**Diagnostic text:** 4497 4498+-----------------------------------------------------------------+--------------------+-------------------------------+ 4499|:warning:`warning:` |nbsp| :diagtext:`excess elements in` |nbsp| |+------------------+| |nbsp| :diagtext:`initializer`| 4500| ||:diagtext:`array` || | 4501| |+------------------+| | 4502| ||:diagtext:`vector`|| | 4503| |+------------------+| | 4504| ||:diagtext:`scalar`|| | 4505| |+------------------+| | 4506| ||:diagtext:`union` || | 4507| |+------------------+| | 4508| ||:diagtext:`struct`|| | 4509| |+------------------+| | 4510+-----------------------------------------------------------------+--------------------+-------------------------------+ 4511 4512+---------------------------------------------------------------------------------------------------------------------------+ 4513|:warning:`warning:` |nbsp| :diagtext:`excess elements in initializer for indivisible sizeless type` |nbsp| :placeholder:`A`| 4514+---------------------------------------------------------------------------------------------------------------------------+ 4515 4516+--------------------------------------------------------------------------------+ 4517|:warning:`warning:` |nbsp| :diagtext:`excess elements in char array initializer`| 4518+--------------------------------------------------------------------------------+ 4519 4520+------------------------------------------------------------------------------------+ 4521|:warning:`warning:` |nbsp| :diagtext:`initializer-string for char array is too long`| 4522+------------------------------------------------------------------------------------+ 4523 4524 4525-Wexit-time-destructors 4526----------------------- 4527**Diagnostic text:** 4528 4529+-----------------------------------------------------------------------------------+ 4530|:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`| 4531+-----------------------------------------------------------------------------------+ 4532 4533 4534-Wexpansion-to-defined 4535---------------------- 4536Some of the diagnostics controlled by this flag are enabled by default. 4537 4538**Diagnostic text:** 4539 4540+-------------------------------------------------------------------------------------------------+ 4541|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 4542+-------------------------------------------------------------------------------------------------+ 4543 4544+-------------------------------------------------------------------------------------------------+ 4545|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 4546+-------------------------------------------------------------------------------------------------+ 4547 4548 4549-Wexplicit-initialize-call 4550-------------------------- 4551This diagnostic is enabled by default. 4552 4553**Diagnostic text:** 4554 4555+------------------------------------------------------------------------------------------------------------+ 4556|:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`| 4557+------------------------------------------------------------------------------------------------------------+ 4558 4559+----------------------------------------------------------------------------------------------------------------------------+ 4560|:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`| 4561+----------------------------------------------------------------------------------------------------------------------------+ 4562 4563 4564-Wexplicit-ownership-type 4565------------------------- 4566**Diagnostic text:** 4567 4568+-------------------------------------------------------------------------------------------------------------------------------------+ 4569|:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`| 4570+-------------------------------------------------------------------------------------------------------------------------------------+ 4571 4572 4573-Wexport-unnamed 4574---------------- 4575This diagnostic is enabled by default. 4576 4577**Diagnostic text:** 4578 4579+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+ 4580|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit` |nbsp| |+----------------------------+| |nbsp| :diagtext:`declaration to appear in an export block`| 4581| ||:diagtext:`an empty` || | 4582| |+----------------------------+| | 4583| ||:diagtext:`a static\_assert`|| | 4584| |+----------------------------+| | 4585+------------------------------------------------------------------------+------------------------------+------------------------------------------------------------+ 4586 4587+-------------------------------------------------------------------------------------------------------------------------------+ 4588|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit a declaration that does not introduce any names to be exported`| 4589+-------------------------------------------------------------------------------------------------------------------------------+ 4590 4591 4592-Wexport-using-directive 4593------------------------ 4594This diagnostic is enabled by default. 4595 4596**Diagnostic text:** 4597 4598+-----------------------------------------------------------------------------------------------+ 4599|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 does not permit using directive to be exported`| 4600+-----------------------------------------------------------------------------------------------+ 4601 4602 4603-Wextern-c-compat 4604----------------- 4605This diagnostic is enabled by default. 4606 4607**Diagnostic text:** 4608 4609+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 4610|:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| 4611| || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | 4612| |+-------------------------+|+------------------+| |+-------------------------+| | 4613| ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | 4614| |+-------------------------+|+------------------+| |+-------------------------+| | 4615+---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ 4616 4617 4618-Wextern-initializer 4619-------------------- 4620This diagnostic is enabled by default. 4621 4622**Diagnostic text:** 4623 4624+---------------------------------------------------------------------------+ 4625|:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`| 4626+---------------------------------------------------------------------------+ 4627 4628 4629-Wextra 4630------- 4631Some of the diagnostics controlled by this flag are enabled by default. 4632 4633Also controls `-Wdeprecated-copy`_, `-Wempty-init-stmt`_, `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_. 4634 4635**Diagnostic text:** 4636 4637+-----------------------------------------------------------------------------------------------------------------------------+ 4638|:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`| 4639+-----------------------------------------------------------------------------------------------------------------------------+ 4640 4641 4642-Wextra-qualification 4643--------------------- 4644This diagnostic is enabled by default. 4645 4646**Diagnostic text:** 4647 4648+--------------------------------------------------------------------------------------------+ 4649|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 4650+--------------------------------------------------------------------------------------------+ 4651 4652 4653-Wextra-semi 4654------------ 4655Also controls `-Wc++11-extra-semi`_, `-Wc++98-compat-extra-semi`_. 4656 4657**Diagnostic text:** 4658 4659+--------------------------------------------------------+------------------------------------------------+ 4660|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 4661| ||:diagtext:`outside of a function` || 4662| |+----------------------------------------------+| 4663| ||+--------------------------------------------+|| 4664| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 4665| ||+--------------------------------------------+|| 4666| |+----------------------------------------------+| 4667| ||:diagtext:`inside instance variable list` || 4668| |+----------------------------------------------+| 4669| ||:diagtext:`after member function definition` || 4670| |+----------------------------------------------+| 4671+--------------------------------------------------------+------------------------------------------------+ 4672 4673+---------------------------------------------------------------------------------+ 4674|:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`| 4675+---------------------------------------------------------------------------------+ 4676 4677 4678-Wextra-semi-stmt 4679----------------- 4680Also controls `-Wempty-init-stmt`_. 4681 4682**Diagnostic text:** 4683 4684+-------------------------------------------------------------------------------------------------------------------------------+ 4685|:warning:`warning:` |nbsp| :diagtext:`empty expression statement has no effect; remove unnecessary ';' to silence this warning`| 4686+-------------------------------------------------------------------------------------------------------------------------------+ 4687 4688 4689-Wextra-tokens 4690-------------- 4691This diagnostic is enabled by default. 4692 4693**Diagnostic text:** 4694 4695+------------------------------------------------------------------------------------------------------------+ 4696|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`| 4697+------------------------------------------------------------------------------------------------------------+ 4698 4699+-------------------------------------------------------------------------------------------------------------------------------+ 4700|:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`| 4701+-------------------------------------------------------------------------------------------------------------------------------+ 4702 4703 4704-Wfallback 4705---------- 4706This diagnostic is enabled by default. 4707 4708**Diagnostic text:** 4709 4710+------------------------------------------------------------------------------+ 4711|:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`| 4712+------------------------------------------------------------------------------+ 4713 4714 4715-Wfinal-dtor-non-final-class 4716---------------------------- 4717This diagnostic is enabled by default. 4718 4719**Diagnostic text:** 4720 4721+---------------------------------------------------------------------+--------------------+--------------------------------------+ 4722|:warning:`warning:` |nbsp| :diagtext:`class with destructor marked '`|+------------------+|:diagtext:`' cannot be inherited from`| 4723| ||:diagtext:`final` || | 4724| |+------------------+| | 4725| ||:diagtext:`sealed`|| | 4726| |+------------------+| | 4727+---------------------------------------------------------------------+--------------------+--------------------------------------+ 4728 4729 4730-Wfixed-enum-extension 4731---------------------- 4732**Diagnostic text:** 4733 4734+-----------------------------------------------------------------------------------------------------------+ 4735|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Clang extension`| 4736+-----------------------------------------------------------------------------------------------------------+ 4737 4738 4739-Wflag-enum 4740----------- 4741This diagnostic is enabled by default. 4742 4743**Diagnostic text:** 4744 4745+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4746|:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`| 4747+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4748 4749 4750-Wflexible-array-extensions 4751--------------------------- 4752**Diagnostic text:** 4753 4754+-------------------------------------------------------------------------------------------------------------------------------+ 4755|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`| 4756+-------------------------------------------------------------------------------------------------------------------------------+ 4757 4758+-------------------------------------------------------------------------------------------------------------------------+ 4759|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`| 4760+-------------------------------------------------------------------------------------------------------------------------+ 4761 4762 4763-Wfloat-conversion 4764------------------ 4765Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_. 4766 4767**Diagnostic text:** 4768 4769+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4770|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 4771+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4772 4773 4774-Wfloat-equal 4775------------- 4776**Diagnostic text:** 4777 4778+---------------------------------------------------------------------------------------+ 4779|:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`| 4780+---------------------------------------------------------------------------------------+ 4781 4782 4783-Wfloat-overflow-conversion 4784--------------------------- 4785**Diagnostic text:** 4786 4787+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4788|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4789+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4790 4791+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4792|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 4793+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4794 4795 4796-Wfloat-zero-conversion 4797----------------------- 4798**Diagnostic text:** 4799 4800+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4801|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 4802+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4803 4804 4805-Wfor-loop-analysis 4806------------------- 4807**Diagnostic text:** 4808 4809+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4810|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`| 4811| ||:diagtext:`decremented`|| | 4812| |+-----------------------+| | 4813| ||:diagtext:`incremented`|| | 4814| |+-----------------------+| | 4815+-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ 4816 4817+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4818|:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`| 4819| ||:diagtext:`s` || | 4820| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4821| ||+------------------------+ || | 4822| ||| |nbsp| :placeholder:`B`| || | 4823| ||+------------------------+ || | 4824| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4825| ||+------------------------------------------------------------------------------------+ || | 4826| |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || | 4827| ||+------------------------------------------------------------------------------------+ || | 4828| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4829| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4830| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || | 4831| ||+-------------------------------------------------------------------------------------------------------------------+ || | 4832| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4833| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4834| |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| | 4835| ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | 4836| |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | 4837+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ 4838 4839 4840-Wformat 4841-------- 4842This diagnostic is enabled by default. 4843 4844Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_. 4845 4846**Diagnostic text:** 4847 4848+-------------------------------------------------------------------------------------+ 4849|:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`| 4850+-------------------------------------------------------------------------------------+ 4851 4852+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4853|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 4854| ||:diagtext:`values of type` || | 4855| |+--------------------------------------------+| | 4856| ||:diagtext:`enum values with underlying type`|| | 4857| |+--------------------------------------------+| | 4858+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4859 4860+----------------------------------------------------------------------------------------------------------------------------+ 4861|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier, but argument has boolean value`| 4862+----------------------------------------------------------------------------------------------------------------------------+ 4863 4864+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4865|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 4866| ||:diagtext:`type` || | 4867| |+---------------------------+| | 4868| ||:diagtext:`underlying type`|| | 4869| |+---------------------------+| | 4870+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 4871 4872+----------------------------------------------------------------------------------------------------------------------------------------+ 4873|:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`| 4874+----------------------------------------------------------------------------------------------------------------------------------------+ 4875 4876+-----------------------------------------------------------------------------+-----------------------------+ 4877|:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+| 4878| ||:diagtext:`field width` || 4879| |+---------------------------+| 4880| ||:diagtext:`field precision`|| 4881| |+---------------------------+| 4882+-----------------------------------------------------------------------------+-----------------------------+ 4883 4884+----------------------------------------------------------------------------------------------------------+ 4885|:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`| 4886+----------------------------------------------------------------------------------------------------------+ 4887 4888+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4889|:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4890+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4891 4892+--------------------------------------------------------------------------------+ 4893|:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`| 4894+--------------------------------------------------------------------------------+ 4895 4896+-------------------------------------------------------------------------------------------------------+ 4897|:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`| 4898+-------------------------------------------------------------------------------------------------------+ 4899 4900+------------------------------------------------------------+ 4901|:warning:`warning:` |nbsp| :diagtext:`format string missing`| 4902+------------------------------------------------------------+ 4903 4904+----------------------------------------------------------------------------------------------------------------------------------+ 4905|:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`| 4906+----------------------------------------------------------------------------------------------------------------------------------+ 4907 4908+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4909|:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`| 4910| ||:diagtext:`\*` || ||:diagtext:`width` || | 4911| |+---------------+| |+---------------------+| | 4912| ||:diagtext:`.\*`|| ||:diagtext:`precision`|| | 4913| |+---------------+| |+---------------------+| | 4914+----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ 4915 4916+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4917|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`| 4918| ||:diagtext:`width` || | 4919| |+---------------------+| | 4920| ||:diagtext:`precision`|| | 4921| |+---------------------+| | 4922+----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ 4923 4924+-----------------------------------------------------------------+ 4925|:warning:`warning:` |nbsp| :diagtext:`missing object format flag`| 4926+-----------------------------------------------------------------+ 4927 4928+------------------------------------------------------------------------------------------+ 4929|:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`| 4930+------------------------------------------------------------------------------------------+ 4931 4932+---------------------------------------------------------------------------+ 4933|:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`| 4934+---------------------------------------------------------------------------+ 4935 4936+-----------------------------------------------------------------------------------------------------------------------------------------+ 4937|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`| 4938+-----------------------------------------------------------------------------------------------------------------------------------------+ 4939 4940+------------------------------------------------------------------+ 4941|:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`| 4942+------------------------------------------------------------------+ 4943 4944+--------------------------------------------------------------------------------+ 4945|:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`| 4946+--------------------------------------------------------------------------------+ 4947 4948+-------------------------------------------------------------------------------------------------------+ 4949|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`| 4950+-------------------------------------------------------------------------------------------------------+ 4951 4952+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4953|:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`| 4954+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4955 4956+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4957|:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`| 4958| ||:diagtext:`field width`|| | 4959| |+-----------------------+| | 4960| ||:diagtext:`precision` || | 4961| |+-----------------------+| | 4962+---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ 4963 4964+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4965|:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`| 4966+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4967 4968+----------------------------------------------------------------------------------------+ 4969|:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`| 4970+----------------------------------------------------------------------------------------+ 4971 4972+----------------------------------------------------------------------------------------+ 4973|:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`| 4974+----------------------------------------------------------------------------------------+ 4975 4976 4977-Wformat-extra-args 4978------------------- 4979This diagnostic is enabled by default. 4980 4981**Diagnostic text:** 4982 4983+------------------------------------------------------------------------------+ 4984|:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`| 4985+------------------------------------------------------------------------------+ 4986 4987 4988-Wformat-invalid-specifier 4989-------------------------- 4990This diagnostic is enabled by default. 4991 4992**Diagnostic text:** 4993 4994+--------------------------------------------------------------------------------------------------+ 4995|:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`| 4996+--------------------------------------------------------------------------------------------------+ 4997 4998 4999-Wformat-non-iso 5000---------------- 5001**Diagnostic text:** 5002 5003+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 5004|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`| 5005| ||:diagtext:`length modifier` || | 5006| |+--------------------------------+| | 5007| ||:diagtext:`conversion specifier`|| | 5008| |+--------------------------------+| | 5009+-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ 5010 5011+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5012|:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`| 5013+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5014 5015+--------------------------------------------------------------------------------------+ 5016|:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`| 5017+--------------------------------------------------------------------------------------+ 5018 5019 5020-Wformat-nonliteral 5021------------------- 5022**Diagnostic text:** 5023 5024+----------------------------------------------------------------------------+ 5025|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`| 5026+----------------------------------------------------------------------------+ 5027 5028 5029-Wformat-pedantic 5030----------------- 5031**Diagnostic text:** 5032 5033+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5034|:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| 5035| ||:diagtext:`values of type` || | 5036| |+--------------------------------------------+| | 5037| ||:diagtext:`enum values with underlying type`|| | 5038| |+--------------------------------------------+| | 5039+---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5040 5041+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 5042|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 5043| ||:diagtext:`type` || | 5044| |+---------------------------+| | 5045| ||:diagtext:`underlying type`|| | 5046| |+---------------------------+| | 5047+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 5048 5049 5050-Wformat-security 5051----------------- 5052This diagnostic is enabled by default. 5053 5054**Diagnostic text:** 5055 5056+---------------------------------------------------------------------------------------------------+ 5057|:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`| 5058+---------------------------------------------------------------------------------------------------+ 5059 5060 5061-Wformat-type-confusion 5062----------------------- 5063**Diagnostic text:** 5064 5065+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 5066|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 5067| ||:diagtext:`type` || | 5068| |+---------------------------+| | 5069| ||:diagtext:`underlying type`|| | 5070| |+---------------------------+| | 5071+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 5072 5073 5074-Wformat-y2k 5075------------ 5076This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5077 5078-Wformat-zero-length 5079-------------------- 5080This diagnostic is enabled by default. 5081 5082**Diagnostic text:** 5083 5084+-------------------------------------------------------------+ 5085|:warning:`warning:` |nbsp| :diagtext:`format string is empty`| 5086+-------------------------------------------------------------+ 5087 5088 5089-Wformat=2 5090---------- 5091Some of the diagnostics controlled by this flag are enabled by default. 5092 5093Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_. 5094 5095 5096-Wfortify-source 5097---------------- 5098This diagnostic is enabled by default. 5099 5100**Diagnostic text:** 5101 5102+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5103|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but format string expands to at least` |nbsp| :placeholder:`C`| 5104+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5105 5106+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5107|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will always overflow; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 5108+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5109 5110+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5111|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' size argument is too large; destination buffer has size` |nbsp| :placeholder:`B`:diagtext:`, but size argument is` |nbsp| :placeholder:`C`| 5112+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5113 5114 5115-Wfour-char-constants 5116--------------------- 5117**Diagnostic text:** 5118 5119+-------------------------------------------------------------------------+ 5120|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 5121+-------------------------------------------------------------------------+ 5122 5123 5124-Wframe-address 5125--------------- 5126**Diagnostic text:** 5127 5128+---------------------------------------------------------------------------------------------------------------+ 5129|:warning:`warning:` |nbsp| :diagtext:`calling '`:placeholder:`A`:diagtext:`' with a nonzero argument is unsafe`| 5130+---------------------------------------------------------------------------------------------------------------+ 5131 5132 5133-Wframe-larger-than= 5134-------------------- 5135This diagnostic is enabled by default. 5136 5137**Diagnostic text:** 5138 5139The text of this diagnostic is not controlled by Clang. 5140 5141+--------------------------------------------------------------------------------------------------------------------------------------+ 5142|:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`| 5143+--------------------------------------------------------------------------------------------------------------------------------------+ 5144 5145 5146-Wframework-include-private-from-public 5147--------------------------------------- 5148This diagnostic is enabled by default. 5149 5150**Diagnostic text:** 5151 5152+-------------------------------------------------------------------------------------------------------------------------------+ 5153|:warning:`warning:` |nbsp| :diagtext:`public framework header includes private framework header '`:placeholder:`A`:diagtext:`'`| 5154+-------------------------------------------------------------------------------------------------------------------------------+ 5155 5156 5157-Wfunction-def-in-objc-container 5158-------------------------------- 5159This diagnostic is enabled by default. 5160 5161**Diagnostic text:** 5162 5163+--------------------------------------------------------------------------------------------------------+ 5164|:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`| 5165+--------------------------------------------------------------------------------------------------------+ 5166 5167 5168-Wfunction-multiversion 5169----------------------- 5170This diagnostic is enabled by default. 5171 5172**Diagnostic text:** 5173 5174+-------------------------------------------------------------------------------------+ 5175|:warning:`warning:` |nbsp| :diagtext:`body of cpu\_dispatch function will be ignored`| 5176+-------------------------------------------------------------------------------------+ 5177 5178+---------------------------------------------------------------------------------------------+ 5179|:warning:`warning:` |nbsp| :diagtext:`CPU list contains duplicate entries; attribute ignored`| 5180+---------------------------------------------------------------------------------------------+ 5181 5182 5183-Wfuture-compat 5184--------------- 5185This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 5186 5187-Wgcc-compat 5188------------ 5189Some of the diagnostics controlled by this flag are enabled by default. 5190 5191**Diagnostic text:** 5192 5193+--------------------------------------------------------------------------+ 5194|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 5195+--------------------------------------------------------------------------+ 5196 5197+------------------------------------------------------------------------+ 5198|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 5199+------------------------------------------------------------------------+ 5200 5201+-----------------------------------------------------------------------------------------------+ 5202|:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`| 5203+-----------------------------------------------------------------------------------------------+ 5204 5205+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5206|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`| 5207+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5208 5209+---------------------------------------------------------------------------------------+ 5210|:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`| 5211+---------------------------------------------------------------------------------------+ 5212 5213+----------------------------------------------------------------------------------------------------------------------------------------+ 5214|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`| 5215+----------------------------------------------------------------------------------------------------------------------------------------+ 5216 5217+-----------------------------------------------------------------------------------------------------------------+ 5218|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`| 5219+-----------------------------------------------------------------------------------------------------------------+ 5220 5221+------------------------------------------------------------------------------------------------------------------------------------------+ 5222|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute to be written on a type`| 5223+------------------------------------------------------------------------------------------------------------------------------------------+ 5224 5225+-------------------------------------------------------------------------------------------------------------------+ 5226|:warning:`warning:` |nbsp| :diagtext:`GCC does not allow variable declarations in for loop initializers before C99`| 5227+-------------------------------------------------------------------------------------------------------------------+ 5228 5229+----------------------------------------------------------------------------------------------------------------------------------+ 5230|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`| 5231+----------------------------------------------------------------------------------------------------------------------------------+ 5232 5233 5234-Wglobal-constructors 5235--------------------- 5236**Diagnostic text:** 5237 5238+--------------------------------------------------------------------------------+ 5239|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`| 5240+--------------------------------------------------------------------------------+ 5241 5242+-------------------------------------------------------------------------------+ 5243|:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`| 5244+-------------------------------------------------------------------------------+ 5245 5246 5247-Wglobal-isel 5248------------- 5249This diagnostic is enabled by default. 5250 5251**Diagnostic text:** 5252 5253+------------------------------------------------------------------------------------------------------------------------------+ 5254|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support for the '`:placeholder:`A`:diagtext:`' architecture is incomplete`| 5255+------------------------------------------------------------------------------------------------------------------------------+ 5256 5257+----------------------------------------------------------------------------------------------------------------------------------+ 5258|:warning:`warning:` |nbsp| :diagtext:`-fglobal-isel support is incomplete for this architecture at the current optimization level`| 5259+----------------------------------------------------------------------------------------------------------------------------------+ 5260 5261 5262-Wgnu 5263----- 5264Some of the diagnostics controlled by this flag are enabled by default. 5265 5266Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_. 5267 5268 5269-Wgnu-alignof-expression 5270------------------------ 5271This diagnostic is enabled by default. 5272 5273**Diagnostic text:** 5274 5275+----------------------------------------------------------------------------------------------------------+ 5276|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`| 5277+----------------------------------------------------------------------------------------------------------+ 5278 5279 5280-Wgnu-anonymous-struct 5281---------------------- 5282**Diagnostic text:** 5283 5284+----------------------------------------------------------------------------+ 5285|:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`| 5286+----------------------------------------------------------------------------+ 5287 5288 5289-Wgnu-array-member-paren-init 5290----------------------------- 5291This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error. 5292 5293**Diagnostic text:** 5294 5295+----------------------------------------------------------------------------------------------------+ 5296|:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`| 5297+----------------------------------------------------------------------------------------------------+ 5298 5299 5300-Wgnu-auto-type 5301--------------- 5302**Diagnostic text:** 5303 5304+--------------------------------------------------------------------------+ 5305|:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`| 5306+--------------------------------------------------------------------------+ 5307 5308 5309-Wgnu-binary-literal 5310-------------------- 5311**Diagnostic text:** 5312 5313+----------------------------------------------------------------------------------+ 5314|:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`| 5315+----------------------------------------------------------------------------------+ 5316 5317 5318-Wgnu-case-range 5319---------------- 5320**Diagnostic text:** 5321 5322+----------------------------------------------------------------------+ 5323|:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`| 5324+----------------------------------------------------------------------+ 5325 5326 5327-Wgnu-complex-integer 5328--------------------- 5329**Diagnostic text:** 5330 5331+--------------------------------------------------------------------------------+ 5332|:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`| 5333+--------------------------------------------------------------------------------+ 5334 5335 5336-Wgnu-compound-literal-initializer 5337---------------------------------- 5338**Diagnostic text:** 5339 5340+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5341|:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`| 5342+--------------------------------------------------------------------------------------------------------------------------------------------------+ 5343 5344 5345-Wgnu-conditional-omitted-operand 5346--------------------------------- 5347**Diagnostic text:** 5348 5349+--------------------------------------------------------------------------------------------------------------+ 5350|:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`| 5351+--------------------------------------------------------------------------------------------------------------+ 5352 5353 5354-Wgnu-designator 5355---------------- 5356Some of the diagnostics controlled by this flag are enabled by default. 5357 5358**Diagnostic text:** 5359 5360+-----------------------------------------------------------------------+ 5361|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 5362+-----------------------------------------------------------------------+ 5363 5364+-------------------------------------------------------------------------------------+ 5365|:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`| 5366+-------------------------------------------------------------------------------------+ 5367 5368+--------------------------------------------------------------------------------------+ 5369|:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`| 5370+--------------------------------------------------------------------------------------+ 5371 5372 5373-Wgnu-empty-initializer 5374----------------------- 5375**Diagnostic text:** 5376 5377+-----------------------------------------------------------------------------+ 5378|:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`| 5379+-----------------------------------------------------------------------------+ 5380 5381 5382-Wgnu-empty-struct 5383------------------ 5384**Diagnostic text:** 5385 5386+----------------------------------------------------+--------------------+--------------------------------------+ 5387|:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`| 5388| ||:diagtext:`struct`|| | 5389| |+------------------+| | 5390| ||:diagtext:`union` || | 5391| |+------------------+| | 5392+----------------------------------------------------+--------------------+--------------------------------------+ 5393 5394+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 5395|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`| 5396| ||:diagtext:`struct` || | 5397| |+---------------------+| | 5398| ||:diagtext:`interface`|| | 5399| |+---------------------+| | 5400| ||:diagtext:`union` || | 5401| |+---------------------+| | 5402| ||:diagtext:`class` || | 5403| |+---------------------+| | 5404| ||:diagtext:`enum` || | 5405| |+---------------------+| | 5406+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ 5407 5408+---------------------------+--------------------+------------------------------------------------------------+ 5409|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`| 5410| ||:diagtext:`struct`|| | 5411| |+------------------+| | 5412| ||:diagtext:`union` || | 5413| |+------------------+| | 5414+---------------------------+--------------------+------------------------------------------------------------+ 5415 5416 5417-Wgnu-flexible-array-initializer 5418-------------------------------- 5419**Diagnostic text:** 5420 5421+---------------------------------------------------------------------------------------+ 5422|:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`| 5423+---------------------------------------------------------------------------------------+ 5424 5425 5426-Wgnu-flexible-array-union-member 5427--------------------------------- 5428**Diagnostic text:** 5429 5430+-------------------------------------------------------------------------------------------------------------------------------------+ 5431|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`| 5432+-------------------------------------------------------------------------------------------------------------------------------------+ 5433 5434 5435-Wgnu-folding-constant 5436---------------------- 5437**Diagnostic text:** 5438 5439+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 5440|:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`| 5441| ||:diagtext:`integer` || | 5442| |+--------------------+| | 5443| ||:diagtext:`integral`|| | 5444| |+--------------------+| | 5445+-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ 5446 5447+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5448|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`| 5449+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5450 5451+-----------------------------------------------------------------------------------------------------+ 5452|:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`| 5453+-----------------------------------------------------------------------------------------------------+ 5454 5455 5456-Wgnu-imaginary-constant 5457------------------------ 5458**Diagnostic text:** 5459 5460+------------------------------------------------------------------------------+ 5461|:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`| 5462+------------------------------------------------------------------------------+ 5463 5464 5465-Wgnu-include-next 5466------------------ 5467**Diagnostic text:** 5468 5469+-----------------------------------------------------------------------------+ 5470|:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`| 5471+-----------------------------------------------------------------------------+ 5472 5473 5474-Wgnu-inline-cpp-without-extern 5475------------------------------- 5476This diagnostic is enabled by default. 5477 5478**Diagnostic text:** 5479 5480+------------------------------------------------------------------------------------------------------------------------------------------------+ 5481|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10`| 5482+------------------------------------------------------------------------------------------------------------------------------------------------+ 5483 5484 5485-Wgnu-label-as-value 5486-------------------- 5487**Diagnostic text:** 5488 5489+----------------------------------------------------------------------------+ 5490|:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`| 5491+----------------------------------------------------------------------------+ 5492 5493+-------------------------------------------------------------------------+ 5494|:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`| 5495+-------------------------------------------------------------------------+ 5496 5497 5498-Wgnu-redeclared-enum 5499--------------------- 5500**Diagnostic text:** 5501 5502+------------------------------------------------------------------------------------------------------------------------------------------+ 5503|:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 5504+------------------------------------------------------------------------------------------------------------------------------------------+ 5505 5506 5507-Wgnu-statement-expression 5508-------------------------- 5509**Diagnostic text:** 5510 5511+--------------------------------------------------------------------------------+ 5512|:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`| 5513+--------------------------------------------------------------------------------+ 5514 5515 5516-Wgnu-static-float-init 5517----------------------- 5518This diagnostic is enabled by default. 5519 5520**Diagnostic text:** 5521 5522+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5523|:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| 5524+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5525 5526 5527-Wgnu-string-literal-operator-template 5528-------------------------------------- 5529This diagnostic is enabled by default. 5530 5531**Diagnostic text:** 5532 5533+--------------------------------------------------------------------------------------------+ 5534|:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`| 5535+--------------------------------------------------------------------------------------------+ 5536 5537 5538-Wgnu-union-cast 5539---------------- 5540**Diagnostic text:** 5541 5542+----------------------------------------------------------------------------+ 5543|:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`| 5544+----------------------------------------------------------------------------+ 5545 5546 5547-Wgnu-variable-sized-type-not-at-end 5548------------------------------------ 5549This diagnostic is enabled by default. 5550 5551**Diagnostic text:** 5552 5553+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5554|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`| 5555+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5556 5557 5558-Wgnu-zero-line-directive 5559------------------------- 5560**Diagnostic text:** 5561 5562+--------------------------------------------------------------------------------------------+ 5563|:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`| 5564+--------------------------------------------------------------------------------------------+ 5565 5566 5567-Wgnu-zero-variadic-macro-arguments 5568----------------------------------- 5569**Diagnostic text:** 5570 5571+---------------------------------------------------------------------------------------------------------------+ 5572|:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`| 5573+---------------------------------------------------------------------------------------------------------------+ 5574 5575+---------------------------------------------------------------------------------------------------+ 5576|:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`| 5577+---------------------------------------------------------------------------------------------------+ 5578 5579 5580-Wheader-guard 5581-------------- 5582This diagnostic is enabled by default. 5583 5584**Diagnostic text:** 5585 5586+---------------------------------------------------------------------------------------------------------------------------------------+ 5587|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`| 5588+---------------------------------------------------------------------------------------------------------------------------------------+ 5589 5590 5591-Wheader-hygiene 5592---------------- 5593**Diagnostic text:** 5594 5595+--------------------------------------------------------------------------------------------+ 5596|:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`| 5597+--------------------------------------------------------------------------------------------+ 5598 5599 5600-Whip-only 5601---------- 5602This diagnostic is enabled by default. 5603 5604**Diagnostic text:** 5605 5606+-------------------------------------------------------------------------------------------------------------------+ 5607|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is ignored since it is only supported for HIP`| 5608+-------------------------------------------------------------------------------------------------------------------+ 5609 5610 5611-Widiomatic-parentheses 5612----------------------- 5613**Diagnostic text:** 5614 5615+-----------------------------------------------------------------------------------------------------------+ 5616|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 5617+-----------------------------------------------------------------------------------------------------------+ 5618 5619 5620-Wignored-attributes 5621-------------------- 5622This diagnostic is enabled by default. 5623 5624**Diagnostic text:** 5625 5626+--------------------------------------------------------------------------------------------------+ 5627|:warning:`warning:` |nbsp| :diagtext:`'trivial\_abi' cannot be applied to` |nbsp| :placeholder:`A`| 5628+--------------------------------------------------------------------------------------------------+ 5629 5630+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5631|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`| 5632| ||:diagtext:`alias`|| | 5633| |+-----------------+| | 5634| ||:diagtext:`ifunc`|| | 5635| |+-----------------+| | 5636+---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5637 5638+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 5639|:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+| 5640| ||:diagtext:`alias`|| ||:diagtext:`aliasee` || 5641| |+-----------------+| |+--------------------+| 5642| ||:diagtext:`ifunc`|| ||:diagtext:`resolver`|| 5643| |+-----------------+| |+--------------------+| 5644+---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ 5645 5646+----------------------------------------------------------------------+------------------------+-------------------------------------+ 5647|:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`| 5648| ||:diagtext:`non-inline`|| | 5649| |+----------------------+| | 5650| ||:diagtext:`anonymous` || | 5651| |+----------------------+| | 5652+----------------------------------------------------------------------+------------------------+-------------------------------------+ 5653 5654+-----------------------------------------------------------------------------------------------------------------------+ 5655|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`| 5656+-----------------------------------------------------------------------------------------------------------------------+ 5657 5658+--------------------------------------------------------------------------------------------------------------------+ 5659|:warning:`warning:` |nbsp| :diagtext:`'cmse\_nonsecure\_entry' cannot be applied to functions with internal linkage`| 5660+--------------------------------------------------------------------------------------------------------------------+ 5661 5662+---------------------------------------------------------------------------------------------------------+ 5663|:warning:`warning:` |nbsp| :diagtext:`'dllexport' attribute ignored on explicit instantiation definition`| 5664+---------------------------------------------------------------------------------------------------------+ 5665 5666+--------------------------------------------------------------------------------------------------------------------------------+ 5667|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`| 5668+--------------------------------------------------------------------------------------------------------------------------------+ 5669 5670+--------------------------------------------------------------------------------+ 5671|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`| 5672+--------------------------------------------------------------------------------+ 5673 5674+--------------------------------------------------------------------------------------------------------------------------+ 5675|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`| 5676+--------------------------------------------------------------------------------------------------------------------------+ 5677 5678+---------------------------------------------------------------------------------------------------+ 5679|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`| 5680+---------------------------------------------------------------------------------------------------+ 5681 5682+-------------------------------------------------------------------------------------------------------------------+ 5683|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`| 5684+-------------------------------------------------------------------------------------------------------------------+ 5685 5686+------------------------------------------------------------------------------------------------------------------------------------------------+ 5687|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`| 5688+------------------------------------------------------------------------------------------------------------------------------------------------+ 5689 5690+--------------------------------------------------------------------------------------------------------+ 5691|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`| 5692+--------------------------------------------------------------------------------------------------------+ 5693 5694+-----------------------------------------------------------------------------------------------------+ 5695|:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`| 5696+-----------------------------------------------------------------------------------------------------+ 5697 5698+--------------------------------------------------------------------------------------------------+ 5699|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`| 5700+--------------------------------------------------------------------------------------------------+ 5701 5702+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5703|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`| 5704+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5705 5706+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 5707|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`| 5708| || || | 5709| |+----------------------------+| | 5710| || |nbsp| :diagtext:`constant`|| | 5711| |+----------------------------+| | 5712+----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ 5713 5714+------------------------------------------------------------------------------------+ 5715|:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`| 5716+------------------------------------------------------------------------------------+ 5717 5718+------------------------------------------------------------------------------------------------------------------------+ 5719|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`| 5720+------------------------------------------------------------------------------------------------------------------------+ 5721 5722+--------------------------------------------------------------------------------------------------------------------------------------+ 5723|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`| 5724+--------------------------------------------------------------------------------------------------------------------------------------+ 5725 5726+------------------------------------------------------------------------------------+ 5727|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`| 5728+------------------------------------------------------------------------------------+ 5729 5730+-----------------------------------------------------------------------------------------------+-----------------------+ 5731|:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+| 5732| ||:diagtext:`functions`|| 5733| |+---------------------+| 5734| ||:diagtext:`blocks` || 5735| |+---------------------+| 5736+-----------------------------------------------------------------------------------------------+-----------------------+ 5737 5738+------------------------------------------------------------------------------------------------------------------------+ 5739|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`| 5740+------------------------------------------------------------------------------------------------------------------------+ 5741 5742+---------------------------------------------------------------------------------+ 5743|:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`| 5744+---------------------------------------------------------------------------------+ 5745 5746+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 5747|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`| 5748| ||:diagtext:`functions` || | 5749| |+------------------------------+| | 5750| ||:diagtext:`Objective-C method`|| | 5751| |+------------------------------+| | 5752+------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ 5753 5754+----------------------------------------------------------------------------------------------------+ 5755|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`| 5756+----------------------------------------------------------------------------------------------------+ 5757 5758+------------------------------------------------------------------------------------------------------------------------------+ 5759|:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`| 5760+------------------------------------------------------------------------------------------------------------------------------+ 5761 5762+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 5763|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| 5764| ||:diagtext:`functions` || 5765| |+-------------------------------------------------+| 5766| ||:diagtext:`unions` || 5767| |+-------------------------------------------------+| 5768| ||:diagtext:`variables and functions` || 5769| |+-------------------------------------------------+| 5770| ||:diagtext:`functions and methods` || 5771| |+-------------------------------------------------+| 5772| ||:diagtext:`functions, methods and blocks` || 5773| |+-------------------------------------------------+| 5774| ||:diagtext:`functions, methods, and parameters` || 5775| |+-------------------------------------------------+| 5776| ||:diagtext:`variables` || 5777| |+-------------------------------------------------+| 5778| ||:diagtext:`variables and fields` || 5779| |+-------------------------------------------------+| 5780| ||:diagtext:`variables, data members and tag types`|| 5781| |+-------------------------------------------------+| 5782| ||:diagtext:`types and namespaces` || 5783| |+-------------------------------------------------+| 5784| ||:diagtext:`variables, functions and classes` || 5785| |+-------------------------------------------------+| 5786| ||:diagtext:`kernel functions` || 5787| |+-------------------------------------------------+| 5788| ||:diagtext:`non-K&R-style functions` || 5789| |+-------------------------------------------------+| 5790+------------------------------------------------------------------------------------------------+---------------------------------------------------+ 5791 5792+----------------------------------------------------------------------------------------------------------------+ 5793|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| :placeholder:`B`| 5794+----------------------------------------------------------------------------------------------------------------+ 5795 5796+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5797|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`| 5798+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 5799 5800+----------------------------------------------------------------------------------------------------------+---------------------------------------+ 5801|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention is not supported` |nbsp| |+-------------------------------------+| 5802| ||:diagtext:`for this target` || 5803| |+-------------------------------------+| 5804| ||:diagtext:`on variadic function` || 5805| |+-------------------------------------+| 5806| ||:diagtext:`on constructor/destructor`|| 5807| |+-------------------------------------+| 5808| ||:diagtext:`on builtin function` || 5809| |+-------------------------------------+| 5810+----------------------------------------------------------------------------------------------------------+---------------------------------------+ 5811 5812+-------------------------------------------------------------------------------------------------------------------------------------------+ 5813|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`| 5814+-------------------------------------------------------------------------------------------------------------------------------------------+ 5815 5816+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5817|:warning:`warning:` |nbsp| :diagtext:`ignoring \_\_declspec(allocator) because the function return type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a pointer or reference type`| 5818+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5819 5820+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5821|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`| 5822| ||:diagtext:`class` || | 5823| |+---------------------+| | 5824| ||:diagtext:`struct` || | 5825| |+---------------------+| | 5826| ||:diagtext:`interface`|| | 5827| |+---------------------+| | 5828| ||:diagtext:`union` || | 5829| |+---------------------+| | 5830| ||:diagtext:`enum` || | 5831| |+---------------------+| | 5832+------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ 5833 5834+--------------------------------------------------------------------------------------------+ 5835|:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`| 5836+--------------------------------------------------------------------------------------------+ 5837 5838+----------------------------------------------------------------------------------------------------------------------------------------------+ 5839|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`| 5840+----------------------------------------------------------------------------------------------------------------------------------------------+ 5841 5842+----------------------------------------------------------------------------------------------------------------------------------------+ 5843|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`| 5844+----------------------------------------------------------------------------------------------------------------------------------------+ 5845 5846+--------------------------------------------------------------------------------------------------------------+ 5847|:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`| 5848+--------------------------------------------------------------------------------------------------------------+ 5849 5850+------------------------------------------------------------------------------------------------+ 5851|:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`| 5852+------------------------------------------------------------------------------------------------+ 5853 5854+-------------------------------------------------------------------------------------------------------------------------+ 5855|:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`| 5856+-------------------------------------------------------------------------------------------------------------------------+ 5857 5858+---------------------------------------------------------------------------+------------------------------------+ 5859|:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+| 5860| ||:diagtext:`primary template` || 5861| |+----------------------------------+| 5862| ||:diagtext:`partial specialization`|| 5863| |+----------------------------------+| 5864+---------------------------------------------------------------------------+------------------------------------+ 5865 5866+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5867|:warning:`warning:` |nbsp| :diagtext:`'objc\_externally\_retained' can only be applied to local variables` |nbsp| |+---------------------------------+| 5868| ||:diagtext:`of retainable type` || 5869| |+---------------------------------+| 5870| ||:diagtext:`with strong ownership`|| 5871| |+---------------------------------+| 5872+------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 5873 5874+--------------------------------------------------------------------------------------------------------------+ 5875|:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`| 5876+--------------------------------------------------------------------------------------------------------------+ 5877 5878+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+ 5879|:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| 5880| ||:diagtext:`MIPS` || ||:diagtext:`no parameters` || 5881| |+------------------+| |+--------------------------------+| 5882| ||:diagtext:`MSP430`|| ||:diagtext:`a 'void' return type`|| 5883| |+------------------+| |+--------------------------------+| 5884| ||:diagtext:`RISC-V`|| | | 5885| |+------------------+| | | 5886+---------------------------+--------------------+-------------------------------------------------------------------------------------+----------------------------------+ 5887 5888+--------------------------------------------------------------------------------------------+ 5889|:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`| 5890+--------------------------------------------------------------------------------------------+ 5891 5892+------------------------------------------------------------------------------------------------------------------------------+ 5893|:warning:`warning:` |nbsp| :diagtext:`'mig\_server\_routine' attribute only applies to routines that return a kern\_return\_t`| 5894+------------------------------------------------------------------------------------------------------------------------------+ 5895 5896+---------------------------------------------------------------------------------------+ 5897|:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`| 5898+---------------------------------------------------------------------------------------+ 5899 5900+-------------------------------------------------------------------------------------------------------------------+ 5901|:warning:`warning:` |nbsp| :diagtext:`'nocf\_check' attribute ignored; use -fcf-protection to enable the attribute`| 5902+-------------------------------------------------------------------------------------------------------------------+ 5903 5904+---------------------------------------------------------------------------------------------+ 5905|:warning:`warning:` |nbsp| :diagtext:`'noderef' can only be used on an array or pointer type`| 5906+---------------------------------------------------------------------------------------------+ 5907 5908+--------------------------------------------------------------------------------------------------------------------+ 5909|:warning:`warning:` |nbsp| :diagtext:`'nothrow' attribute conflicts with exception specification; attribute ignored`| 5910+--------------------------------------------------------------------------------------------------------------------+ 5911 5912+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5913|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`parameters`| 5914| ||:diagtext:`Objective-C object` || | 5915| |+-------------------------------------------------+| | 5916| ||:diagtext:`pointer` || | 5917| |+-------------------------------------------------+| | 5918| ||:diagtext:`pointer-to-CF-pointer` || | 5919| |+-------------------------------------------------+| | 5920| ||:diagtext:`pointer/reference-to-OSObject-pointer`|| | 5921| |+-------------------------------------------------+| | 5922+------------------------------------------------------------------------------------------------+---------------------------------------------------+------------------------------+ 5923 5924+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5925|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+| 5926| ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` || 5927| |+----------------------+| |+------------------------------------+| 5928| ||:diagtext:`methods` || ||:diagtext:`a pointer` || 5929| |+----------------------+| |+------------------------------------+| 5930| ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`|| 5931| |+----------------------+| |+------------------------------------+| 5932+------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ 5933 5934+----------------------------------------------------------------------------------------------------------------------+ 5935|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute isn't implemented by this Objective-C runtime`| 5936+----------------------------------------------------------------------------------------------------------------------+ 5937 5938+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5939|:warning:`warning:` |nbsp| :diagtext:`direct attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored (not implemented by this Objective-C runtime)`| 5940+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5941 5942+--------------------------------------------------------------------------------------------------------------------------------------------+ 5943|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`| 5944+--------------------------------------------------------------------------------------------------------------------------------------------+ 5945 5946+---------------------------------------------------------------------------------------------------------------------------+ 5947|:warning:`warning:` |nbsp| :diagtext:`'require\_constant\_initialization' attribute added after initialization of variable`| 5948+---------------------------------------------------------------------------------------------------------------------------+ 5949 5950+----------------------------------------------------------------------------+ 5951|:warning:`warning:` |nbsp| :diagtext:`repeated RISC-V 'interrupt' attribute`| 5952+----------------------------------------------------------------------------+ 5953 5954+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5955|:warning:`warning:` |nbsp| :diagtext:`template parameter of a function template with the 'sycl\_kernel' attribute cannot be a non-type template parameter`| 5956+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 5957 5958+-------------------------------------------------------------------------------------------------------------------+ 5959|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a single parameter`| 5960+-------------------------------------------------------------------------------------------------------------------+ 5961 5962+-----------------------------------------------------------------------------------------------------------------------------------------+ 5963|:warning:`warning:` |nbsp| :diagtext:`'sycl\_kernel' attribute only applies to a function template with at least two template parameters`| 5964+-----------------------------------------------------------------------------------------------------------------------------------------+ 5965 5966+---------------------------------------------------------------------------------------------------------------------+ 5967|:warning:`warning:` |nbsp| :diagtext:`function template with 'sycl\_kernel' attribute must have a 'void' return type`| 5968+---------------------------------------------------------------------------------------------------------------------+ 5969 5970+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5971|:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`| 5972| ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| | 5973| |+---------------------+| |+---------------------+| | 5974| ||:diagtext:`size` || ||:diagtext:`size` || | 5975| |+---------------------+| |+---------------------+| | 5976+---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ 5977 5978+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5979|:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`| 5980| ||:diagtext:`floating point`|| | 5981| |+--------------------------+| | 5982| ||:diagtext:`vector` || | 5983| |+--------------------------+| | 5984+---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ 5985 5986+--------------------------------------------------------------------------------------------------------------------------------+ 5987|:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`| 5988+--------------------------------------------------------------------------------------------------------------------------------+ 5989 5990+-----------------------------------------------------------------------------------------------------------------------------------------+ 5991|:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`| 5992+-----------------------------------------------------------------------------------------------------------------------------------------+ 5993 5994+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 5995|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`| 5996| ||:diagtext:`function` || | 5997| |+-----------------------------------------------+| | 5998| ||:diagtext:`pointer` || | 5999| |+-----------------------------------------------+| | 6000| ||:diagtext:`Objective-C object or block pointer`|| | 6001| |+-----------------------------------------------+| | 6002+---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ 6003 6004+-------------------------------------------------------------------------------------------------------------------------+ 6005|:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`| 6006+-------------------------------------------------------------------------------------------------------------------------+ 6007 6008+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 6009|:warning:`warning:` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the 'target' attribute string; 'target' attribute ignored`| 6010| ||:diagtext:`unsupported`||| || | 6011| |+-----------------------+|+--------------------------------+| | 6012| ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| | 6013| |+-----------------------+|+--------------------------------+| | 6014+---------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------------------------------------+ 6015 6016+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6017|:warning:`warning:` |nbsp| :diagtext:`'\_\_clang\_\_' is a predefined macro name, not an attribute scope specifier; did you mean '\_Clang' instead?`| 6018+----------------------------------------------------------------------------------------------------------------------------------------------------+ 6019 6020 6021-Wignored-optimization-argument 6022------------------------------- 6023This diagnostic is enabled by default. 6024 6025**Diagnostic text:** 6026 6027+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6028|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 6029+--------------------------------------------------------------------------------------------------------------------------------------------------+ 6030 6031+--------------------------------------------------------------------------------------------------------+ 6032|:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`| 6033+--------------------------------------------------------------------------------------------------------+ 6034 6035 6036-Wignored-pragma-intrinsic 6037-------------------------- 6038This diagnostic is enabled by default. 6039 6040**Diagnostic text:** 6041 6042+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 6043|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+| 6044| || || 6045| |+----------------------------------------------------------------------------+| 6046| ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`|| 6047| |+----------------------------------------------------------------------------+| 6048+------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ 6049 6050 6051-Wignored-pragma-optimize 6052------------------------- 6053This diagnostic is enabled by default. 6054 6055**Diagnostic text:** 6056 6057+--------------------------------------------------------------------------+ 6058|:warning:`warning:` |nbsp| :diagtext:`'#pragma optimize' is not supported`| 6059+--------------------------------------------------------------------------+ 6060 6061 6062-Wignored-pragmas 6063----------------- 6064This diagnostic is enabled by default. 6065 6066Also controls `-Wignored-pragma-intrinsic`_, `-Wignored-pragma-optimize`_. 6067 6068**Diagnostic text:** 6069 6070+------------------------------------------------------------------------------+---------------------------+-----------------------+ 6071|:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 6072| ||:diagtext:`align` || | 6073| |+-------------------------+| | 6074| ||:diagtext:`options align`|| | 6075| |+-------------------------+| | 6076+------------------------------------------------------------------------------+---------------------------+-----------------------+ 6077 6078+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 6079|:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| 6080| ||:diagtext:`align` || | 6081| |+-------------------------+| | 6082| ||:diagtext:`options align`|| | 6083| |+-------------------------+| | 6084+-----------------------------------------------------------------------------------+---------------------------+-----------------------+ 6085 6086+-----------------------------------------------------------------------------------------------------------+ 6087|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`| 6088+-----------------------------------------------------------------------------------------------------------+ 6089 6090+----------------------------------------------------------------------------------------------------+ 6091|:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`| 6092+----------------------------------------------------------------------------------------------------+ 6093 6094+-------------------------------------------------------------------------------------------------------+ 6095|:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`| 6096+-------------------------------------------------------------------------------------------------------+ 6097 6098+----------------------------------------------------------------------------------------------+ 6099|:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`| 6100+----------------------------------------------------------------------------------------------+ 6101 6102+------------------------------------------------------------------------------------+ 6103|:warning:`warning:` |nbsp| :diagtext:`unknown module '`:placeholder:`A`:diagtext:`'`| 6104+------------------------------------------------------------------------------------+ 6105 6106+------------------------------------------------------------------------------------------------------------------------+ 6107|:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6108+------------------------------------------------------------------------------------------------------------------------+ 6109 6110+--------------------------------------------------------------------------------------------------------------+ 6111|:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 6112+--------------------------------------------------------------------------------------------------------------+ 6113 6114+---------------------------------------------------------------------------------------------------------------------+ 6115|:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 6116+---------------------------------------------------------------------------------------------------------------------+ 6117 6118+----------------------------------------------------------------------------------------------------+ 6119|:warning:`warning:` |nbsp| :diagtext:`expected ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 6120+----------------------------------------------------------------------------------------------------+ 6121 6122+---------------------------------------------------------------------------------------------------------------------+ 6123|:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6124+---------------------------------------------------------------------------------------------------------------------+ 6125 6126+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6127|:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6128+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6129 6130+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6131|:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`| 6132+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6133 6134+-----------------------------------------------------------------------------------------------------------------+ 6135|:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 6136+-----------------------------------------------------------------------------------------------------------------+ 6137 6138+------------------------------------------------------------------------------------------------------------------------+ 6139|:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 6140+------------------------------------------------------------------------------------------------------------------------+ 6141 6142+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 6143|:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`| 6144| ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| | 6145| |+-------------------------------------------------+| | 6146| ||:diagtext:`'disable'` || | 6147| |+-------------------------------------------------+| | 6148+-------------------------------------------------------+---------------------------------------------------+------------------------------+ 6149 6150+-----------------------------------------------------------------------------------------------------------+ 6151|:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| 6152+-----------------------------------------------------------------------------------------------------------+ 6153 6154+-----------------------------------------------------------------------------------------------------------------+ 6155|:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 6156+-----------------------------------------------------------------------------------------------------------------+ 6157 6158+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6159|:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6160+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6161 6162+------------------------------------------------------------------------------------------------------------------------------------------------+ 6163|:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6164+------------------------------------------------------------------------------------------------------------------------------------------------+ 6165 6166+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6167|:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6168+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6169 6170+--------------------------------------------------------------------------------------------------------------------------+ 6171|:warning:`warning:` |nbsp| :diagtext:`expected string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| 6172+--------------------------------------------------------------------------------------------------------------------------+ 6173 6174+---------------------------------------------------------------------------------------------------------------------+ 6175|:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6176+---------------------------------------------------------------------------------------------------------------------+ 6177 6178+----------------------------------------------------------------------------------------------------------+ 6179|:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`| 6180+----------------------------------------------------------------------------------------------------------+ 6181 6182+-------------------------------------------------------------------------------------------------------------------+ 6183|:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`| 6184+-------------------------------------------------------------------------------------------------------------------+ 6185 6186+-----------------------------------------------------------------------------------------------------------------+ 6187|:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6188+-----------------------------------------------------------------------------------------------------------------+ 6189 6190+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 6191|:warning:`warning:` |nbsp| :diagtext:`unexpected argument '`:placeholder:`A`:diagtext:`' to '#pragma` |nbsp| :placeholder:`B`:diagtext:`'`|+------------------------------------------------+| 6192| || || 6193| |+------------------------------------------------+| 6194| ||+----------------------------------------------+|| 6195| |||:diagtext:`; expected` |nbsp| :placeholder:`D`||| 6196| ||+----------------------------------------------+|| 6197| |+------------------------------------------------+| 6198+------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 6199 6200+------------------------------------------------------------------------------------------------------------------------------------------------+ 6201|:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6202+------------------------------------------------------------------------------------------------------------------------------------------------+ 6203 6204+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 6205|:warning:`warning:` |nbsp| :diagtext:`missing argument to '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|+------------------------------------------------+| 6206| || || 6207| |+------------------------------------------------+| 6208| ||+----------------------------------------------+|| 6209| |||:diagtext:`; expected` |nbsp| :placeholder:`C`||| 6210| ||+----------------------------------------------+|| 6211| |+------------------------------------------------+| 6212+--------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 6213 6214+----------------------------------------------------------------------------------------------+ 6215|:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`| 6216+----------------------------------------------------------------------------------------------+ 6217 6218+--------------------------------------------------------------------------------------------------+ 6219|:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`| 6220+--------------------------------------------------------------------------------------------------+ 6221 6222+---------------------------------------------------------------------------------------------+ 6223|:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`| 6224+---------------------------------------------------------------------------------------------+ 6225 6226+--------------------------------------------------------------------------------------------------------+ 6227|:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`| 6228+--------------------------------------------------------------------------------------------------------+ 6229 6230+-------------------------------------------------------------------------------------------------+ 6231|:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`| 6232+-------------------------------------------------------------------------------------------------+ 6233 6234+----------------------------------------------------------------------------------------------------------------------------+ 6235|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`| 6236+----------------------------------------------------------------------------------------------------------------------------+ 6237 6238+------------------------------------------------------------------------------------------------------------------------------+ 6239|:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`| 6240+------------------------------------------------------------------------------------------------------------------------------+ 6241 6242+---------------------------------------------------------------------------------------------------------------------+ 6243|:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 6244+---------------------------------------------------------------------------------------------------------------------+ 6245 6246+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6247|:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| 6248+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6249 6250+-------------------------------------------------------------------------------------------------------------------------+ 6251|:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| 6252+-------------------------------------------------------------------------------------------------------------------------+ 6253 6254+-----------------------------------------------------------------------------------------------+ 6255|:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`| 6256+-----------------------------------------------------------------------------------------------+ 6257 6258+------------------------------------------------------------------------------------------+ 6259|:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`| 6260+------------------------------------------------------------------------------------------+ 6261 6262+----------------------------------------------------------------------------------------------------------------------------------------------+ 6263|:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`| 6264+----------------------------------------------------------------------------------------------------------------------------------------------+ 6265 6266 6267-Wignored-qualifiers 6268-------------------- 6269Some of the diagnostics controlled by this flag are enabled by default. 6270 6271**Diagnostic text:** 6272 6273+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 6274|:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`| 6275| ||:diagtext:`unused` || | 6276| |+----------------------------------+| | 6277| ||:diagtext:`\_\_unsafe\_unretained`|| | 6278| |+----------------------------------+| | 6279| ||:diagtext:`\_\_strong` || | 6280| |+----------------------------------+| | 6281| ||:diagtext:`\_\_weak` || | 6282| |+----------------------------------+| | 6283| ||:diagtext:`\_\_autoreleasing` || | 6284| |+----------------------------------+| | 6285+--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ 6286 6287+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6288|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 6289+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6290 6291+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 6292|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+----------------+| |nbsp| :diagtext:`no effect`| 6293| || || ||:diagtext:`has` || | 6294| |+-------------+| |+----------------+| | 6295| ||:diagtext:`s`|| ||:diagtext:`have`|| | 6296| |+-------------+| |+----------------+| | 6297+------------------------------------------------------------------------------------+---------------+------------------------------------------+------------------+-----------------------------+ 6298 6299+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 6300|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 6301+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 6302 6303+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 6304|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| 6305+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 6306 6307 6308-Wimplicit 6309---------- 6310Some of the diagnostics controlled by this flag are enabled by default. 6311 6312Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_. 6313 6314 6315-Wimplicit-atomic-properties 6316---------------------------- 6317**Diagnostic text:** 6318 6319+-----------------------------------------------------------------------------------------------------+ 6320|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`| 6321+-----------------------------------------------------------------------------------------------------+ 6322 6323+----------------------------------------------------------------------------+ 6324|:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`| 6325+----------------------------------------------------------------------------+ 6326 6327 6328-Wimplicit-const-int-float-conversion 6329------------------------------------- 6330This diagnostic is enabled by default. 6331 6332**Diagnostic text:** 6333 6334+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6335|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 6336+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6337 6338 6339-Wimplicit-conversion-floating-point-to-bool 6340-------------------------------------------- 6341This diagnostic is enabled by default. 6342 6343**Diagnostic text:** 6344 6345+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6346|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 6347+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6348 6349 6350-Wimplicit-exception-spec-mismatch 6351---------------------------------- 6352This diagnostic is enabled by default. 6353 6354**Diagnostic text:** 6355 6356+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 6357|:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`| 6358| ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| | 6359| |+--------------------+| |+--------------------+| | 6360| ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| | 6361| |+--------------------+| |+--------------------+| | 6362+-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ 6363 6364 6365-Wimplicit-fallthrough 6366---------------------- 6367Also controls `-Wimplicit-fallthrough-per-function`_. 6368 6369**Diagnostic text:** 6370 6371+---------------------------------------------------------------------------------+ 6372|:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`| 6373+---------------------------------------------------------------------------------+ 6374 6375+-------------------------------------------------------------------------------------+ 6376|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`| 6377+-------------------------------------------------------------------------------------+ 6378 6379 6380-Wimplicit-fallthrough-per-function 6381----------------------------------- 6382**Diagnostic text:** 6383 6384+------------------------------------------------------------------------------------------------------------------+ 6385|:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`| 6386+------------------------------------------------------------------------------------------------------------------+ 6387 6388 6389-Wimplicit-fixed-point-conversion 6390--------------------------------- 6391This diagnostic is enabled by default. 6392 6393**Diagnostic text:** 6394 6395+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6396|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot fit within the range of values for` |nbsp| :placeholder:`B`| 6397+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6398 6399 6400-Wimplicit-float-conversion 6401--------------------------- 6402Some of the diagnostics controlled by this flag are enabled by default. 6403 6404Also controls `-Wimplicit-int-float-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_. 6405 6406**Diagnostic text:** 6407 6408+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6409|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 6410+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6411 6412+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6413|:warning:`warning:` |nbsp| :diagtext:`implicit conversion when assigning computation result loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 6414+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6415 6416 6417-Wimplicit-function-declaration 6418------------------------------- 6419Some of the diagnostics controlled by this flag are enabled by default. 6420 6421**Diagnostic text:** 6422 6423+------------------------------------------------------------------------------------------------------------------------------------+ 6424|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in C99`| 6425+------------------------------------------------------------------------------------------------------------------------------------+ 6426 6427+---------------------------------------------------------------------------------------------------------------------------------------------+ 6428|:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`| 6429+---------------------------------------------------------------------------------------------------------------------------------------------+ 6430 6431+---------------------------------------------------------------------------------+ 6432|:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`| 6433+---------------------------------------------------------------------------------+ 6434 6435+-----------------------------------------------------------------------------------------------+ 6436|:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`| 6437+-----------------------------------------------------------------------------------------------+ 6438 6439 6440-Wimplicit-int 6441-------------- 6442This diagnostic is enabled by default. 6443 6444**Diagnostic text:** 6445 6446+--------------------------------------------------------------------------------+ 6447|:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`| 6448+--------------------------------------------------------------------------------+ 6449 6450 6451-Wimplicit-int-conversion 6452------------------------- 6453Also controls `-Wobjc-signed-char-bool-implicit-int-conversion`_. 6454 6455**Diagnostic text:** 6456 6457+---------------------------------------------------------------------------------------------+ 6458|:warning:`warning:` |nbsp| :diagtext:`higher order bits are zeroes after implicit conversion`| 6459+---------------------------------------------------------------------------------------------+ 6460 6461+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 6462|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 6463+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 6464 6465 6466-Wimplicit-int-float-conversion 6467------------------------------- 6468Some of the diagnostics controlled by this flag are enabled by default. 6469 6470Also controls `-Wimplicit-const-int-float-conversion`_. 6471 6472**Diagnostic text:** 6473 6474+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6475|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may lose precision`| 6476+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6477 6478 6479-Wimplicit-retain-self 6480---------------------- 6481**Diagnostic text:** 6482 6483+---------------------------------------------------------------------------------------------------------------------------------------+ 6484|:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`| 6485+---------------------------------------------------------------------------------------------------------------------------------------+ 6486 6487 6488-Wimplicitly-unsigned-literal 6489----------------------------- 6490This diagnostic is enabled by default. 6491 6492**Diagnostic text:** 6493 6494+----------------------------------------------------------------------------------------------------------------------------------------+ 6495|:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`| 6496+----------------------------------------------------------------------------------------------------------------------------------------+ 6497 6498 6499-Wimport 6500-------- 6501This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6502 6503-Wimport-preprocessor-directive-pedantic 6504---------------------------------------- 6505**Diagnostic text:** 6506 6507+----------------------------------------------------------------------+ 6508|:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`| 6509+----------------------------------------------------------------------+ 6510 6511 6512-Winaccessible-base 6513------------------- 6514This diagnostic is enabled by default. 6515 6516**Diagnostic text:** 6517 6518+-----------------------------------------------------------------------------------------------------------------------------------------------+ 6519|:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`| 6520+-----------------------------------------------------------------------------------------------------------------------------------------------+ 6521 6522 6523-Winclude-next-absolute-path 6524---------------------------- 6525This diagnostic is enabled by default. 6526 6527**Diagnostic text:** 6528 6529+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6530|:warning:`warning:` |nbsp| :diagtext:`#include\_next in file found relative to primary source file or found by absolute path; will search from start of include path`| 6531+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6532 6533 6534-Winclude-next-outside-header 6535----------------------------- 6536This diagnostic is enabled by default. 6537 6538**Diagnostic text:** 6539 6540+--------------------------------------------------------------------------------------------------------------------+ 6541|:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file; will search from start of include path`| 6542+--------------------------------------------------------------------------------------------------------------------+ 6543 6544 6545-Wincompatible-exception-spec 6546----------------------------- 6547This diagnostic is enabled by default. 6548 6549**Diagnostic text:** 6550 6551+--------------------------------------------------------------------------+----------------------+--------------------------------+ 6552|:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`| 6553| ||:diagtext:`return` || | 6554| |+--------------------+| | 6555| ||:diagtext:`argument`|| | 6556| |+--------------------+| | 6557+--------------------------------------------------------------------------+----------------------+--------------------------------+ 6558 6559+-----------------------------------------------------------------------------------------------+ 6560|:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`| 6561+-----------------------------------------------------------------------------------------------+ 6562 6563 6564-Wincompatible-function-pointer-types 6565------------------------------------- 6566This diagnostic is enabled by default. 6567 6568**Diagnostic text:** 6569 6570+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6571|:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6572| ||:diagtext:`assigning to different types` ||| || 6573| |+--------------------------------------------------------------+|+-------------------------------------+| 6574| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6575| |+--------------------------------------------------------------+|+-------------------------------------+| 6576| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6577| |+--------------------------------------------------------------+|+-------------------------------------+| 6578| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6579| |+--------------------------------------------------------------+|+-------------------------------------+| 6580| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6581| |+--------------------------------------------------------------+|+-------------------------------------+| 6582| ||:diagtext:`sending to parameter of different type` || | 6583| |+--------------------------------------------------------------+| | 6584| ||:diagtext:`casting between types` || | 6585| |+--------------------------------------------------------------+| | 6586+----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6587 6588 6589-Wincompatible-library-redeclaration 6590------------------------------------ 6591This diagnostic is enabled by default. 6592 6593**Diagnostic text:** 6594 6595+-------------------------------------------------------------------------------------------------------------+ 6596|:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`| 6597+-------------------------------------------------------------------------------------------------------------+ 6598 6599 6600-Wincompatible-ms-struct 6601------------------------ 6602This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error. 6603 6604**Diagnostic text:** 6605 6606+---------------------------------------------------------------------------------------------------------------------------------------------+ 6607|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`| 6608+---------------------------------------------------------------------------------------------------------------------------------------------+ 6609 6610+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6611|:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two`| 6612+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6613 6614 6615-Wincompatible-pointer-types 6616---------------------------- 6617This diagnostic is enabled by default. 6618 6619Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_. 6620 6621**Diagnostic text:** 6622 6623+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6624|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6625| ||:diagtext:`assigning to different types` ||| || 6626| |+--------------------------------------------------------------+|+-------------------------------------+| 6627| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6628| |+--------------------------------------------------------------+|+-------------------------------------+| 6629| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6630| |+--------------------------------------------------------------+|+-------------------------------------+| 6631| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6632| |+--------------------------------------------------------------+|+-------------------------------------+| 6633| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6634| |+--------------------------------------------------------------+|+-------------------------------------+| 6635| ||:diagtext:`sending to parameter of different type` || | 6636| |+--------------------------------------------------------------+| | 6637| ||:diagtext:`casting between types` || | 6638| |+--------------------------------------------------------------+| | 6639+-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6640 6641 6642-Wincompatible-pointer-types-discards-qualifiers 6643------------------------------------------------ 6644This diagnostic is enabled by default. 6645 6646**Diagnostic text:** 6647 6648+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 6649|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`| 6650| ||:diagtext:`assigning to different types` || | 6651| |+--------------------------------------------------------------+| | 6652| ||:diagtext:`passing to parameter of different type` || | 6653| |+--------------------------------------------------------------+| | 6654| ||:diagtext:`returning from function with different return type`|| | 6655| |+--------------------------------------------------------------+| | 6656| ||:diagtext:`converting between types` || | 6657| |+--------------------------------------------------------------+| | 6658| ||:diagtext:`initializing with expression of different type` || | 6659| |+--------------------------------------------------------------+| | 6660| ||:diagtext:`sending to parameter of different type` || | 6661| |+--------------------------------------------------------------+| | 6662| ||:diagtext:`casting between types` || | 6663| |+--------------------------------------------------------------+| | 6664+---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ 6665 6666+---------------------------+----------------------------------------------------------------+---------------------------------------+ 6667|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`| 6668| ||:diagtext:`assigning to different types` || | 6669| |+--------------------------------------------------------------+| | 6670| ||:diagtext:`passing to parameter of different type` || | 6671| |+--------------------------------------------------------------+| | 6672| ||:diagtext:`returning from function with different return type`|| | 6673| |+--------------------------------------------------------------+| | 6674| ||:diagtext:`converting between types` || | 6675| |+--------------------------------------------------------------+| | 6676| ||:diagtext:`initializing with expression of different type` || | 6677| |+--------------------------------------------------------------+| | 6678| ||:diagtext:`sending to parameter of different type` || | 6679| |+--------------------------------------------------------------+| | 6680| ||:diagtext:`casting between types` || | 6681| |+--------------------------------------------------------------+| | 6682+---------------------------+----------------------------------------------------------------+---------------------------------------+ 6683 6684+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 6685|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`from` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`changes address space of nested pointers`| 6686| ||:diagtext:`reinterpret\_cast`|| | 6687| |+-----------------------------+| | 6688| ||:diagtext:`C-style cast` || | 6689| |+-----------------------------+| | 6690+---------------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 6691 6692 6693-Wincompatible-property-type 6694---------------------------- 6695This diagnostic is enabled by default. 6696 6697**Diagnostic text:** 6698 6699+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6700|:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`| 6701+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6702 6703 6704-Wincompatible-sysroot 6705---------------------- 6706This diagnostic is enabled by default. 6707 6708**Diagnostic text:** 6709 6710+------------------------------------------------------------------------------------------------------------------------------------+ 6711|:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`| 6712+------------------------------------------------------------------------------------------------------------------------------------+ 6713 6714 6715-Wincomplete-framework-module-declaration 6716----------------------------------------- 6717This diagnostic is enabled by default. 6718 6719**Diagnostic text:** 6720 6721+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6722|:warning:`warning:` |nbsp| :diagtext:`skipping '`:placeholder:`A`:diagtext:`' because module declaration of '`:placeholder:`B`:diagtext:`' lacks the 'framework' qualifier`| 6723+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6724 6725 6726-Wincomplete-implementation 6727--------------------------- 6728This diagnostic is enabled by default. 6729 6730**Diagnostic text:** 6731 6732+-----------------------------------------------------------------------------------------------------------------+ 6733|:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 6734+-----------------------------------------------------------------------------------------------------------------+ 6735 6736 6737-Wincomplete-module 6738------------------- 6739Some of the diagnostics controlled by this flag are enabled by default. 6740 6741Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_. 6742 6743 6744-Wincomplete-setjmp-declaration 6745------------------------------- 6746This diagnostic is enabled by default. 6747 6748**Diagnostic text:** 6749 6750+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6751|:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`A`:diagtext:`' requires the declaration of the 'jmp\_buf' type, commonly provided in the header <setjmp.h>.`| 6752+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6753 6754 6755-Wincomplete-umbrella 6756--------------------- 6757This diagnostic is enabled by default. 6758 6759**Diagnostic text:** 6760 6761+---------------------------------------------------------------------------------------+ 6762|:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`| 6763+---------------------------------------------------------------------------------------+ 6764 6765+--------------------------------------------------------------------------------------------------+ 6766|:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`| 6767+--------------------------------------------------------------------------------------------------+ 6768 6769+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 6770|:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`| 6771+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 6772 6773 6774-Winconsistent-dllimport 6775------------------------ 6776This diagnostic is enabled by default. 6777 6778**Diagnostic text:** 6779 6780+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6781|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`| 6782+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6783 6784+------------------------------------------------------------------------------------------------------------------------------------+ 6785|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`| 6786+------------------------------------------------------------------------------------------------------------------------------------+ 6787 6788 6789-Winconsistent-missing-destructor-override 6790------------------------------------------ 6791**Diagnostic text:** 6792 6793+------------------------------------------------------------------------------------------------------------------+ 6794|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`| 6795+------------------------------------------------------------------------------------------------------------------+ 6796 6797 6798-Winconsistent-missing-override 6799------------------------------- 6800This diagnostic is enabled by default. 6801 6802**Diagnostic text:** 6803 6804+-----------------------------------------------------------------------------------------------------------------------+ 6805|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`| 6806+-----------------------------------------------------------------------------------------------------------------------+ 6807 6808 6809-Wincrement-bool 6810---------------- 6811This diagnostic is enabled by default. 6812 6813Also controls `-Wdeprecated-increment-bool`_. 6814 6815**Diagnostic text:** 6816 6817+------------------------------------------------------------------------------------------------+ 6818|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`| 6819+------------------------------------------------------------------------------------------------+ 6820 6821 6822-Winfinite-recursion 6823-------------------- 6824**Diagnostic text:** 6825 6826+---------------------------------------------------------------------------------------+ 6827|:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`| 6828+---------------------------------------------------------------------------------------+ 6829 6830 6831-Winit-self 6832----------- 6833This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6834 6835-Winitializer-overrides 6836----------------------- 6837This diagnostic is enabled by default. 6838 6839**Diagnostic text:** 6840 6841+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+ 6842|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`| 6843| ||:diagtext:`partially` |nbsp| || | 6844| |+-----------------------------+| | 6845| || || | 6846| |+-----------------------------+| | 6847+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+ 6848 6849+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+ 6850|:warning:`warning:` |nbsp| :diagtext:`initializer` |nbsp| |+-----------------------------+|:diagtext:`overrides prior initialization of this subobject`| 6851| ||:diagtext:`partially` |nbsp| || | 6852| |+-----------------------------+| | 6853| || || | 6854| |+-----------------------------+| | 6855+----------------------------------------------------------+-------------------------------+------------------------------------------------------------+ 6856 6857 6858-Winjected-class-name 6859--------------------- 6860This diagnostic is enabled by default. 6861 6862**Diagnostic text:** 6863 6864+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 6865|:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`| 6866| ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| | 6867| |+-------------------------+| |+----------------------+| | 6868| ||:diagtext:`type` || ||:diagtext:`'template'`|| | 6869| |+-------------------------+| |+----------------------+| | 6870+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ 6871 6872 6873-Winline 6874-------- 6875This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 6876 6877-Winline-asm 6878------------ 6879This diagnostic is enabled by default. 6880 6881**Diagnostic text:** 6882 6883The text of this diagnostic is not controlled by Clang. 6884 6885 6886-Winline-new-delete 6887------------------- 6888This diagnostic is enabled by default. 6889 6890**Diagnostic text:** 6891 6892+----------------------------------------------------------------------------------------------------------------------------------+ 6893|:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`| 6894+----------------------------------------------------------------------------------------------------------------------------------+ 6895 6896 6897-Winstantiation-after-specialization 6898------------------------------------ 6899This diagnostic is enabled by default. 6900 6901**Diagnostic text:** 6902 6903+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6904|:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`| 6905+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6906 6907 6908-Wint-conversion 6909---------------- 6910This diagnostic is enabled by default. 6911 6912**Diagnostic text:** 6913 6914+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6915|:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6916| ||:diagtext:`assigning to different types` ||| || 6917| |+--------------------------------------------------------------+|+-------------------------------------+| 6918| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6919| |+--------------------------------------------------------------+|+-------------------------------------+| 6920| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6921| |+--------------------------------------------------------------+|+-------------------------------------+| 6922| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6923| |+--------------------------------------------------------------+|+-------------------------------------+| 6924| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6925| |+--------------------------------------------------------------+|+-------------------------------------+| 6926| ||:diagtext:`sending to parameter of different type` || | 6927| |+--------------------------------------------------------------+| | 6928| ||:diagtext:`casting between types` || | 6929| |+--------------------------------------------------------------+| | 6930+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6931 6932+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6933|:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| 6934| ||:diagtext:`assigning to different types` ||| || 6935| |+--------------------------------------------------------------+|+-------------------------------------+| 6936| ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || 6937| |+--------------------------------------------------------------+|+-------------------------------------+| 6938| ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| 6939| |+--------------------------------------------------------------+|+-------------------------------------+| 6940| ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || 6941| |+--------------------------------------------------------------+|+-------------------------------------+| 6942| ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || 6943| |+--------------------------------------------------------------+|+-------------------------------------+| 6944| ||:diagtext:`sending to parameter of different type` || | 6945| |+--------------------------------------------------------------+| | 6946| ||:diagtext:`casting between types` || | 6947| |+--------------------------------------------------------------+| | 6948+-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ 6949 6950 6951-Wint-conversions 6952----------------- 6953Synonym for `-Wint-conversion`_. 6954 6955 6956-Wint-in-bool-context 6957--------------------- 6958**Diagnostic text:** 6959 6960+--------------------------------------------------------------------------------+ 6961|:warning:`warning:` |nbsp| :diagtext:`converting the enum constant to a boolean`| 6962+--------------------------------------------------------------------------------+ 6963 6964+--------------------------------------------------------------------------------------------------------------------------------------+ 6965|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean; did you mean '(`:placeholder:`A`:diagtext:`) != 0'?`| 6966+--------------------------------------------------------------------------------------------------------------------------------------+ 6967 6968 6969-Wint-to-pointer-cast 6970--------------------- 6971This diagnostic is enabled by default. 6972 6973Also controls `-Wint-to-void-pointer-cast`_. 6974 6975**Diagnostic text:** 6976 6977+-------------------------------------------------------------------------------------------------------------------------------------------+ 6978|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6979+-------------------------------------------------------------------------------------------------------------------------------------------+ 6980 6981 6982-Wint-to-void-pointer-cast 6983-------------------------- 6984This diagnostic is enabled by default. 6985 6986**Diagnostic text:** 6987 6988+-------------------------------------------------------------------------------------------------------------------------------------------+ 6989|:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| 6990+-------------------------------------------------------------------------------------------------------------------------------------------+ 6991 6992 6993-Winteger-overflow 6994------------------ 6995This diagnostic is enabled by default. 6996 6997**Diagnostic text:** 6998 6999+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 7000|:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`| 7001+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 7002 7003 7004-Winvalid-command-line-argument 7005------------------------------- 7006This diagnostic is enabled by default. 7007 7008Also controls `-Wignored-optimization-argument`_. 7009 7010**Diagnostic text:** 7011 7012+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7013|:warning:`warning:` |nbsp| :diagtext:`the given MCU supports` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`B`:diagtext:`.`| 7014+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7015 7016+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7017|:warning:`warning:` |nbsp| :diagtext:`no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly.`| 7018+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7019 7020+----------------------------------------------------------------------------------------------------------------------------------------------------+ 7021|:warning:`warning:` |nbsp| :diagtext:`the given MCU does not support hardware multiply, but -mhwmult is set to` |nbsp| :placeholder:`A`:diagtext:`.`| 7022+----------------------------------------------------------------------------------------------------------------------------------------------------+ 7023 7024+-----------------------------------------------------------------------------------------------------------------------------------------+ 7025|:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`| 7026+-----------------------------------------------------------------------------------------------------------------------------------------+ 7027 7028+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7029|:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`| 7030+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7031 7032+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7033|:warning:`warning:` |nbsp| :diagtext:`ignoring extension '`:placeholder:`A`:diagtext:`' because the '`:placeholder:`B`:diagtext:`' architecture does not support it`| 7034+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7035 7036 7037-Winvalid-constexpr 7038------------------- 7039This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error. 7040 7041**Diagnostic text:** 7042 7043+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+ 7044|:error:`error:` |nbsp| |+---------------------+| |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`| 7045| ||:diagtext:`constexpr`|| ||:diagtext:`function` || | 7046| |+---------------------+| |+-----------------------+| | 7047| ||:diagtext:`consteval`|| ||:diagtext:`constructor`|| | 7048| |+---------------------+| |+-----------------------+| | 7049+-----------------------+-----------------------+--------+-------------------------+--------------------------------------------------------+ 7050 7051 7052-Winvalid-iboutlet 7053------------------ 7054This diagnostic is enabled by default. 7055 7056**Diagnostic text:** 7057 7058+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 7059|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`| 7060| ||:diagtext:`instance variable`|| | 7061| |+-----------------------------+| | 7062| ||:diagtext:`property` || | 7063| |+-----------------------------+| | 7064+---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 7065 7066+---------------------------------------------------------------------------------------------------------+ 7067|:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`| 7068+---------------------------------------------------------------------------------------------------------+ 7069 7070 7071-Winvalid-initializer-from-system-header 7072---------------------------------------- 7073This diagnostic is enabled by default. 7074 7075**Diagnostic text:** 7076 7077+--------------------------------------------------------------------------------------------------------------+ 7078|:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`| 7079+--------------------------------------------------------------------------------------------------------------+ 7080 7081 7082-Winvalid-ios-deployment-target 7083------------------------------- 7084This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error. 7085 7086**Diagnostic text:** 7087 7088+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7089|:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`| 7090+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7091 7092 7093-Winvalid-no-builtin-names 7094-------------------------- 7095This diagnostic is enabled by default. 7096 7097**Diagnostic text:** 7098 7099+-----------------------------------------------------------------------------------------------------------------------------+ 7100|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid builtin name for` |nbsp| :placeholder:`B`| 7101+-----------------------------------------------------------------------------------------------------------------------------+ 7102 7103 7104-Winvalid-noreturn 7105------------------ 7106This diagnostic is enabled by default. 7107 7108**Diagnostic text:** 7109 7110+-------------------------------------------------------------------------------------+ 7111|:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`| 7112+-------------------------------------------------------------------------------------+ 7113 7114+--------------------------------------------------------------------------------------------------------------------------------+ 7115|:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`| 7116+--------------------------------------------------------------------------------------------------------------------------------+ 7117 7118 7119-Winvalid-offsetof 7120------------------ 7121This diagnostic is enabled by default. 7122 7123**Diagnostic text:** 7124 7125+----------------------------------------------------------------------------------------+ 7126|:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`| 7127+----------------------------------------------------------------------------------------+ 7128 7129+----------------------------------------------------------------------------------------------------+ 7130|:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`| 7131+----------------------------------------------------------------------------------------------------+ 7132 7133 7134-Winvalid-or-nonexistent-directory 7135---------------------------------- 7136Some of the diagnostics controlled by this flag are enabled by default. 7137 7138**Diagnostic text:** 7139 7140+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7141|:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`| 7142+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7143 7144+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7145|:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`| 7146+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7147 7148 7149-Winvalid-partial-specialization 7150-------------------------------- 7151This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error. 7152 7153**Diagnostic text:** 7154 7155+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 7156|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`| 7157| ||:diagtext:`class` || | 7158| |+--------------------+| | 7159| ||:diagtext:`variable`|| | 7160| |+--------------------+| | 7161+-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ 7162 7163 7164-Winvalid-pch 7165------------- 7166This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7167 7168-Winvalid-pp-token 7169------------------ 7170This diagnostic is enabled by default. 7171 7172**Diagnostic text:** 7173 7174+---------------------------------------------------------------+ 7175|:warning:`warning:` |nbsp| :diagtext:`empty character constant`| 7176+---------------------------------------------------------------+ 7177 7178+------------------------------------------------------------------+-----------------+-----------------------------+ 7179|:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`| 7180| ||:diagtext:`'` || | 7181| |+---------------+| | 7182| ||:diagtext:`'"'`|| | 7183| |+---------------+| | 7184+------------------------------------------------------------------+-----------------+-----------------------------+ 7185 7186 7187-Winvalid-source-encoding 7188------------------------- 7189This diagnostic is enabled by default. 7190 7191**Diagnostic text:** 7192 7193+--------------------------------------------------------------------------------------+ 7194|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`| 7195+--------------------------------------------------------------------------------------+ 7196 7197+-----------------------------------------------------------------------------------+ 7198|:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`| 7199+-----------------------------------------------------------------------------------+ 7200 7201 7202-Winvalid-token-paste 7203--------------------- 7204This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error. 7205 7206**Diagnostic text:** 7207 7208+----------------------------------------------------------------------------------------------------------------+ 7209|:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`| 7210+----------------------------------------------------------------------------------------------------------------+ 7211 7212 7213-Wjump-seh-finally 7214------------------ 7215This diagnostic is enabled by default. 7216 7217**Diagnostic text:** 7218 7219+-------------------------------------------------------------------------------------------+ 7220|:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`| 7221+-------------------------------------------------------------------------------------------+ 7222 7223 7224-Wkeyword-compat 7225---------------- 7226This diagnostic is enabled by default. 7227 7228**Diagnostic text:** 7229 7230+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 7231|:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+| 7232| ||:diagtext:`here` || 7233| |+-----------------------------------------------------+| 7234| ||:diagtext:`for the remainder of the translation unit`|| 7235| |+-----------------------------------------------------+| 7236+-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ 7237 7238 7239-Wkeyword-macro 7240--------------- 7241**Diagnostic text:** 7242 7243+----------------------------------------------------------------------------+ 7244|:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`| 7245+----------------------------------------------------------------------------+ 7246 7247 7248-Wknr-promoted-parameter 7249------------------------ 7250This diagnostic is enabled by default. 7251 7252**Diagnostic text:** 7253 7254+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7255|:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`| 7256+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7257 7258 7259-Wlanguage-extension-token 7260-------------------------- 7261**Diagnostic text:** 7262 7263+-----------------------------------------------------+ 7264|:warning:`warning:` |nbsp| :diagtext:`extension used`| 7265+-----------------------------------------------------+ 7266 7267 7268-Wlarge-by-value-copy 7269--------------------- 7270This diagnostic is enabled by default. 7271 7272**Diagnostic text:** 7273 7274+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7275|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`| 7276+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7277 7278+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7279|:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`| 7280+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7281 7282 7283-Wliblto 7284-------- 7285This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 7286 7287-Wliteral-conversion 7288-------------------- 7289This diagnostic is enabled by default. 7290 7291**Diagnostic text:** 7292 7293+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7294|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| 7295+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7296 7297+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7298|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is undefined`| 7299+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7300 7301 7302-Wliteral-range 7303--------------- 7304This diagnostic is enabled by default. 7305 7306**Diagnostic text:** 7307 7308+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7309|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`| 7310+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7311 7312+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7313|:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`| 7314+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7315 7316 7317-Wlocal-type-template-args 7318-------------------------- 7319Some of the diagnostics controlled by this flag are enabled by default. 7320 7321Also controls `-Wc++98-compat-local-type-template-args`_. 7322 7323**Diagnostic text:** 7324 7325+------------------------------------------------------------------------------------------------+ 7326|:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`| 7327+------------------------------------------------------------------------------------------------+ 7328 7329 7330-Wlogical-not-parentheses 7331------------------------- 7332This diagnostic is enabled by default. 7333 7334**Diagnostic text:** 7335 7336+--------------------------------------------------------------------------------------------------------+------------------------------+ 7337|:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+| 7338| ||:diagtext:`comparison` || 7339| |+----------------------------+| 7340| ||:diagtext:`bitwise operator`|| 7341| |+----------------------------+| 7342+--------------------------------------------------------------------------------------------------------+------------------------------+ 7343 7344 7345-Wlogical-op-parentheses 7346------------------------ 7347**Diagnostic text:** 7348 7349+---------------------------------------------------------+ 7350|:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`| 7351+---------------------------------------------------------+ 7352 7353 7354-Wlong-long 7355----------- 7356Also controls `-Wc++11-long-long`_. 7357 7358**Diagnostic text:** 7359 7360+-----------------------------------------------------------------------------------------------+ 7361|:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`| 7362+-----------------------------------------------------------------------------------------------+ 7363 7364 7365-Wloop-analysis 7366--------------- 7367Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_. 7368 7369 7370-Wmacro-redefined 7371----------------- 7372This diagnostic is enabled by default. 7373 7374**Diagnostic text:** 7375 7376+------------------------------------------------------------------------------+ 7377|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`| 7378+------------------------------------------------------------------------------+ 7379 7380 7381-Wmain 7382------ 7383Some of the diagnostics controlled by this flag are enabled by default. 7384 7385**Diagnostic text:** 7386 7387+--------------------------------------------------------------------------------------------+ 7388|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 7389+--------------------------------------------------------------------------------------------+ 7390 7391+--------------------------------------------------------------------------------------+ 7392|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`| 7393+--------------------------------------------------------------------------------------+ 7394 7395+------------------------------------------------------------------------------------+ 7396|:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`| 7397+------------------------------------------------------------------------------------+ 7398 7399+-------------------------------------------------------------------------------+ 7400|:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`| 7401+-------------------------------------------------------------------------------+ 7402 7403+---------------------------------------------------------------------------------------------------------+ 7404|:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`| 7405+---------------------------------------------------------------------------------------------------------+ 7406 7407+------------------------------------------------------------------------+ 7408|:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`| 7409+------------------------------------------------------------------------+ 7410 7411+---------------------------------------------------------------------------+ 7412|:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`| 7413+---------------------------------------------------------------------------+ 7414 7415 7416-Wmain-return-type 7417------------------ 7418This diagnostic is enabled by default. 7419 7420**Diagnostic text:** 7421 7422+-------------------------------------------------------------------------+ 7423|:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`| 7424+-------------------------------------------------------------------------+ 7425 7426 7427-Wmalformed-warning-check 7428------------------------- 7429This diagnostic is enabled by default. 7430 7431**Diagnostic text:** 7432 7433+---------------------------------------------------------------------------------------------+ 7434|:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`| 7435+---------------------------------------------------------------------------------------------+ 7436 7437 7438-Wmany-braces-around-scalar-init 7439-------------------------------- 7440This diagnostic is enabled by default. 7441 7442**Diagnostic text:** 7443 7444+---------------------------------------------------------------------+----------------------------+-----------------------+ 7445|:warning:`warning:` |nbsp| :diagtext:`too many braces around` |nbsp| |+--------------------------+|:diagtext:`initializer`| 7446| ||:diagtext:`scalar` |nbsp| || | 7447| |+--------------------------+| | 7448| || || | 7449| |+--------------------------+| | 7450+---------------------------------------------------------------------+----------------------------+-----------------------+ 7451 7452 7453-Wmax-tokens 7454------------ 7455This diagnostic is enabled by default. 7456 7457**Diagnostic text:** 7458 7459+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7460|:warning:`warning:` |nbsp| :diagtext:`the number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds this token limit (`:placeholder:`B`:diagtext:`)`| 7461+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7462 7463+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7464|:warning:`warning:` |nbsp| :diagtext:`the total number of preprocessor source tokens (`:placeholder:`A`:diagtext:`) exceeds the token limit (`:placeholder:`B`:diagtext:`)`| 7465+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7466 7467 7468The warning is issued if the number of pre-processor tokens exceeds 7469the token limit, which can be set in three ways: 7470 74711. As a limit at a specific point in a file, using the ``clang max_tokens_here`` 7472 pragma: 7473 7474 .. code-block: c++ 7475 #pragma clang max_tokens_here 1234 7476 74772. As a per-translation unit limit, using the ``-fmax-tokens=`` command-line 7478 flag: 7479 7480 .. code-block: console 7481 clang -c a.cpp -fmax-tokens=1234 7482 74833. As a per-translation unit limit using the ``clang max_tokens_total`` pragma, 7484 which works like and overrides the ``-fmax-tokens=`` flag: 7485 7486 .. code-block: c++ 7487 #pragma clang max_tokens_total 1234 7488 7489These limits can be helpful in limiting code growth through included files. 7490 7491Setting a token limit of zero means no limit. 7492 7493-Wmax-unsigned-zero 7494------------------- 7495This diagnostic is enabled by default. 7496 7497**Diagnostic text:** 7498 7499+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 7500|:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`| 7501| ||:diagtext:`a value and unsigned zero`|| | 7502| |+-------------------------------------+| | 7503| ||:diagtext:`unsigned zero and a value`|| | 7504| |+-------------------------------------+| | 7505+----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ 7506 7507 7508-Wmemset-transposed-args 7509------------------------ 7510This diagnostic is enabled by default. 7511 7512**Diagnostic text:** 7513 7514+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 7515|:warning:`warning:` |nbsp| |+---------------------------------------------------+|:diagtext:`; did you mean to transpose the last two arguments?`| 7516| ||:diagtext:`'size' argument to memset is '0'` || | 7517| |+---------------------------------------------------+| | 7518| ||:diagtext:`setting buffer to a 'sizeof' expression`|| | 7519| |+---------------------------------------------------+| | 7520+---------------------------+-----------------------------------------------------+---------------------------------------------------------------+ 7521 7522 7523-Wmemsize-comparison 7524-------------------- 7525This diagnostic is enabled by default. 7526 7527**Diagnostic text:** 7528 7529+-----------------------------------------------------------------------------------------------------------------------+ 7530|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`| 7531+-----------------------------------------------------------------------------------------------------------------------+ 7532 7533 7534-Wmethod-signatures 7535------------------- 7536**Diagnostic text:** 7537 7538+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7539|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 7540+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7541 7542+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7543|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 7544+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7545 7546 7547-Wmicrosoft 7548----------- 7549Some of the diagnostics controlled by this flag are enabled by default. 7550 7551Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-drectve-section`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_. 7552 7553 7554-Wmicrosoft-anon-tag 7555-------------------- 7556Some of the diagnostics controlled by this flag are enabled by default. 7557 7558**Diagnostic text:** 7559 7560+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 7561|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 7562| ||:diagtext:`struct`|| | 7563| |+------------------+| | 7564| ||:diagtext:`union` || | 7565| |+------------------+| | 7566+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 7567 7568+--------------------------------------------------------+---------------------+---------------------------------------------+ 7569|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 7570| ||:diagtext:`structs`|| | 7571| |+-------------------+| | 7572| ||:diagtext:`unions` || | 7573| |+-------------------+| | 7574+--------------------------------------------------------+---------------------+---------------------------------------------+ 7575 7576 7577-Wmicrosoft-cast 7578---------------- 7579This diagnostic is enabled by default. 7580 7581**Diagnostic text:** 7582 7583+------------------------------------------------------------------------------------------------------------------------------+ 7584|:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`| 7585+------------------------------------------------------------------------------------------------------------------------------+ 7586 7587+-------------------------------------------------------------------------------------------------------------------------------------+ 7588|:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`| 7589+-------------------------------------------------------------------------------------------------------------------------------------+ 7590 7591 7592-Wmicrosoft-charize 7593------------------- 7594**Diagnostic text:** 7595 7596+-------------------------------------------------------------------------------------+ 7597|:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`| 7598+-------------------------------------------------------------------------------------+ 7599 7600 7601-Wmicrosoft-comment-paste 7602------------------------- 7603**Diagnostic text:** 7604 7605+----------------------------------------------------------------------------------------------------------+ 7606|:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`| 7607+----------------------------------------------------------------------------------------------------------+ 7608 7609 7610-Wmicrosoft-const-init 7611---------------------- 7612This diagnostic is enabled by default. 7613 7614**Diagnostic text:** 7615 7616+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 7617|:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 7618| || || | 7619| |+---------------------------------------------------------------+| | 7620| || |nbsp| :diagtext:`without a user-provided default constructor`|| | 7621| |+---------------------------------------------------------------+| | 7622+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ 7623 7624 7625-Wmicrosoft-cpp-macro 7626--------------------- 7627**Diagnostic text:** 7628 7629+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7630|:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`| 7631+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7632 7633 7634-Wmicrosoft-default-arg-redefinition 7635------------------------------------ 7636This diagnostic is enabled by default. 7637 7638**Diagnostic text:** 7639 7640+-----------------------------------------------------------------------+ 7641|:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`| 7642+-----------------------------------------------------------------------+ 7643 7644 7645-Wmicrosoft-drectve-section 7646--------------------------- 7647This diagnostic is enabled by default. 7648 7649**Diagnostic text:** 7650 7651+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7652|:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead`| 7653+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7654 7655 7656-Wmicrosoft-end-of-file 7657----------------------- 7658**Diagnostic text:** 7659 7660+----------------------------------------------------------------------------------------------+ 7661|:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`| 7662+----------------------------------------------------------------------------------------------+ 7663 7664 7665-Wmicrosoft-enum-forward-reference 7666---------------------------------- 7667This diagnostic is enabled by default. 7668 7669**Diagnostic text:** 7670 7671+---------------------------------------------------------------------------------------------------+ 7672|:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`| 7673+---------------------------------------------------------------------------------------------------+ 7674 7675 7676-Wmicrosoft-enum-value 7677---------------------- 7678**Diagnostic text:** 7679 7680+---------------------------------------------------------------------------------------------------------------------------+ 7681|:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`| 7682+---------------------------------------------------------------------------------------------------------------------------+ 7683 7684 7685-Wmicrosoft-exception-spec 7686-------------------------- 7687Some of the diagnostics controlled by this flag are enabled by default. 7688 7689**Diagnostic text:** 7690 7691+------------------------------------------------------------------------------------------------+ 7692|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 7693+------------------------------------------------------------------------------------------------+ 7694 7695+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 7696|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`| 7697| || || | 7698| |+--------------------------------+| | 7699| ||:diagtext:`pointer to` |nbsp| || | 7700| |+--------------------------------+| | 7701| ||:diagtext:`reference to` |nbsp| || | 7702| |+--------------------------------+| | 7703+---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ 7704 7705+-----------------------------------------------------------------------------------------------------------------+ 7706|:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`| 7707+-----------------------------------------------------------------------------------------------------------------+ 7708 7709+------------------------------------------------------------------------------------------------------------------------+ 7710|:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`| 7711+------------------------------------------------------------------------------------------------------------------------+ 7712 7713+--------------------------------------------------------------------------------------------------------------------------------+ 7714|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 7715+--------------------------------------------------------------------------------------------------------------------------------+ 7716 7717+-------------------------------------------------------------------------------------------------------------------+ 7718|:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`| 7719+-------------------------------------------------------------------------------------------------------------------+ 7720 7721 7722-Wmicrosoft-exists 7723------------------ 7724This diagnostic is enabled by default. 7725 7726**Diagnostic text:** 7727 7728+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 7729|:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`| 7730| ||:diagtext:`\_\_if\_not\_exists`|| | 7731| |+-------------------------------+| | 7732| ||:diagtext:`\_\_if\_exists` || | 7733| |+-------------------------------+| | 7734+--------------------------------------------------------+---------------------------------+--------------------------------------------+ 7735 7736 7737-Wmicrosoft-explicit-constructor-call 7738------------------------------------- 7739This diagnostic is enabled by default. 7740 7741**Diagnostic text:** 7742 7743+-------------------------------------------------------------------------------------------+ 7744|:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`| 7745+-------------------------------------------------------------------------------------------+ 7746 7747 7748-Wmicrosoft-extra-qualification 7749------------------------------- 7750This diagnostic is enabled by default. 7751 7752**Diagnostic text:** 7753 7754+--------------------------------------------------------------------------------------------+ 7755|:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| 7756+--------------------------------------------------------------------------------------------+ 7757 7758 7759-Wmicrosoft-fixed-enum 7760---------------------- 7761**Diagnostic text:** 7762 7763+---------------------------------------------------------------------------------------------------------------+ 7764|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`| 7765+---------------------------------------------------------------------------------------------------------------+ 7766 7767 7768-Wmicrosoft-flexible-array 7769-------------------------- 7770**Diagnostic text:** 7771 7772+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 7773|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 7774| ||:diagtext:`struct` || | 7775| |+---------------------+| | 7776| ||:diagtext:`interface`|| | 7777| |+---------------------+| | 7778| ||:diagtext:`union` || | 7779| |+---------------------+| | 7780| ||:diagtext:`class` || | 7781| |+---------------------+| | 7782| ||:diagtext:`enum` || | 7783| |+---------------------+| | 7784+----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ 7785 7786+-------------------------------------------------------------------------------------------------------------------------------------------+ 7787|:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`| 7788+-------------------------------------------------------------------------------------------------------------------------------------------+ 7789 7790 7791-Wmicrosoft-goto 7792---------------- 7793This diagnostic is enabled by default. 7794 7795**Diagnostic text:** 7796 7797+----------------------------------------------------------------------------------------------------------+ 7798|:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`| 7799+----------------------------------------------------------------------------------------------------------+ 7800 7801 7802-Wmicrosoft-inaccessible-base 7803----------------------------- 7804This diagnostic is enabled by default. 7805 7806**Diagnostic text:** 7807 7808+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7809|:warning:`warning:` |nbsp| :diagtext:`accessing inaccessible direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 7810+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7811 7812 7813-Wmicrosoft-include 7814------------------- 7815This diagnostic is enabled by default. 7816 7817**Diagnostic text:** 7818 7819+------------------------------------------------------------------------------------------------------------------------------+ 7820|:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`| 7821+------------------------------------------------------------------------------------------------------------------------------+ 7822 7823 7824-Wmicrosoft-mutable-reference 7825----------------------------- 7826This diagnostic is enabled by default. 7827 7828**Diagnostic text:** 7829 7830+---------------------------------------------------------------------------------------------+ 7831|:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`| 7832+---------------------------------------------------------------------------------------------+ 7833 7834 7835-Wmicrosoft-pure-definition 7836--------------------------- 7837This diagnostic is enabled by default. 7838 7839**Diagnostic text:** 7840 7841+-------------------------------------------------------------------------------------------------------+ 7842|:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`| 7843+-------------------------------------------------------------------------------------------------------+ 7844 7845 7846-Wmicrosoft-redeclare-static 7847---------------------------- 7848**Diagnostic text:** 7849 7850+-------------------------------------------------------------------------------------------------------------------------------------------+ 7851|:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`| 7852+-------------------------------------------------------------------------------------------------------------------------------------------+ 7853 7854 7855-Wmicrosoft-sealed 7856------------------ 7857This diagnostic is enabled by default. 7858 7859**Diagnostic text:** 7860 7861+--------------------------------------------------------------------------------+ 7862|:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`| 7863+--------------------------------------------------------------------------------+ 7864 7865 7866-Wmicrosoft-template 7867-------------------- 7868This diagnostic is enabled by default. 7869 7870Also controls `-Wmicrosoft-template-shadow`_. 7871 7872**Diagnostic text:** 7873 7874+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7875|:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`| 7876+------------------------------------------------------------------------------------------------------------------------------------------------------+ 7877 7878+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7879|:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`| 7880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7881 7882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7883|:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`| 7884+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7885 7886+-----------------------------------------------------------------------------------------------------------------------------+ 7887|:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`| 7888+-----------------------------------------------------------------------------------------------------------------------------+ 7889 7890+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 7891|:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not in` |nbsp| |+----------------------------------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| 7892| ||:diagtext:`class template` || ||+---------------------------------------------------------+ || | 7893| |+-------------------------------------+| |||:diagtext:`a namespace enclosing` |nbsp| :placeholder:`C`| || | 7894| ||:diagtext:`class template partial` || ||+---------------------------------------------------------+ || | 7895| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 7896| ||:diagtext:`variable template` || ||+--------------------------------------------------------------------------------------+|| | 7897| |+-------------------------------------+| |||:diagtext:`class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or an enclosing namespace`||| | 7898| ||:diagtext:`variable template partial`|| ||+--------------------------------------------------------------------------------------+|| | 7899| |+-------------------------------------+| |+----------------------------------------------------------------------------------------+| | 7900| ||:diagtext:`function template` || | | | 7901| |+-------------------------------------+| | | | 7902| ||:diagtext:`member function` || | | | 7903| |+-------------------------------------+| | | | 7904| ||:diagtext:`static data member` || | | | 7905| |+-------------------------------------+| | | | 7906| ||:diagtext:`member class` || | | | 7907| |+-------------------------------------+| | | | 7908| ||:diagtext:`member enumeration` || | | | 7909| |+-------------------------------------+| | | | 7910+---------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+--------------------------------------------+ 7911 7912+------------------------------------------------------------------------------------------------------------------------------------------------+ 7913|:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`| 7914+------------------------------------------------------------------------------------------------------------------------------------------------+ 7915 7916+-------------------------------------------------------------------------------------------------+ 7917|:warning:`warning:` |nbsp| :diagtext:`'static' can only be specified inside the class definition`| 7918+-------------------------------------------------------------------------------------------------+ 7919 7920+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7921|:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| 7922+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7923 7924 7925-Wmicrosoft-template-shadow 7926--------------------------- 7927This diagnostic is enabled by default. 7928 7929**Diagnostic text:** 7930 7931+---------------------------------------------------------------------------------------------------------------------------+ 7932|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows template parameter`| 7933+---------------------------------------------------------------------------------------------------------------------------+ 7934 7935 7936-Wmicrosoft-union-member-reference 7937---------------------------------- 7938This diagnostic is enabled by default. 7939 7940**Diagnostic text:** 7941 7942+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7943|:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`| 7944+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7945 7946 7947-Wmicrosoft-unqualified-friend 7948------------------------------ 7949This diagnostic is enabled by default. 7950 7951**Diagnostic text:** 7952 7953+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7954|:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`| 7955+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7956 7957 7958-Wmicrosoft-using-decl 7959---------------------- 7960This diagnostic is enabled by default. 7961 7962**Diagnostic text:** 7963 7964+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7965|:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`| 7966+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7967 7968 7969-Wmicrosoft-void-pseudo-dtor 7970---------------------------- 7971This diagnostic is enabled by default. 7972 7973**Diagnostic text:** 7974 7975+------------------------------------------------------------------------------------------------+ 7976|:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`| 7977+------------------------------------------------------------------------------------------------+ 7978 7979 7980-Wmisleading-indentation 7981------------------------ 7982**Diagnostic text:** 7983 7984+------------------------------------------------------------------------------------------------------+-------------------+-------------+ 7985|:warning:`warning:` |nbsp| :diagtext:`misleading indentation; statement is not part of the previous '`|+-----------------+|:diagtext:`'`| 7986| ||:diagtext:`if` || | 7987| |+-----------------+| | 7988| ||:diagtext:`else` || | 7989| |+-----------------+| | 7990| ||:diagtext:`for` || | 7991| |+-----------------+| | 7992| ||:diagtext:`while`|| | 7993| |+-----------------+| | 7994+------------------------------------------------------------------------------------------------------+-------------------+-------------+ 7995 7996 7997-Wmismatched-new-delete 7998----------------------- 7999This diagnostic is enabled by default. 8000 8001**Diagnostic text:** 8002 8003+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 8004|:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`| 8005| || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| | 8006| |+----------------+| |+----------------+| |+----------------+| | 8007| ||:diagtext:`\[\]`|| || || || || | 8008| |+----------------+| |+----------------+| |+----------------+| | 8009+----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ 8010 8011 8012-Wmismatched-parameter-types 8013---------------------------- 8014This diagnostic is enabled by default. 8015 8016**Diagnostic text:** 8017 8018+---------------------------------------------------------------------------------------------------------------+ 8019|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`| 8020+---------------------------------------------------------------------------------------------------------------+ 8021 8022 8023-Wmismatched-return-types 8024------------------------- 8025This diagnostic is enabled by default. 8026 8027**Diagnostic text:** 8028 8029+-----------------------------------------------------------------------------------------------------------+ 8030|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`| 8031+-----------------------------------------------------------------------------------------------------------+ 8032 8033 8034-Wmismatched-tags 8035----------------- 8036**Diagnostic text:** 8037 8038+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 8039|:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 8040| ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || | 8041| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 8042| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| | 8043| |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| | 8044| ||:diagtext:`a class` || | ||:diagtext:`a class` || | | 8045| |+------------------------+| | |+------------------------+| | | 8046+---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+----------------------------------------------------------------------------------------+ 8047 8048+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 8049|:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|:diagtext:`; this is valid, but may result in linker errors under the Microsoft C++ ABI`| 8050| ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || | 8051| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 8052| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| | 8053| |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| | 8054| ||:diagtext:`class` || | ||:diagtext:`class` || | | 8055| |+---------------------+| | |+---------------------+| | | 8056+---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+----------------------------------------------------------------------------------------+ 8057 8058 8059-Wmissing-braces 8060---------------- 8061**Diagnostic text:** 8062 8063+----------------------------------------------------------------------------------------+ 8064|:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`| 8065+----------------------------------------------------------------------------------------+ 8066 8067 8068-Wmissing-constinit 8069------------------- 8070This diagnostic is enabled by default. 8071 8072**Diagnostic text:** 8073 8074+---------------------------------------------------------------------------------------------------------------------------+ 8075|:warning:`warning:` |nbsp| :diagtext:`'constinit' specifier missing on initializing declaration of` |nbsp| :placeholder:`A`| 8076+---------------------------------------------------------------------------------------------------------------------------+ 8077 8078 8079-Wmissing-declarations 8080---------------------- 8081This diagnostic is enabled by default. 8082 8083**Diagnostic text:** 8084 8085+----------------------------------------------------------------------------+ 8086|:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`| 8087+----------------------------------------------------------------------------+ 8088 8089+-----------------------------------------------------------------------------------------------------------------+ 8090|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`| 8091+-----------------------------------------------------------------------------------------------------------------+ 8092 8093+--------------------------------------------------------------+ 8094|:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`| 8095+--------------------------------------------------------------+ 8096 8097+-------------------------------------------------------------------------------------------------+ 8098|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`| 8099+-------------------------------------------------------------------------------------------------+ 8100 8101 8102-Wmissing-exception-spec 8103------------------------ 8104This diagnostic is enabled by default. 8105 8106**Diagnostic text:** 8107 8108+--------------------------------------------------------------------------------------------------------------------------------+ 8109|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| 8110+--------------------------------------------------------------------------------------------------------------------------------+ 8111 8112 8113-Wmissing-field-initializers 8114---------------------------- 8115**Diagnostic text:** 8116 8117+-----------------------------------------------------------------------------------------------------------+ 8118|:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`| 8119+-----------------------------------------------------------------------------------------------------------+ 8120 8121 8122-Wmissing-format-attribute 8123-------------------------- 8124This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8125 8126-Wmissing-include-dirs 8127---------------------- 8128This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8129 8130-Wmissing-method-return-type 8131---------------------------- 8132**Diagnostic text:** 8133 8134+--------------------------------------------------------------------------------------------+ 8135|:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`| 8136+--------------------------------------------------------------------------------------------+ 8137 8138 8139-Wmissing-noescape 8140------------------ 8141This diagnostic is enabled by default. 8142 8143**Diagnostic text:** 8144 8145+----------------------------------------------------------------------------------------------------------------------------+ 8146|:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`| 8147+----------------------------------------------------------------------------------------------------------------------------+ 8148 8149 8150-Wmissing-noreturn 8151------------------ 8152**Diagnostic text:** 8153 8154+----------------------------------------------------------------------------------------+ 8155|:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`| 8156+----------------------------------------------------------------------------------------+ 8157 8158+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 8159|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`| 8160| ||:diagtext:`function`|| | 8161| |+--------------------+| | 8162| ||:diagtext:`method` || | 8163| |+--------------------+| | 8164+---------------------------+----------------------+---------------------------------------------------------------------------------------+ 8165 8166 8167-Wmissing-prototype-for-cc 8168-------------------------- 8169This diagnostic is enabled by default. 8170 8171**Diagnostic text:** 8172 8173+----------------------------------------------------------------------------------------------------------------------------------------------+ 8174|:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`| 8175+----------------------------------------------------------------------------------------------------------------------------------------------+ 8176 8177 8178-Wmissing-prototypes 8179-------------------- 8180**Diagnostic text:** 8181 8182+-------------------------------------------------------------------------------------------------+ 8183|:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`| 8184+-------------------------------------------------------------------------------------------------+ 8185 8186 8187-Wmissing-selector-name 8188----------------------- 8189This diagnostic is enabled by default. 8190 8191**Diagnostic text:** 8192 8193+---------------------------------------------------------------------------------------------------------------------------------------------+ 8194|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`| 8195+---------------------------------------------------------------------------------------------------------------------------------------------+ 8196 8197 8198-Wmissing-sysroot 8199----------------- 8200This diagnostic is enabled by default. 8201 8202**Diagnostic text:** 8203 8204+------------------------------------------------------------------------------------------------+ 8205|:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`| 8206+------------------------------------------------------------------------------------------------+ 8207 8208 8209-Wmissing-variable-declarations 8210------------------------------- 8211**Diagnostic text:** 8212 8213+---------------------------------------------------------------------------------------------------------------------+ 8214|:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`| 8215+---------------------------------------------------------------------------------------------------------------------+ 8216 8217 8218-Rmodule-build 8219-------------- 8220**Diagnostic text:** 8221 8222+---------------------------------------------------------------------------------------------------------------------+ 8223|:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`| 8224+---------------------------------------------------------------------------------------------------------------------+ 8225 8226+--------------------------------------------------------------------------------------------+ 8227|:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`| 8228+--------------------------------------------------------------------------------------------+ 8229 8230+-----------------------------------------------------------------------------------------------------------------------------------+ 8231|:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`| 8232+-----------------------------------------------------------------------------------------------------------------------------------+ 8233 8234+---------------------------------------------------------------------------------------------------------------------+ 8235|:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`| 8236+---------------------------------------------------------------------------------------------------------------------+ 8237 8238 8239-Wmodule-conflict 8240----------------- 8241This diagnostic is enabled by default. 8242 8243**Diagnostic text:** 8244 8245+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8246|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`| 8247+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8248 8249+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8250|:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`| 8251+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8252 8253 8254-Wmodule-file-config-mismatch 8255----------------------------- 8256This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error. 8257 8258**Diagnostic text:** 8259 8260+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8261|:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`| 8262+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8263 8264 8265-Wmodule-file-extension 8266----------------------- 8267This diagnostic is enabled by default. 8268 8269**Diagnostic text:** 8270 8271+----------------------------------------------------------------------------------------------------------------+ 8272|:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`| 8273+----------------------------------------------------------------------------------------------------------------+ 8274 8275 8276-Rmodule-import 8277--------------- 8278**Diagnostic text:** 8279 8280+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+ 8281|:remark:`remark:` |nbsp| :diagtext:`importing module '`:placeholder:`A`:diagtext:`'`|+---------------------------------------------------------+| |nbsp| :diagtext:`from '`:placeholder:`B`:diagtext:`'`| 8282| || || | 8283| |+---------------------------------------------------------+| | 8284| ||+-------------------------------------------------------+|| | 8285| ||| |nbsp| :diagtext:`into '`:placeholder:`D`:diagtext:`'`||| | 8286| ||+-------------------------------------------------------+|| | 8287| |+---------------------------------------------------------+| | 8288+------------------------------------------------------------------------------------+-----------------------------------------------------------+-------------------------------------------------------+ 8289 8290 8291-Wmodule-import-in-extern-c 8292--------------------------- 8293This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error. 8294 8295**Diagnostic text:** 8296 8297+-----------------------------------------------------------------------------------------------------------------------------------------------+ 8298|:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`| 8299+-----------------------------------------------------------------------------------------------------------------------------------------------+ 8300 8301 8302-Wmodules-ambiguous-internal-linkage 8303------------------------------------ 8304This diagnostic is enabled by default. 8305 8306**Diagnostic text:** 8307 8308+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 8309|:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`| 8310+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 8311 8312 8313-Wmodules-import-nested-redundant 8314--------------------------------- 8315This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error. 8316 8317**Diagnostic text:** 8318 8319+-------------------------------------------------------------------------------------------------------------------------------------+ 8320|:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`| 8321+-------------------------------------------------------------------------------------------------------------------------------------+ 8322 8323 8324-Wmost 8325------ 8326Some of the diagnostics controlled by this flag are enabled by default. 8327 8328Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wframe-address`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wint-in-bool-context`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wrange-loop-construct`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtautological-compare`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_. 8329 8330 8331-Wmove 8332------ 8333Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wreturn-std-move`_, `-Wself-move`_. 8334 8335 8336-Wmsvc-include 8337-------------- 8338Synonym for `-Wmicrosoft-include`_. 8339 8340 8341-Wmsvc-not-found 8342---------------- 8343This diagnostic is enabled by default. 8344 8345**Diagnostic text:** 8346 8347+-------------------------------------------------------------------------------------------------------------------------------------+ 8348|:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`| 8349+-------------------------------------------------------------------------------------------------------------------------------------+ 8350 8351 8352-Wmultichar 8353----------- 8354This diagnostic is enabled by default. 8355 8356**Diagnostic text:** 8357 8358+-------------------------------------------------------------------------+ 8359|:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| 8360+-------------------------------------------------------------------------+ 8361 8362 8363-Wmultiple-move-vbase 8364--------------------- 8365This diagnostic is enabled by default. 8366 8367**Diagnostic text:** 8368 8369+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8370|:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`| 8371+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8372 8373 8374-Wnarrowing 8375----------- 8376Synonym for `-Wc++11-narrowing`_. 8377 8378 8379-Wnested-anon-types 8380------------------- 8381**Diagnostic text:** 8382 8383+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 8384|:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`| 8385| ||:diagtext:`struct`|| | 8386| |+------------------+| | 8387| ||:diagtext:`union` || | 8388| |+------------------+| | 8389+---------------------------------------------------------------------------------------+--------------------+------------------------------------+ 8390 8391 8392-Wnested-externs 8393---------------- 8394This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8395 8396-Wnew-returns-null 8397------------------ 8398This diagnostic is enabled by default. 8399 8400**Diagnostic text:** 8401 8402+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 8403|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+| 8404| || || 8405| |+---------------------------------+| 8406| || |nbsp| :diagtext:`or 'noexcept'`|| 8407| |+---------------------------------+| 8408+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ 8409 8410 8411-Wnewline-eof 8412------------- 8413**Diagnostic text:** 8414 8415+----------------------------------------------------------------+ 8416|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 8417+----------------------------------------------------------------+ 8418 8419+----------------------------------------------------------------+ 8420|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 8421+----------------------------------------------------------------+ 8422 8423 8424-Wnoderef 8425--------- 8426This diagnostic is enabled by default. 8427 8428**Diagnostic text:** 8429 8430+----------------------------------------------------------------------------------------------------------------------------+ 8431|:warning:`warning:` |nbsp| :diagtext:`dereferencing` |nbsp| :placeholder:`A`:diagtext:`; was declared with a 'noderef' type`| 8432+----------------------------------------------------------------------------------------------------------------------------+ 8433 8434+-----------------------------------------------------------------------------------+ 8435|:warning:`warning:` |nbsp| :diagtext:`dereferencing expression marked as 'noderef'`| 8436+-----------------------------------------------------------------------------------+ 8437 8438+-----------------------------------------------------------------------------------------------------+ 8439|:warning:`warning:` |nbsp| :diagtext:`casting to dereferenceable pointer removes 'noderef' attribute`| 8440+-----------------------------------------------------------------------------------------------------+ 8441 8442 8443-Wnoexcept-type 8444--------------- 8445Synonym for `-Wc++17-compat-mangling`_. 8446 8447 8448-Wnon-c-typedef-for-linkage 8449--------------------------- 8450This diagnostic is enabled by default. 8451 8452**Diagnostic text:** 8453 8454+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+ 8455|:warning:`warning:` |nbsp| :diagtext:`anonymous non-C-compatible type given name for linkage purposes by` |nbsp| |+-------------------+| |nbsp| :diagtext:`declaration; add a tag name here`| 8456| ||:diagtext:`typedef`|| | 8457| |+-------------------+| | 8458| ||:diagtext:`alias` || | 8459| |+-------------------+| | 8460+-----------------------------------------------------------------------------------------------------------------+---------------------+----------------------------------------------------+ 8461 8462 8463-Wnon-gcc 8464--------- 8465Some of the diagnostics controlled by this flag are enabled by default. 8466 8467Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_. 8468 8469 8470-Wnon-literal-null-conversion 8471----------------------------- 8472This diagnostic is enabled by default. 8473 8474**Diagnostic text:** 8475 8476+--------------------------------------------------------------------------------------------------------------------------------------------+ 8477|:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`| 8478+--------------------------------------------------------------------------------------------------------------------------------------------+ 8479 8480 8481-Wnon-modular-include-in-framework-module 8482----------------------------------------- 8483**Diagnostic text:** 8484 8485+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 8486|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 8487+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 8488 8489 8490-Wnon-modular-include-in-module 8491------------------------------- 8492Also controls `-Wnon-modular-include-in-framework-module`_. 8493 8494**Diagnostic text:** 8495 8496+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8497|:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 8498+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8499 8500 8501-Wnon-pod-varargs 8502----------------- 8503This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error. 8504 8505**Diagnostic text:** 8506 8507+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 8508|:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`| 8509| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 8510| |+-----------------------+| |+-----------------------+| | 8511| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 8512| |+-----------------------+| |+-----------------------+| | 8513| | | ||:diagtext:`method` || | 8514| | | |+-----------------------+| | 8515| | | ||:diagtext:`constructor`|| | 8516| | | |+-----------------------+| | 8517+----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ 8518 8519+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 8520|:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`| 8521| ||:diagtext:`non-POD` || ||:diagtext:`function` || | 8522| |+-----------------------+| |+-----------------------+| | 8523| ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | 8524| |+-----------------------+| |+-----------------------+| | 8525| | | ||:diagtext:`method` || | 8526| | | |+-----------------------+| | 8527| | | ||:diagtext:`constructor`|| | 8528| | | |+-----------------------+| | 8529+------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ 8530 8531+----------------------------------------------------------------------------------------------------------+ 8532|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`| 8533+----------------------------------------------------------------------------------------------------------+ 8534 8535+--------------------------------------------------------------------------------------------------------------------------+ 8536|:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`| 8537+--------------------------------------------------------------------------------------------------------------------------+ 8538 8539 8540-Wnon-power-of-two-alignment 8541---------------------------- 8542This diagnostic is enabled by default. 8543 8544**Diagnostic text:** 8545 8546+------------------------------------------------------------------------------+ 8547|:warning:`warning:` |nbsp| :diagtext:`requested alignment is not a power of 2`| 8548+------------------------------------------------------------------------------+ 8549 8550 8551-Wnon-virtual-dtor 8552------------------ 8553**Diagnostic text:** 8554 8555+---------------------------------------------------------------------------------------------------------------+ 8556|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`| 8557+---------------------------------------------------------------------------------------------------------------+ 8558 8559 8560-Wnonnull 8561--------- 8562This diagnostic is enabled by default. 8563 8564**Diagnostic text:** 8565 8566+------------------------------------------------------------------------------------------------+ 8567|:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`| 8568+------------------------------------------------------------------------------------------------+ 8569 8570+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 8571|:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`| 8572| ||:diagtext:`function`|| | 8573| |+--------------------+| | 8574| ||:diagtext:`method` || | 8575| |+--------------------+| | 8576+-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ 8577 8578 8579-Wnonportable-cfstrings 8580----------------------- 8581This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 8582 8583-Wnonportable-include-path 8584-------------------------- 8585This diagnostic is enabled by default. 8586 8587**Diagnostic text:** 8588 8589+------------------------------------------------------------------------------------------------------------------------------------------------------+ 8590|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 8591+------------------------------------------------------------------------------------------------------------------------------------------------------+ 8592 8593 8594-Wnonportable-system-include-path 8595--------------------------------- 8596**Diagnostic text:** 8597 8598+------------------------------------------------------------------------------------------------------------------------------------------------------+ 8599|:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| 8600+------------------------------------------------------------------------------------------------------------------------------------------------------+ 8601 8602 8603-Wnonportable-vector-initialization 8604----------------------------------- 8605This diagnostic is enabled by default. 8606 8607**Diagnostic text:** 8608 8609+---------------------------------------------------------------------------------------------------------------------+ 8610|:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`| 8611+---------------------------------------------------------------------------------------------------------------------+ 8612 8613 8614-Wnontrivial-memaccess 8615---------------------- 8616This diagnostic is enabled by default. 8617 8618**Diagnostic text:** 8619 8620+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 8621|:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to record` |nbsp| :placeholder:`C` |nbsp| :diagtext:`that is not trivial to` |nbsp| |+----------------------------------------+| 8622| ||:diagtext:`destination for` || ||:diagtext:`primitive-default-initialize`|| 8623| |+-----------------------------+| |+----------------------------------------+| 8624| ||:diagtext:`source of` || ||:diagtext:`primitive-copy` || 8625| |+-----------------------------+| |+----------------------------------------+| 8626| ||:diagtext:`first operand of` || | | 8627| |+-----------------------------+| | | 8628| ||:diagtext:`second operand of`|| | | 8629| |+-----------------------------+| | | 8630+---------------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+ 8631 8632 8633-Wnsconsumed-mismatch 8634--------------------- 8635This diagnostic is enabled by default. 8636 8637**Diagnostic text:** 8638 8639+---------------------------------------------------------------------------------------------------------------+ 8640|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`| 8641+---------------------------------------------------------------------------------------------------------------+ 8642 8643 8644-Wnsreturns-mismatch 8645-------------------- 8646This diagnostic is enabled by default. 8647 8648**Diagnostic text:** 8649 8650+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 8651|:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`| 8652| ||:diagtext:`not\_retained`|| | 8653| |+-------------------------+| | 8654| ||:diagtext:`retained` || | 8655| |+-------------------------+| | 8656+-------------------------------------------------------------------------------------+---------------------------+------------------------------+ 8657 8658 8659-Wnull-arithmetic 8660----------------- 8661This diagnostic is enabled by default. 8662 8663**Diagnostic text:** 8664 8665+--------------------------------------------------------------------------+ 8666|:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`| 8667+--------------------------------------------------------------------------+ 8668 8669+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 8670|:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+| 8671| ||+----------------------------------------------------------+|| 8672| |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`||| 8673| ||+----------------------------------------------------------+|| 8674| |+------------------------------------------------------------+| 8675| ||+----------------------------------------------------------+|| 8676| |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`||| 8677| ||+----------------------------------------------------------+|| 8678| |+------------------------------------------------------------+| 8679+--------------------------------------------------------------------------------------+--------------------------------------------------------------+ 8680 8681 8682-Wnull-character 8683---------------- 8684This diagnostic is enabled by default. 8685 8686**Diagnostic text:** 8687 8688+-----------------------------------------------------------------------------+--------------------+---------------------------+ 8689|:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`| 8690| ||:diagtext:`char` || | 8691| |+------------------+| | 8692| ||:diagtext:`string`|| | 8693| |+------------------+| | 8694+-----------------------------------------------------------------------------+--------------------+---------------------------+ 8695 8696+-------------------------------------------------------------+ 8697|:warning:`warning:` |nbsp| :diagtext:`null character ignored`| 8698+-------------------------------------------------------------+ 8699 8700 8701-Wnull-conversion 8702----------------- 8703This diagnostic is enabled by default. 8704 8705**Diagnostic text:** 8706 8707+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 8708|:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`| 8709| ||:diagtext:`NULL` || | 8710| |+-------------------+| | 8711| ||:diagtext:`nullptr`|| | 8712| |+-------------------+| | 8713+---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ 8714 8715 8716-Wnull-dereference 8717------------------ 8718This diagnostic is enabled by default. 8719 8720**Diagnostic text:** 8721 8722+------------------------------------------------------------------------------------------------------------+ 8723|:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`| 8724+------------------------------------------------------------------------------------------------------------+ 8725 8726+---------------------------------------------------------------------------------------------------------+ 8727|:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`| 8728+---------------------------------------------------------------------------------------------------------+ 8729 8730 8731-Wnull-pointer-arithmetic 8732------------------------- 8733**Diagnostic text:** 8734 8735+--------------------------------------------------------------------------------------------------------------------------------+ 8736|:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`| 8737+--------------------------------------------------------------------------------------------------------------------------------+ 8738 8739+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 8740|:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+| 8741| || || 8742| |+--------------------------------------------+| 8743| || |nbsp| :diagtext:`if the offset is nonzero`|| 8744| |+--------------------------------------------+| 8745+-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ 8746 8747 8748-Wnullability 8749------------- 8750This diagnostic is enabled by default. 8751 8752**Diagnostic text:** 8753 8754+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8755|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 8756+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8757 8758+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8759|:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 8760+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8761 8762+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8763|:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| 8764+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8765 8766+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8767|:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`| 8768+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8769 8770+----------------------------------------------------------------------------------------------+ 8771|:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`| 8772+----------------------------------------------------------------------------------------------+ 8773 8774 8775-Wnullability-completeness 8776-------------------------- 8777This diagnostic is enabled by default. 8778 8779Also controls `-Wnullability-completeness-on-arrays`_. 8780 8781**Diagnostic text:** 8782 8783+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 8784|:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 8785| ||:diagtext:`pointer` || | 8786| |+--------------------------+| | 8787| ||:diagtext:`block pointer` || | 8788| |+--------------------------+| | 8789| ||:diagtext:`member pointer`|| | 8790| |+--------------------------+| | 8791+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ 8792 8793 8794-Wnullability-completeness-on-arrays 8795------------------------------------ 8796This diagnostic is enabled by default. 8797 8798**Diagnostic text:** 8799 8800+----------------------------------------------------------------------------------------------------------------------------------------------+ 8801|:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| 8802+----------------------------------------------------------------------------------------------------------------------------------------------+ 8803 8804 8805-Wnullability-declspec 8806---------------------- 8807This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error. 8808 8809**Diagnostic text:** 8810 8811+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 8812|:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`| 8813| ||:diagtext:`pointer` || | 8814| |+-----------------------------------+| | 8815| ||:diagtext:`block pointer` || | 8816| |+-----------------------------------+| | 8817| ||:diagtext:`member pointer` || | 8818| |+-----------------------------------+| | 8819| ||:diagtext:`function pointer` || | 8820| |+-----------------------------------+| | 8821| ||:diagtext:`member function pointer`|| | 8822| |+-----------------------------------+| | 8823+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ 8824 8825 8826-Wnullability-extension 8827----------------------- 8828**Diagnostic text:** 8829 8830+---------------------------------------------------------------------------------------------------------------------------------+ 8831|:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`| 8832+---------------------------------------------------------------------------------------------------------------------------------+ 8833 8834 8835-Wnullability-inferred-on-nested-type 8836------------------------------------- 8837This diagnostic is enabled by default. 8838 8839**Diagnostic text:** 8840 8841+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 8842|:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`| 8843| ||:diagtext:`array` || | 8844| |+---------------------+| | 8845| ||:diagtext:`reference`|| | 8846| |+---------------------+| | 8847+--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ 8848 8849 8850-Wnullable-to-nonnull-conversion 8851-------------------------------- 8852**Diagnostic text:** 8853 8854+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8855|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`| 8856+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8857 8858 8859-Wobjc-autosynthesis-property-ivar-name-match 8860--------------------------------------------- 8861This diagnostic is enabled by default. 8862 8863**Diagnostic text:** 8864 8865+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 8866|:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`| 8867| || || | 8868| |+-----------------------+| | 8869| ||:diagtext:`synthesized`|| | 8870| |+-----------------------+| | 8871+---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ 8872 8873 8874-Wobjc-bool-constant-conversion 8875------------------------------- 8876This diagnostic is enabled by default. 8877 8878**Diagnostic text:** 8879 8880+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8881|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from constant value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'; the only well defined values for 'BOOL' are YES and NO`| 8882+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8883 8884 8885-Wobjc-boxing 8886------------- 8887This diagnostic is enabled by default. 8888 8889**Diagnostic text:** 8890 8891+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8892|:warning:`warning:` |nbsp| :diagtext:`string is ill-formed as UTF-8 and will become a null` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when boxed`| 8893+-------------------------------------------------------------------------------------------------------------------------------------------------+ 8894 8895 8896-Wobjc-circular-container 8897------------------------- 8898This diagnostic is enabled by default. 8899 8900**Diagnostic text:** 8901 8902+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8903|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`might cause circular dependency in container`| 8904+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8905 8906 8907-Wobjc-cocoa-api 8908---------------- 8909Synonym for `-Wobjc-redundant-api-use`_. 8910 8911 8912-Wobjc-designated-initializers 8913------------------------------ 8914This diagnostic is enabled by default. 8915 8916**Diagnostic text:** 8917 8918+-----------------------------------------------------------------------------------------------------------------------------------+ 8919|:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`| 8920+-----------------------------------------------------------------------------------------------------------------------------------+ 8921 8922+--------------------------------------------------------------------------------------------------+ 8923|:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`| 8924+--------------------------------------------------------------------------------------------------+ 8925 8926+--------------------------------------------------------------------------------------------------------------------+ 8927|:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`| 8928+--------------------------------------------------------------------------------------------------------------------+ 8929 8930+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8931|:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| 8932+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8933 8934+-----------------------------------------------------------------------------------------------------------+ 8935|:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`| 8936+-----------------------------------------------------------------------------------------------------------+ 8937 8938+----------------------------------------------------------------------------------------------------------+ 8939|:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`| 8940+----------------------------------------------------------------------------------------------------------+ 8941 8942 8943-Wobjc-flexible-array 8944--------------------- 8945This diagnostic is enabled by default. 8946 8947**Diagnostic text:** 8948 8949+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8950|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`| 8951+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8952 8953+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8954|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`| 8955+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8956 8957 8958-Wobjc-forward-class-redefinition 8959--------------------------------- 8960This diagnostic is enabled by default. 8961 8962**Diagnostic text:** 8963 8964+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8965|:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`| 8966+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 8967 8968 8969-Wobjc-interface-ivars 8970---------------------- 8971**Diagnostic text:** 8972 8973+-------------------------------------------------------------------------------------------------------+ 8974|:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`| 8975+-------------------------------------------------------------------------------------------------------+ 8976 8977 8978-Wobjc-literal-compare 8979---------------------- 8980This diagnostic is enabled by default. 8981 8982Also controls `-Wobjc-string-compare`_. 8983 8984**Diagnostic text:** 8985 8986+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 8987|:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`| 8988| ||:diagtext:`an array literal` || | 8989| |+--------------------------------+| | 8990| ||:diagtext:`a dictionary literal`|| | 8991| |+--------------------------------+| | 8992| ||:diagtext:`a numeric literal` || | 8993| |+--------------------------------+| | 8994| ||:diagtext:`a boxed expression` || | 8995| |+--------------------------------+| | 8996| || || | 8997| |+--------------------------------+| | 8998+-------------------------------------------------------------------+----------------------------------+------------------------------------------+ 8999 9000 9001-Wobjc-literal-conversion 9002------------------------- 9003This diagnostic is enabled by default. 9004 9005**Diagnostic text:** 9006 9007+-------------------------------------------------------------------------------------------------------------------------+ 9008|:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`| 9009+-------------------------------------------------------------------------------------------------------------------------+ 9010 9011+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 9012|:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`| 9013| ||:diagtext:`array element type` || | 9014| |+---------------------------------+| | 9015| ||:diagtext:`dictionary key type` || | 9016| |+---------------------------------+| | 9017| ||:diagtext:`dictionary value type`|| | 9018| |+---------------------------------+| | 9019+-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ 9020 9021 9022-Wobjc-macro-redefinition 9023------------------------- 9024This diagnostic is enabled by default. 9025 9026**Diagnostic text:** 9027 9028+-------------------------------------------------------------------------------------------+ 9029|:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`| 9030+-------------------------------------------------------------------------------------------+ 9031 9032 9033-Wobjc-messaging-id 9034------------------- 9035**Diagnostic text:** 9036 9037+---------------------------------------------------------------+ 9038|:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`| 9039+---------------------------------------------------------------+ 9040 9041 9042-Wobjc-method-access 9043-------------------- 9044This diagnostic is enabled by default. 9045 9046**Diagnostic text:** 9047 9048+---------------------------------------------------------------------------------------------------------------------------------------+ 9049|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 9050+---------------------------------------------------------------------------------------------------------------------------------------+ 9051 9052+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9053|:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 9054+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9055 9056+------------------------------------------------------------------------------------------------------------------------------------------+ 9057|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| 9058+------------------------------------------------------------------------------------------------------------------------------------------+ 9059 9060+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9061|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| 9062+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9063 9064+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 9065|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`| 9066+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 9067 9068+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 9069|:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`| 9070+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 9071 9072 9073-Wobjc-missing-property-synthesis 9074--------------------------------- 9075**Diagnostic text:** 9076 9077+------------------------------------------------------------------------------------------------------------------+ 9078|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`| 9079+------------------------------------------------------------------------------------------------------------------+ 9080 9081 9082-Wobjc-missing-super-calls 9083-------------------------- 9084This diagnostic is enabled by default. 9085 9086**Diagnostic text:** 9087 9088+-------------------------------------------------------------------------------------------------------------------+ 9089|:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`| 9090+-------------------------------------------------------------------------------------------------------------------+ 9091 9092 9093-Wobjc-multiple-method-names 9094---------------------------- 9095This diagnostic is enabled by default. 9096 9097**Diagnostic text:** 9098 9099+--------------------------------------------------------------------------------------------------------------+ 9100|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 9101+--------------------------------------------------------------------------------------------------------------+ 9102 9103 9104-Wobjc-noncopy-retain-block-property 9105------------------------------------ 9106This diagnostic is enabled by default. 9107 9108**Diagnostic text:** 9109 9110+--------------------------------------------------------------------------------------------------------------------+ 9111|:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`| 9112+--------------------------------------------------------------------------------------------------------------------+ 9113 9114 9115-Wobjc-nonunified-exceptions 9116---------------------------- 9117This diagnostic is enabled by default. 9118 9119**Diagnostic text:** 9120 9121+-----------------------------------------------------------------------------------------------------------------------------+ 9122|:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`| 9123+-----------------------------------------------------------------------------------------------------------------------------+ 9124 9125 9126-Wobjc-property-assign-on-object-type 9127------------------------------------- 9128**Diagnostic text:** 9129 9130+--------------------------------------------------------------------------------------------------------------------------------------------+ 9131|:warning:`warning:` |nbsp| :diagtext:`'assign' property of object type may become a dangling reference; consider using 'unsafe\_unretained'`| 9132+--------------------------------------------------------------------------------------------------------------------------------------------+ 9133 9134 9135-Wobjc-property-implementation 9136------------------------------ 9137This diagnostic is enabled by default. 9138 9139**Diagnostic text:** 9140 9141+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9142|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`| 9143+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9144 9145+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9146|:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 9147+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9148 9149+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9150|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`| 9151+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9152 9153+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9154|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| 9155+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9156 9157 9158-Wobjc-property-implicit-mismatch 9159--------------------------------- 9160This diagnostic is enabled by default. 9161 9162**Diagnostic text:** 9163 9164+---------------------------------------------------------------------------------------------------------------------------------------+ 9165|:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`| 9166+---------------------------------------------------------------------------------------------------------------------------------------+ 9167 9168 9169-Wobjc-property-matches-cocoa-ownership-rule 9170-------------------------------------------- 9171This diagnostic is enabled by default. 9172 9173**Diagnostic text:** 9174 9175+-------------------------------------------------------------------------------------------------------------+ 9176|:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`| 9177+-------------------------------------------------------------------------------------------------------------+ 9178 9179 9180-Wobjc-property-no-attribute 9181---------------------------- 9182This diagnostic is enabled by default. 9183 9184**Diagnostic text:** 9185 9186+-----------------------------------------------------------------------------------------------------+ 9187|:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`| 9188+-----------------------------------------------------------------------------------------------------+ 9189 9190+--------------------------------------------------------------------------------------------------------------------+ 9191|:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`| 9192+--------------------------------------------------------------------------------------------------------------------+ 9193 9194 9195-Wobjc-property-synthesis 9196------------------------- 9197This diagnostic is enabled by default. 9198 9199**Diagnostic text:** 9200 9201+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9202|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`| 9203+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9204 9205+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9206|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`| 9207+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9208 9209+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9210|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`| 9211+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9212 9213 9214-Wobjc-protocol-method-implementation 9215------------------------------------- 9216This diagnostic is enabled by default. 9217 9218**Diagnostic text:** 9219 9220+----------------------------------------------------------------------------------------------------------------------------+ 9221|:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`| 9222+----------------------------------------------------------------------------------------------------------------------------+ 9223 9224 9225-Wobjc-protocol-property-synthesis 9226---------------------------------- 9227This diagnostic is enabled by default. 9228 9229**Diagnostic text:** 9230 9231+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9232|:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`| 9233+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9234 9235 9236-Wobjc-protocol-qualifiers 9237-------------------------- 9238This diagnostic is enabled by default. 9239 9240**Diagnostic text:** 9241 9242+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9243|:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`| 9244+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9245 9246 9247-Wobjc-readonly-with-setter-property 9248------------------------------------ 9249This diagnostic is enabled by default. 9250 9251**Diagnostic text:** 9252 9253+-----------------------------------------------------------------------------------------+ 9254|:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`| 9255+-----------------------------------------------------------------------------------------+ 9256 9257 9258-Wobjc-redundant-api-use 9259------------------------ 9260Synonym for `-Wobjc-redundant-literal-use`_. 9261 9262 9263-Wobjc-redundant-literal-use 9264---------------------------- 9265This diagnostic is enabled by default. 9266 9267**Diagnostic text:** 9268 9269+-------------------------------------------------------------------------------------------------------------------+ 9270|:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`| 9271+-------------------------------------------------------------------------------------------------------------------+ 9272 9273 9274-Wobjc-root-class 9275----------------- 9276This diagnostic is enabled by default. 9277 9278**Diagnostic text:** 9279 9280+-------------------------------------------------------------------------------------------------------------------------------+ 9281|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`| 9282+-------------------------------------------------------------------------------------------------------------------------------+ 9283 9284 9285-Wobjc-signed-char-bool 9286----------------------- 9287Some of the diagnostics controlled by this flag are enabled by default. 9288 9289Controls `-Wobjc-bool-constant-conversion`_, `-Wobjc-signed-char-bool-implicit-float-conversion`_, `-Wobjc-signed-char-bool-implicit-int-conversion`_, `-Wtautological-objc-bool-compare`_. 9290 9291 9292-Wobjc-signed-char-bool-implicit-float-conversion 9293------------------------------------------------- 9294This diagnostic is enabled by default. 9295 9296**Diagnostic text:** 9297 9298+----------------------------------------------------------------------------------------------------------------------------------------+ 9299|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from floating-point type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`| 9300+----------------------------------------------------------------------------------------------------------------------------------------+ 9301 9302 9303-Wobjc-signed-char-bool-implicit-int-conversion 9304----------------------------------------------- 9305**Diagnostic text:** 9306 9307+----------------------------------------------------------------------------------------------------------------------------------+ 9308|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from integral type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to 'BOOL'`| 9309+----------------------------------------------------------------------------------------------------------------------------------+ 9310 9311 9312-Wobjc-string-compare 9313--------------------- 9314This diagnostic is enabled by default. 9315 9316**Diagnostic text:** 9317 9318+---------------------------------------------------------------------------------------------------+ 9319|:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`| 9320+---------------------------------------------------------------------------------------------------+ 9321 9322 9323-Wobjc-string-concatenation 9324--------------------------- 9325This diagnostic is enabled by default. 9326 9327**Diagnostic text:** 9328 9329+-------------------------------------------------------------------------------------------------------------------------+ 9330|:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`| 9331+-------------------------------------------------------------------------------------------------------------------------+ 9332 9333 9334-Wobjc-unsafe-perform-selector 9335------------------------------ 9336This diagnostic is enabled by default. 9337 9338**Diagnostic text:** 9339 9340+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 9341|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`| 9342| ||:diagtext:`struct`|| | 9343| |+------------------+| | 9344| ||:diagtext:`union` || | 9345| |+------------------+| | 9346| ||:diagtext:`vector`|| | 9347| |+------------------+| | 9348+-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ 9349 9350 9351-Wodr 9352----- 9353This diagnostic is enabled by default. 9354 9355**Diagnostic text:** 9356 9357+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9358|:warning:`warning:` |nbsp| :diagtext:`template parameter lists have a different number of parameters (`:placeholder:`A` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`B`:diagtext:`)`| 9359+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9360 9361+------------------------------------------------------------------------------------------------------------+ 9362|:warning:`warning:` |nbsp| :diagtext:`template parameter has different kinds in different translation units`| 9363+------------------------------------------------------------------------------------------------------------+ 9364 9365+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9366|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9367+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9368 9369+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9370|:warning:`warning:` |nbsp| :diagtext:`external function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9371+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9372 9373+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9374|:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9375+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9376 9377+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9378|:warning:`warning:` |nbsp| :diagtext:`non-type template parameter declared with incompatible types in different translation units (`:placeholder:`A` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`B`:diagtext:`)`| 9379+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9380 9381+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9382|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a different number of parameters in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 9383| ||:diagtext:`class` || | 9384| |+--------------------+| | 9385| ||:diagtext:`instance`|| | 9386| |+--------------------+| | 9387+---------------------------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9388 9389+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9390|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has a parameter with a different types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 9391| ||:diagtext:`class` || | 9392| |+--------------------+| | 9393| ||:diagtext:`instance`|| | 9394| |+--------------------+| | 9395+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9396 9397+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9398|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has incompatible result types in different translation units (`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| 9399| ||:diagtext:`class` || | 9400| |+--------------------+| | 9401| ||:diagtext:`instance`|| | 9402| |+--------------------+| | 9403+---------------------------+----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9404 9405+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+ 9406|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :diagtext:`method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is variadic in one translation unit and not variadic in another`| 9407| ||:diagtext:`class` || | 9408| |+--------------------+| | 9409| ||:diagtext:`instance`|| | 9410| |+--------------------+| | 9411+---------------------------+----------------------+-------------------------------------------------------------------------------------------------------------------------------------+ 9412 9413+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+ 9414|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented with` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in one translation but` |nbsp| |+-----------------------+| |nbsp| :diagtext:`in another translation unit`| 9415| ||:diagtext:`@synthesize`|| ||:diagtext:`@dynamic` || | 9416| |+-----------------------+| |+-----------------------+| | 9417| ||:diagtext:`@dynamic` || ||:diagtext:`@synthesize`|| | 9418| |+-----------------------+| |+-----------------------+| | 9419+----------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------+-------------------------+-----------------------------------------------+ 9420 9421+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9422|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9423+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9424 9425+---------------------------------------------------------------------------------------------------------------------+ 9426|:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible superclasses`| 9427+---------------------------------------------------------------------------------------------------------------------+ 9428 9429+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9430|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is synthesized to different ivars in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9431+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9432 9433+------------------------------------------------------------------------------------+-------------------+----------------------------------+ 9434|:warning:`warning:` |nbsp| :diagtext:`parameter kind mismatch; parameter is` |nbsp| |+-----------------+| |nbsp| :diagtext:`parameter pack`| 9435| ||:diagtext:`not a`|| | 9436| |+-----------------+| | 9437| ||:diagtext:`a` || | 9438| |+-----------------+| | 9439+------------------------------------------------------------------------------------+-------------------+----------------------------------+ 9440 9441+--------------------------------------------------------------------------------------------------------------------------------------------------+ 9442|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`| 9443+--------------------------------------------------------------------------------------------------------------------------------------------------+ 9444 9445+-----------------------------------------------------------------------------------------------------------------------------------------+ 9446|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple translation units`| 9447+-----------------------------------------------------------------------------------------------------------------------------------------+ 9448 9449+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9450|:warning:`warning:` |nbsp| :diagtext:`external variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared with incompatible types in different translation units (`:placeholder:`B` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`C`:diagtext:`)`| 9451+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9452 9453 9454-Wold-style-cast 9455---------------- 9456**Diagnostic text:** 9457 9458+------------------------------------------------------------+ 9459|:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`| 9460+------------------------------------------------------------+ 9461 9462 9463-Wold-style-definition 9464---------------------- 9465This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9466 9467-Wopencl-unsupported-rgba 9468------------------------- 9469This diagnostic is enabled by default. 9470 9471**Diagnostic text:** 9472 9473+----------------------------------------------------------------------------------------------------------------------------+ 9474|:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`| 9475+----------------------------------------------------------------------------------------------------------------------------+ 9476 9477 9478-Wopenmp 9479-------- 9480Some of the diagnostics controlled by this flag are enabled by default. 9481 9482Controls `-Wopenmp-clauses`_, `-Wopenmp-loop-form`_, `-Wopenmp-mapping`_, `-Wopenmp-target`_, `-Wsource-uses-openmp`_. 9483 9484 9485-Wopenmp-clauses 9486---------------- 9487This diagnostic is enabled by default. 9488 9489**Diagnostic text:** 9490 9491+-------------------------------------------------------------------------------------------------------------------------+ 9492|:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`| 9493+-------------------------------------------------------------------------------------------------------------------------+ 9494 9495+----------------------------------------------------------------------------------------------------------------------------------------------------+ 9496|:warning:`warning:` |nbsp| :diagtext:`allocator with the 'thread' trait access has unspecified behavior on '`:placeholder:`A`:diagtext:`' directive`| 9497+----------------------------------------------------------------------------------------------------------------------------------------------------+ 9498 9499+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9500|:warning:`warning:` |nbsp| :diagtext:`the context property '`:placeholder:`A`:diagtext:`' is not valid for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`| 9501+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9502 9503+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9504|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in the context set '`:placeholder:`B`:diagtext:`' cannot have a score ('`:placeholder:`C`:diagtext:`'); score ignored`| 9505+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9506 9507+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9508|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' is not valid for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`| 9509+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9510 9511+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9512|:warning:`warning:` |nbsp| :diagtext:`the context selector '`:placeholder:`A`:diagtext:`' in context set '`:placeholder:`B`:diagtext:`' requires a context property defined in parentheses; selector ignored`| 9513+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9514 9515+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 9516|:warning:`warning:` |nbsp| :diagtext:`the context` |nbsp| |+--------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' was used already in the same 'omp declare variant' directive;` |nbsp| |+--------------------+| |nbsp| :diagtext:`ignored`| 9517| ||:diagtext:`set` || ||:diagtext:`set` || | 9518| |+--------------------+| |+--------------------+| | 9519| ||:diagtext:`selector`|| ||:diagtext:`selector`|| | 9520| |+--------------------+| |+--------------------+| | 9521| ||:diagtext:`property`|| ||:diagtext:`property`|| | 9522| |+--------------------+| |+--------------------+| | 9523+----------------------------------------------------------+----------------------+------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 9524 9525+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9526|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context property for the context selector '`:placeholder:`B`:diagtext:`' and the context set '`:placeholder:`C`:diagtext:`'; property ignored`| 9527+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9528 9529+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9530|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context selector for the context set '`:placeholder:`B`:diagtext:`'; selector ignored`| 9531+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9532 9533+--------------------------------------------------------------------------------------------------------------------------------------+ 9534|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid context set in a \`declare variant\`; set ignored`| 9535+--------------------------------------------------------------------------------------------------------------------------------------+ 9536 9537+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9538|:warning:`warning:` |nbsp| :diagtext:`expected '`:placeholder:`A`:diagtext:`' after the` |nbsp| :placeholder:`B`:diagtext:`; '`:placeholder:`A`:diagtext:`' assumed`| 9539+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9540 9541+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+ 9542|:warning:`warning:` |nbsp| :diagtext:`expected identifier or string literal describing a context` |nbsp| |+--------------------+|:diagtext:`;` |nbsp| |+--------------------+| |nbsp| :diagtext:`skipped`| 9543| ||:diagtext:`set` || ||:diagtext:`set` || | 9544| |+--------------------+| |+--------------------+| | 9545| ||:diagtext:`selector`|| ||:diagtext:`selector`|| | 9546| |+--------------------+| |+--------------------+| | 9547| ||:diagtext:`property`|| ||:diagtext:`property`|| | 9548| |+--------------------+| |+--------------------+| | 9549+---------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+---------------------------+ 9550 9551+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 9552|:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`| 9553| || || | 9554| |+-------------------------------------------------+| | 9555| ||:diagtext:`and other variables in clause` |nbsp| || | 9556| |+-------------------------------------------------+| | 9557+---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ 9558 9559+---------------------------------------------------------------------------------------+ 9560|:warning:`warning:` |nbsp| :diagtext:`more than one 'device\_type' clause is specified`| 9561+---------------------------------------------------------------------------------------+ 9562 9563+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+ 9564|:warning:`warning:` |nbsp| :diagtext:`allocate directive specifies` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`allocator while previously used` |nbsp| |+--------------------------------------------+| 9565| ||:diagtext:`default` || ||:diagtext:`default` || 9566| |+--------------------------------------------+| |+--------------------------------------------+| 9567| ||+------------------------------------------+|| ||+------------------------------------------+|| 9568| |||:diagtext:`'`:placeholder:`B`:diagtext:`'`||| |||:diagtext:`'`:placeholder:`D`:diagtext:`'`||| 9569| ||+------------------------------------------+|| ||+------------------------------------------+|| 9570| |+--------------------------------------------+| |+--------------------------------------------+| 9571+---------------------------------------------------------------------------+----------------------------------------------+-----------------------------------------------------------+----------------------------------------------+ 9572 9573 9574-Wopenmp-loop-form 9575------------------ 9576This diagnostic is enabled by default. 9577 9578**Diagnostic text:** 9579 9580+-----------------------------------------------------------------------------------------------------------------------------------------+ 9581|:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`| 9582+-----------------------------------------------------------------------------------------------------------------------------------------+ 9583 9584+-----------------------------------------------------------------------------------------------------------------------------+ 9585|:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`| 9586+-----------------------------------------------------------------------------------------------------------------------------+ 9587 9588 9589-Wopenmp-mapping 9590---------------- 9591This diagnostic is enabled by default. 9592 9593**Diagnostic text:** 9594 9595+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9596|:warning:`warning:` |nbsp| :diagtext:`Type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not trivially copyable and not guaranteed to be mapped correctly`| 9597+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 9598 9599 9600-Wopenmp-target 9601--------------- 9602This diagnostic is enabled by default. 9603 9604Also controls `-Wopenmp-mapping`_. 9605 9606**Diagnostic text:** 9607 9608+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9609|:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`| 9610+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9611 9612+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9613|:warning:`warning:` |nbsp| :diagtext:`No library '`:placeholder:`A`:diagtext:`' found in the default clang lib directory or in LIBRARY\_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.`| 9614+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9615 9616+-----------------------------------------------------------------------------------------------------------------------------+ 9617|:warning:`warning:` |nbsp| :diagtext:`declaration marked as declare target after first use, it may lead to incorrect results`| 9618+-----------------------------------------------------------------------------------------------------------------------------+ 9619 9620+-----------------------------------------------------------------------------------------------+ 9621|:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`| 9622+-----------------------------------------------------------------------------------------------+ 9623 9624 9625-Woption-ignored 9626---------------- 9627This diagnostic is enabled by default. 9628 9629**Diagnostic text:** 9630 9631+------------------------------------------------------------------------------------------------------------------------------------------+ 9632|:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`| 9633+------------------------------------------------------------------------------------------------------------------------------------------+ 9634 9635+-------------------------------------------------------------------------------------------------------------------------------+ 9636|:warning:`warning:` |nbsp| :diagtext:`The '`:placeholder:`A`:diagtext:`' architecture does not support -moutline; flag ignored`| 9637+-------------------------------------------------------------------------------------------------------------------------------+ 9638 9639+----------------------------------------------------------------------------------------------------------------------------+ 9640|:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`| 9641+----------------------------------------------------------------------------------------------------------------------------+ 9642 9643+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 9644|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 9645| || || | 9646| |+-----------------------------------------+| | 9647| ||:diagtext:`the implicit usage of` |nbsp| || | 9648| |+-----------------------------------------+| | 9649+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 9650 9651+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 9652|:warning:`warning:` |nbsp| :diagtext:`ignoring '`:placeholder:`A`:diagtext:`' option as it cannot be used with` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`-mabicalls and the N64 ABI`| 9653| ||:diagtext:`implicit usage of`|| | 9654| |+-----------------------------+| | 9655| || || | 9656| |+-----------------------------+| | 9657+-----------------------------------------------------------------------------------------------------------------------+-------------------------------+----------------------------------------------+ 9658 9659+-----------------------------------------------------------------------------------------------------------+ 9660|:warning:`warning:` |nbsp| :diagtext:`ignoring '-msmall-data-limit=' with -mcmodel=large for -fpic or RV64`| 9661+-----------------------------------------------------------------------------------------------------------+ 9662 9663+----------------------------------------------------------------------------------------------+ 9664|:warning:`warning:` |nbsp| :diagtext:`auto-vectorization requires HVX, use -mhvx to enable it`| 9665+----------------------------------------------------------------------------------------------+ 9666 9667 9668-Wordered-compare-function-pointers 9669----------------------------------- 9670This diagnostic is enabled by default. 9671 9672**Diagnostic text:** 9673 9674+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9675|:warning:`warning:` |nbsp| :diagtext:`ordered comparison of function pointers (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 9676+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9677 9678 9679-Wout-of-line-declaration 9680------------------------- 9681This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error. 9682 9683**Diagnostic text:** 9684 9685+-------------------------------------------------------------------------------------------+ 9686|:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`| 9687+-------------------------------------------------------------------------------------------+ 9688 9689 9690-Wout-of-scope-function 9691----------------------- 9692This diagnostic is enabled by default. 9693 9694**Diagnostic text:** 9695 9696+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 9697|:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+| 9698| || || 9699| |+-------------------------------------------------------------------------------------+| 9700| || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`|| 9701| |+-------------------------------------------------------------------------------------+| 9702+-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ 9703 9704 9705-Wover-aligned 9706-------------- 9707**Diagnostic text:** 9708 9709+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9710|:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`| 9711+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9712 9713 9714-Woverflow 9715---------- 9716This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 9717 9718-Woverlength-strings 9719-------------------- 9720**Diagnostic text:** 9721 9722+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 9723|:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`| 9724| ||:diagtext:`C90` || | 9725| |+-------------------+| | 9726| ||:diagtext:`ISO C99`|| | 9727| |+-------------------+| | 9728| ||:diagtext:`C++` || | 9729| |+-------------------+| | 9730+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ 9731 9732 9733-Woverloaded-shift-op-parentheses 9734--------------------------------- 9735This diagnostic is enabled by default. 9736 9737**Diagnostic text:** 9738 9739+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 9740|:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`| 9741| ||:diagtext:`>>`|| | 9742| |+--------------+| | 9743| ||:diagtext:`<<`|| | 9744| |+--------------+| | 9745+------------------------------------------------------------------+----------------+------------------------------------------------------------------+ 9746 9747 9748-Woverloaded-virtual 9749-------------------- 9750**Diagnostic text:** 9751 9752+-----------------------------------------------------------------------------------------------+-----------------------+ 9753|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+| 9754| ||:diagtext:`function` || 9755| |+---------------------+| 9756| ||:diagtext:`functions`|| 9757| |+---------------------+| 9758+-----------------------------------------------------------------------------------------------+-----------------------+ 9759 9760 9761-Woverride-init 9762--------------- 9763Synonym for `-Winitializer-overrides`_. 9764 9765 9766-Woverride-module 9767----------------- 9768This diagnostic is enabled by default. 9769 9770**Diagnostic text:** 9771 9772+-------------------------------------------------------------------------------------------------------+ 9773|:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`| 9774+-------------------------------------------------------------------------------------------------------+ 9775 9776 9777-Woverriding-method-mismatch 9778---------------------------- 9779**Diagnostic text:** 9780 9781+-------------------------------------------------------------------------------------------------------------------------------------------+ 9782|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`| 9783+-------------------------------------------------------------------------------------------------------------------------------------------+ 9784 9785+------------------------------------------------------------------------------------------------------------+ 9786|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`| 9787+------------------------------------------------------------------------------------------------------------+ 9788 9789+----------------------------------------------------------------------------------------------------------------------------------------+ 9790|:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`| 9791+----------------------------------------------------------------------------------------------------------------------------------------+ 9792 9793+--------------------------------------------------------------------------------------------------------+ 9794|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`| 9795+--------------------------------------------------------------------------------------------------------+ 9796 9797+--------------------------------------------------------------------------------------------------------+ 9798|:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`| 9799+--------------------------------------------------------------------------------------------------------+ 9800 9801+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9802|:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 9803+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9804 9805+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9806|:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| 9807+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9808 9809 9810-Woverriding-t-option 9811--------------------- 9812This diagnostic is enabled by default. 9813 9814**Diagnostic text:** 9815 9816+---------------------------------------------------------------------------------------------------------------------------+ 9817|:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`| 9818+---------------------------------------------------------------------------------------------------------------------------+ 9819 9820 9821-Wpacked 9822-------- 9823**Diagnostic text:** 9824 9825+--------------------------------------------------------------------------------------------------+ 9826|:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`| 9827+--------------------------------------------------------------------------------------------------+ 9828 9829 9830-Wpadded 9831-------- 9832**Diagnostic text:** 9833 9834+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 9835|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`| 9836| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 9837| |+---------------------+| |+----------------+|+-------------+| | 9838| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 9839| |+---------------------+| |+----------------+|+-------------+| | 9840| ||:diagtext:`class` || | | | | 9841| |+---------------------+| | | | | 9842+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ 9843 9844+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 9845|:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`| 9846| ||:diagtext:`struct` || ||:diagtext:`byte`||| || | 9847| |+---------------------+| |+----------------+|+-------------+| | 9848| ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | 9849| |+---------------------+| |+----------------+|+-------------+| | 9850| ||:diagtext:`class` || | | | | 9851| |+---------------------+| | | | | 9852+------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ 9853 9854+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 9855|:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`| 9856| ||:diagtext:`byte`||| || | 9857| |+----------------+|+-------------+| | 9858| ||:diagtext:`bit` |||:diagtext:`s`|| | 9859| |+----------------+|+-------------+| | 9860+--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ 9861 9862 9863-Wparentheses 9864------------- 9865Some of the diagnostics controlled by this flag are enabled by default. 9866 9867Also controls `-Wbitwise-conditional-parentheses`_, `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_. 9868 9869**Diagnostic text:** 9870 9871+-----------------------------------------------------------------------------------------------------------+ 9872|:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| 9873+-----------------------------------------------------------------------------------------------------------+ 9874 9875+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9876|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`| 9877+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9878 9879+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9880|:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`| 9881+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9882 9883 9884-Wparentheses-equality 9885---------------------- 9886This diagnostic is enabled by default. 9887 9888**Diagnostic text:** 9889 9890+--------------------------------------------------------------------------------------+ 9891|:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`| 9892+--------------------------------------------------------------------------------------+ 9893 9894 9895-Wpartial-availability 9896---------------------- 9897Synonym for `-Wunguarded-availability`_. 9898 9899 9900-Rpass 9901------ 9902**Diagnostic text:** 9903 9904The text of this diagnostic is not controlled by Clang. 9905 9906 9907-Rpass-analysis 9908--------------- 9909**Diagnostic text:** 9910 9911The text of this diagnostic is not controlled by Clang. 9912 9913+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9914|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`| 9915+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9916 9917+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9918|:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`| 9919+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 9920 9921 9922-Wpass-failed 9923------------- 9924This diagnostic is enabled by default. 9925 9926**Diagnostic text:** 9927 9928The text of this diagnostic is not controlled by Clang. 9929 9930 9931-Rpass-missed 9932------------- 9933**Diagnostic text:** 9934 9935The text of this diagnostic is not controlled by Clang. 9936 9937 9938-Wpch-date-time 9939--------------- 9940This diagnostic is enabled by default. 9941 9942**Diagnostic text:** 9943 9944+---------------------------+--------------------------------+-----------------------------------------------------+ 9945|:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`| 9946| ||:diagtext:`precompiled header`|| | 9947| |+------------------------------+| | 9948| ||:diagtext:`module` || | 9949| |+------------------------------+| | 9950+---------------------------+--------------------------------+-----------------------------------------------------+ 9951 9952 9953-Wpedantic 9954---------- 9955Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc++20-designator`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wfixed-enum-extension`_, `-Wflexible-array-extensions`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_. 9956 9957**Diagnostic text:** 9958 9959+-----------------------------------------------------------------------------------------------------+ 9960|:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| 9961+-----------------------------------------------------------------------------------------------------+ 9962 9963+------------------------------------------------------------------------+ 9964|:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| 9965+------------------------------------------------------------------------+ 9966 9967+--------------------------------------------------------------------------+ 9968|:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| 9969+--------------------------------------------------------------------------+ 9970 9971+--------------------------------------------------------------------------------+ 9972|:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| 9973+--------------------------------------------------------------------------------+ 9974 9975+--------------------------------------------------------------------------------------------+ 9976|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| 9977+--------------------------------------------------------------------------------------------+ 9978 9979+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 9980|:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| 9981| ||:diagtext:`private` || 9982| |+---------------------+| 9983| ||:diagtext:`protected`|| 9984| |+---------------------+| 9985+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ 9986 9987+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 9988|:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`| 9989| ||:diagtext:`struct`|| | 9990| |+------------------+| | 9991| ||:diagtext:`union` || | 9992| |+------------------+| | 9993+--------------------------------------------------------+--------------------+------------------------------------------------------------+ 9994 9995+-----------------------------------------------------------------------------------------------------------------------------------+ 9996|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~'`| 9997+-----------------------------------------------------------------------------------------------------------------------------------+ 9998 9999+----------------------------------------------------------------------------------------------------+ 10000|:warning:`warning:` |nbsp| :diagtext:`ISO C++ considers this destructor name lookup to be ambiguous`| 10001+----------------------------------------------------------------------------------------------------+ 10002 10003+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 10004|:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+----------------------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| 10005| ||:diagtext:`copying variable` || | 10006| |+----------------------------------------------------+| | 10007| ||:diagtext:`copying parameter` || | 10008| |+----------------------------------------------------+| | 10009| ||:diagtext:`returning object` || | 10010| |+----------------------------------------------------+| | 10011| ||:diagtext:`initializing statement expression result`|| | 10012| |+----------------------------------------------------+| | 10013| ||:diagtext:`throwing object` || | 10014| |+----------------------------------------------------+| | 10015| ||:diagtext:`copying member subobject` || | 10016| |+----------------------------------------------------+| | 10017| ||:diagtext:`copying array element` || | 10018| |+----------------------------------------------------+| | 10019| ||:diagtext:`allocating object` || | 10020| |+----------------------------------------------------+| | 10021| ||:diagtext:`copying temporary` || | 10022| |+----------------------------------------------------+| | 10023| ||:diagtext:`initializing base subobject` || | 10024| |+----------------------------------------------------+| | 10025| ||:diagtext:`initializing vector element` || | 10026| |+----------------------------------------------------+| | 10027| ||:diagtext:`capturing value` || | 10028| |+----------------------------------------------------+| | 10029+--------------------------------------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ 10030 10031+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10032|:warning:`warning:` |nbsp| :diagtext:`ISO C++ standards before C++17 do not allow new expression for type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to use list-initialization`| 10033+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10034 10035+--------------------------------------------------------------------------------------------------------------------------------------+ 10036|:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`| 10037+--------------------------------------------------------------------------------------------------------------------------------------+ 10038 10039+--------------------------------------------------------------------------------------------------------------------------+ 10040|:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension`| 10041+--------------------------------------------------------------------------------------------------------------------------+ 10042 10043+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10044|:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`| 10045+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10046 10047+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10048|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 10049| ||:diagtext:`function`|| | 10050| |+--------------------+| | 10051| ||:diagtext:`variable`|| | 10052| |+--------------------+| | 10053+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 10054 10055+---------------------------------------------------------------------------------------+ 10056|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`| 10057+---------------------------------------------------------------------------------------+ 10058 10059+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 10060|:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`| 10061| ||:diagtext:`small`|| | 10062| |+-----------------+| | 10063| ||:diagtext:`large`|| | 10064| |+-----------------+| | 10065+----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ 10066 10067+--------------------------------------------------------------------------------------------------+ 10068|:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`| 10069+--------------------------------------------------------------------------------------------------+ 10070 10071+-----------------------------------------------------------------------------------------------+ 10072|:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| 10073+-----------------------------------------------------------------------------------------------+ 10074 10075+-------------------------------------------------------------------------------+ 10076|:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| 10077+-------------------------------------------------------------------------------+ 10078 10079+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 10080|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 10081| ||:diagtext:`sizeof` || | 10082| |+---------------------------------------------------+| | 10083| ||:diagtext:`alignof` || | 10084| |+---------------------------------------------------+| | 10085| ||:diagtext:`vec\_step` || | 10086| |+---------------------------------------------------+| | 10087| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 10088| |+---------------------------------------------------+| | 10089| ||:diagtext:`\_\_alignof` || | 10090| |+---------------------------------------------------+| | 10091+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 10092 10093+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 10094|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 10095| ||:diagtext:`sizeof` || | 10096| |+---------------------------------------------------+| | 10097| ||:diagtext:`alignof` || | 10098| |+---------------------------------------------------+| | 10099| ||:diagtext:`vec\_step` || | 10100| |+---------------------------------------------------+| | 10101| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 10102| |+---------------------------------------------------+| | 10103| ||:diagtext:`\_\_alignof` || | 10104| |+---------------------------------------------------+| | 10105+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 10106 10107+-------------------------------------------------------------------------------------------+ 10108|:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`| 10109+-------------------------------------------------------------------------------------------+ 10110 10111+----------------------------------------------------------------------------------------+ 10112|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 10113+----------------------------------------------------------------------------------------+ 10114 10115+-------------------------------------------------------------------------------------------------------+ 10116|:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`| 10117+-------------------------------------------------------------------------------------------------------+ 10118 10119+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10120|:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`| 10121+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10122 10123+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10124|:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 10125+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10126 10127+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 10128|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 10129| || |nbsp| :diagtext:`a`|| || || | 10130| |+---------------------+| |+-------------+| | 10131| || || ||:diagtext:`s`|| | 10132| |+---------------------+| |+-------------+| | 10133+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 10134 10135+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 10136|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 10137| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 10138| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 10139| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 10140| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 10141| | | | | | | | | ||+-----------------------------------------------+|| | 10142| | | | | | | | | |+-------------------------------------------------+| | 10143+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 10144 10145+-----------------------------------------------------------------------------------------------------------------------+ 10146|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`| 10147+-----------------------------------------------------------------------------------------------------------------------+ 10148 10149+--------------------------------------------------------------------------------------------------------------------+ 10150|:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`| 10151+--------------------------------------------------------------------------------------------------------------------+ 10152 10153+------------------------------------------------------------------------------------------------------------+ 10154|:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`| 10155+------------------------------------------------------------------------------------------------------------+ 10156 10157+-------------------------------------------------------------------------------------------------------------+ 10158|:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`| 10159+-------------------------------------------------------------------------------------------------------------+ 10160 10161+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 10162|:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| 10163| ||:diagtext:`integral` || | 10164| |+-----------------------+| | 10165| ||:diagtext:`enumeration`|| | 10166| |+-----------------------+| | 10167+---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ 10168 10169+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 10170|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`| 10171| ||:diagtext:`assigning to different types` || | 10172| |+--------------------------------------------------------------+| | 10173| ||:diagtext:`passing to parameter of different type` || | 10174| |+--------------------------------------------------------------+| | 10175| ||:diagtext:`returning from function with different return type`|| | 10176| |+--------------------------------------------------------------+| | 10177| ||:diagtext:`converting between types` || | 10178| |+--------------------------------------------------------------+| | 10179| ||:diagtext:`initializing with expression of different type` || | 10180| |+--------------------------------------------------------------+| | 10181| ||:diagtext:`sending to parameter of different type` || | 10182| |+--------------------------------------------------------------+| | 10183| ||:diagtext:`casting between types` || | 10184| |+--------------------------------------------------------------+| | 10185+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ 10186 10187+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10188|:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| 10189+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10190 10191+--------------------------------------------------------------------------------------------------+ 10192|:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`| 10193+--------------------------------------------------------------------------------------------------+ 10194 10195+-------------------------------------------------------------------------------------------------------------------------------------+ 10196|:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`| 10197+-------------------------------------------------------------------------------------------------------------------------------------+ 10198 10199+---------------------------------------------------------------------------------------------------------------------------+ 10200|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| 10201+---------------------------------------------------------------------------------------------------------------------------+ 10202 10203+---------------------------------------------------------------------------------------------------------------------------+ 10204|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| 10205+---------------------------------------------------------------------------------------------------------------------------+ 10206 10207+---------------------------------------------------------------------------------------------------------------------------+ 10208|:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++20 extension`| 10209+---------------------------------------------------------------------------------------------------------------------------+ 10210 10211+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 10212|:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| 10213| ||:diagtext:`struct`|| | 10214| |+------------------+| | 10215| ||:diagtext:`union` || | 10216| |+------------------+| | 10217+-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ 10218 10219+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 10220|:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| 10221| ||:diagtext:`type` || | 10222| |+---------------------------+| | 10223| ||:diagtext:`underlying type`|| | 10224| |+---------------------------+| | 10225+------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ 10226 10227+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 10228|:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`| 10229| ||:diagtext:`function`|| | 10230| |+--------------------+| | 10231| ||:diagtext:`method` || | 10232| |+--------------------+| | 10233| ||:diagtext:`block` || | 10234| |+--------------------+| | 10235+---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ 10236 10237+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 10238|:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| 10239| ||:diagtext:`qualifier in` |nbsp| || || || | 10240| |+--------------------------------+| |+---------------------+| | 10241| ||:diagtext:`static` |nbsp| || || || | 10242| |+--------------------------------+| |+---------------------+| | 10243| || || ||:diagtext:`'\[\*\] '`|| | 10244| |+--------------------------------+| |+---------------------+| | 10245+---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ 10246 10247+--------------------------------------------------------+------------------------------------------------+ 10248|:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| 10249| ||:diagtext:`outside of a function` || 10250| |+----------------------------------------------+| 10251| ||+--------------------------------------------+|| 10252| |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| 10253| ||+--------------------------------------------+|| 10254| |+----------------------------------------------+| 10255| ||:diagtext:`inside instance variable list` || 10256| |+----------------------------------------------+| 10257| ||:diagtext:`after member function definition` || 10258| |+----------------------------------------------+| 10259+--------------------------------------------------------+------------------------------------------------+ 10260 10261+-----------------------------------------------------------------------------------------+ 10262|:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`| 10263+-----------------------------------------------------------------------------------------+ 10264 10265+----------------------------------------------------------------------------------------+ 10266|:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`| 10267+----------------------------------------------------------------------------------------+ 10268 10269+-------------------------------------------------------------------------------------------------+ 10270|:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| 10271+-------------------------------------------------------------------------------------------------+ 10272 10273+-----------------------------------------------------------------------------------+ 10274|:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| 10275+-----------------------------------------------------------------------------------+ 10276 10277+-------------------------------------------------------------------------------------------------------+ 10278|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| 10279+-------------------------------------------------------------------------------------------------------+ 10280 10281+--------------------------------------------------------------------------------------------------+ 10282|:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| 10283+--------------------------------------------------------------------------------------------------+ 10284 10285+-----------------------------------------------------------------------------------------------------------+ 10286|:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| 10287+-----------------------------------------------------------------------------------------------------------+ 10288 10289+----------------------------------------------------------------------------------------+ 10290|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a C99 extension`| 10291+----------------------------------------------------------------------------------------+ 10292 10293+-----------------------------------------------------------------------+ 10294|:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| 10295+-----------------------------------------------------------------------+ 10296 10297+------------------------------------------------------------------------------------------------+ 10298|:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| 10299+------------------------------------------------------------------------------------------------+ 10300 10301+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 10302|:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| 10303| ||:diagtext:`a namespace` || | 10304| |+-------------------------+| | 10305| ||:diagtext:`an enumerator`|| | 10306| |+-------------------------+| | 10307+------------------------------------------------------------+---------------------------+-----------------------------------------------------+ 10308 10309+-----------------------------------------------------------------------------+ 10310|:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| 10311+-----------------------------------------------------------------------------+ 10312 10313+------------------------------------------------------------+ 10314|:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| 10315+------------------------------------------------------------+ 10316 10317+-----------------------------------------------------------------------------------+ 10318|:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| 10319+-----------------------------------------------------------------------------------+ 10320 10321+----------------------------------------------------------------+ 10322|:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| 10323+----------------------------------------------------------------+ 10324 10325+------------------------------------------------------------------------------------------------------------+ 10326|:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`| 10327+------------------------------------------------------------------------------------------------------------+ 10328 10329+---------------------------------------------------------------------------------------+ 10330|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| 10331+---------------------------------------------------------------------------------------+ 10332 10333+----------------------------------------------------------------------------------------+ 10334|:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| 10335+----------------------------------------------------------------------------------------+ 10336 10337+---------------------------------------------------------------------+ 10338|:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`| 10339+---------------------------------------------------------------------+ 10340 10341+-----------------------------------------------------------------------+ 10342|:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`| 10343+-----------------------------------------------------------------------+ 10344 10345+-----------------------------------------------------------------------+ 10346|:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`| 10347+-----------------------------------------------------------------------+ 10348 10349+----------------------------------------------------------------------------------------------------------------+ 10350|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`| 10351+----------------------------------------------------------------------------------------------------------------+ 10352 10353+------------------------------------------------------------------------+ 10354|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 10355+------------------------------------------------------------------------+ 10356 10357+--------------------------------------------------------------------------------+ 10358|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 10359+--------------------------------------------------------------------------------+ 10360 10361+------------------------------------------------------------------------------+ 10362|:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| 10363+------------------------------------------------------------------------------+ 10364 10365+--------------------------------------------------------------------------------------+ 10366|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a Clang extension in OpenCL`| 10367+--------------------------------------------------------------------------------------+ 10368 10369+----------------------------------------------------------------------------------------------------------------------------------------+ 10370|:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`| 10371+----------------------------------------------------------------------------------------------------------------------------------------+ 10372 10373+-------------------------------------------------------------------------------------------------+ 10374|:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| 10375+-------------------------------------------------------------------------------------------------+ 10376 10377 10378-Wpedantic-core-features 10379------------------------ 10380**Diagnostic text:** 10381 10382+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10383|:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`| 10384+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10385 10386 10387-Wpessimizing-move 10388------------------ 10389**Diagnostic text:** 10390 10391+--------------------------------------------------------------------------------------+ 10392|:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`| 10393+--------------------------------------------------------------------------------------+ 10394 10395+--------------------------------------------------------------------------------------------------------+ 10396|:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`| 10397+--------------------------------------------------------------------------------------------------------+ 10398 10399 10400-Wpointer-arith 10401--------------- 10402Some of the diagnostics controlled by this flag are enabled by default. 10403 10404**Diagnostic text:** 10405 10406+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 10407|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| 10408| || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | 10409| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | 10410| || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | 10411| |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | 10412| | | | | | | | | ||+-----------------------------------------------+|| | 10413| | | | | | | | | |+-------------------------------------------------+| | 10414+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ 10415 10416+----------------------------------------------------------------------------------------+ 10417|:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| 10418+----------------------------------------------------------------------------------------+ 10419 10420+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 10421|:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| 10422| || |nbsp| :diagtext:`a`|| || || | 10423| |+---------------------+| |+-------------+| | 10424| || || ||:diagtext:`s`|| | 10425| |+---------------------+| |+-------------+| | 10426+----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ 10427 10428+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 10429|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a function type`| 10430| ||:diagtext:`sizeof` || | 10431| |+---------------------------------------------------+| | 10432| ||:diagtext:`alignof` || | 10433| |+---------------------------------------------------+| | 10434| ||:diagtext:`vec\_step` || | 10435| |+---------------------------------------------------+| | 10436| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 10437| |+---------------------------------------------------+| | 10438| ||:diagtext:`\_\_alignof` || | 10439| |+---------------------------------------------------+| | 10440+---------------------------------------------------------------+-----------------------------------------------------+--------------------------------+ 10441 10442+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 10443|:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------------------------------------+|:diagtext:`' to a void type`| 10444| ||:diagtext:`sizeof` || | 10445| |+---------------------------------------------------+| | 10446| ||:diagtext:`alignof` || | 10447| |+---------------------------------------------------+| | 10448| ||:diagtext:`vec\_step` || | 10449| |+---------------------------------------------------+| | 10450| ||:diagtext:`\_\_builtin\_omp\_required\_simd\_align`|| | 10451| |+---------------------------------------------------+| | 10452| ||:diagtext:`\_\_alignof` || | 10453| |+---------------------------------------------------+| | 10454+---------------------------------------------------------------+-----------------------------------------------------+----------------------------+ 10455 10456+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 10457|:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`| 10458+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 10459 10460 10461-Wpointer-bool-conversion 10462------------------------- 10463This diagnostic is enabled by default. 10464 10465**Diagnostic text:** 10466 10467+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 10468|:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`| 10469| ||:diagtext:`function call`|| | 10470| |+-------------------------+| | 10471| ||:diagtext:`parameter` || | 10472| |+-------------------------+| | 10473+------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ 10474 10475+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 10476|:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`| 10477| || || | 10478| |+----------------------------+| | 10479| || |nbsp| :diagtext:`function`|| | 10480| |+----------------------------+| | 10481| || |nbsp| :diagtext:`array` || | 10482| |+----------------------------+| | 10483+-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ 10484 10485 10486-Wpointer-compare 10487----------------- 10488This diagnostic is enabled by default. 10489 10490**Diagnostic text:** 10491 10492+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+ 10493|:warning:`warning:` |nbsp| :diagtext:`comparing a pointer to a null character constant; did you mean to compare to` |nbsp| |+----------------------+|:diagtext:`?`| 10494| ||:diagtext:`NULL` || | 10495| |+----------------------+| | 10496| ||:diagtext:`(void \*)0`|| | 10497| |+----------------------+| | 10498+---------------------------------------------------------------------------------------------------------------------------+------------------------+-------------+ 10499 10500 10501-Wpointer-integer-compare 10502------------------------- 10503This diagnostic is enabled by default. 10504 10505**Diagnostic text:** 10506 10507+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 10508|:warning:`warning:` |nbsp| :diagtext:`comparison between pointer and integer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 10509+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 10510 10511 10512-Wpointer-sign 10513-------------- 10514This diagnostic is enabled by default. 10515 10516**Diagnostic text:** 10517 10518+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 10519|:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`| 10520| ||:diagtext:`assigning to different types` || | 10521| |+--------------------------------------------------------------+| | 10522| ||:diagtext:`passing to parameter of different type` || | 10523| |+--------------------------------------------------------------+| | 10524| ||:diagtext:`returning from function with different return type`|| | 10525| |+--------------------------------------------------------------+| | 10526| ||:diagtext:`converting between types` || | 10527| |+--------------------------------------------------------------+| | 10528| ||:diagtext:`initializing with expression of different type` || | 10529| |+--------------------------------------------------------------+| | 10530| ||:diagtext:`sending to parameter of different type` || | 10531| |+--------------------------------------------------------------+| | 10532| ||:diagtext:`casting between types` || | 10533| |+--------------------------------------------------------------+| | 10534+---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ 10535 10536 10537-Wpointer-to-enum-cast 10538---------------------- 10539This diagnostic is enabled by default. 10540 10541Also controls `-Wvoid-pointer-to-enum-cast`_. 10542 10543**Diagnostic text:** 10544 10545+-------------------------------------------------------------------------------------------------------------------------------------------+ 10546|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`| 10547+-------------------------------------------------------------------------------------------------------------------------------------------+ 10548 10549 10550-Wpointer-to-int-cast 10551--------------------- 10552This diagnostic is enabled by default. 10553 10554Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_. 10555 10556**Diagnostic text:** 10557 10558+-------------------------------------------------------------------------------------------------------------------------------------------+ 10559|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`| 10560+-------------------------------------------------------------------------------------------------------------------------------------------+ 10561 10562 10563-Wpointer-to-int-cast 10564--------------------- 10565This diagnostic is enabled by default. 10566 10567Also controls `-Wpointer-to-enum-cast`_, `-Wvoid-pointer-to-int-cast`_. 10568 10569**Diagnostic text:** 10570 10571+-------------------------------------------------------------------------------------------------------------------------------------------+ 10572|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`| 10573+-------------------------------------------------------------------------------------------------------------------------------------------+ 10574 10575 10576-Wpointer-type-mismatch 10577----------------------- 10578This diagnostic is enabled by default. 10579 10580**Diagnostic text:** 10581 10582+------------------------------------------------------------+ 10583|:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`| 10584+------------------------------------------------------------+ 10585 10586 10587-Wpoison-system-directories 10588--------------------------- 10589**Diagnostic text:** 10590 10591+----------------------------------------------------------------------------------------------------------------------+ 10592|:warning:`warning:` |nbsp| :diagtext:`include location '`:placeholder:`A`:diagtext:`' is unsafe for cross-compilation`| 10593+----------------------------------------------------------------------------------------------------------------------+ 10594 10595 10596-Wpotentially-evaluated-expression 10597---------------------------------- 10598This diagnostic is enabled by default. 10599 10600**Diagnostic text:** 10601 10602+----------------------------------------------------------------------------------------------------------------------------------+ 10603|:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`| 10604+----------------------------------------------------------------------------------------------------------------------------------+ 10605 10606 10607-Wpragma-clang-attribute 10608------------------------ 10609This diagnostic is enabled by default. 10610 10611**Diagnostic text:** 10612 10613+-------------------------------------------------------------------------------------------------------------------------------------------+ 10614|:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`| 10615+-------------------------------------------------------------------------------------------------------------------------------------------+ 10616 10617 10618-Wpragma-once-outside-header 10619---------------------------- 10620This diagnostic is enabled by default. 10621 10622**Diagnostic text:** 10623 10624+----------------------------------------------------------------+ 10625|:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`| 10626+----------------------------------------------------------------+ 10627 10628 10629-Wpragma-pack 10630------------- 10631Some of the diagnostics controlled by this flag are enabled by default. 10632 10633Also controls `-Wpragma-pack-suspicious-include`_. 10634 10635**Diagnostic text:** 10636 10637+----------------------------------------------------------------------------------------------------------------+ 10638|:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`| 10639+----------------------------------------------------------------------------------------------------------------+ 10640 10641+---------------------------------------------------------------------------------------------+ 10642|:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`| 10643+---------------------------------------------------------------------------------------------+ 10644 10645 10646-Wpragma-pack-suspicious-include 10647-------------------------------- 10648**Diagnostic text:** 10649 10650+-------------------------------------------------------------------------------------------------------------------------------------------+ 10651|:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`| 10652+-------------------------------------------------------------------------------------------------------------------------------------------+ 10653 10654 10655-Wpragma-system-header-outside-header 10656------------------------------------- 10657This diagnostic is enabled by default. 10658 10659**Diagnostic text:** 10660 10661+----------------------------------------------------------------------------------+ 10662|:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`| 10663+----------------------------------------------------------------------------------+ 10664 10665 10666-Wpragmas 10667--------- 10668Some of the diagnostics controlled by this flag are enabled by default. 10669 10670Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_. 10671 10672**Diagnostic text:** 10673 10674+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 10675|:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`| 10676| ||:diagtext:`function`|| | 10677| |+--------------------+| | 10678| ||:diagtext:`variable`|| | 10679| |+--------------------+| | 10680+--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ 10681 10682 10683-Wpredefined-identifier-outside-function 10684---------------------------------------- 10685This diagnostic is enabled by default. 10686 10687**Diagnostic text:** 10688 10689+------------------------------------------------------------------------------------------+ 10690|:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`| 10691+------------------------------------------------------------------------------------------+ 10692 10693 10694-Wprivate-extern 10695---------------- 10696This diagnostic is enabled by default. 10697 10698**Diagnostic text:** 10699 10700+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10701|:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`| 10702+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10703 10704 10705-Wprivate-header 10706---------------- 10707This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error. 10708 10709**Diagnostic text:** 10710 10711+----------------------------------------------------------------------------------------------------------------+ 10712|:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`| 10713+----------------------------------------------------------------------------------------------------------------+ 10714 10715 10716-Wprivate-module 10717---------------- 10718This diagnostic is enabled by default. 10719 10720**Diagnostic text:** 10721 10722+----------------------------------------------------------------------------------------------------------------+ 10723|:warning:`warning:` |nbsp| :diagtext:`expected canonical name for private module '`:placeholder:`A`:diagtext:`'`| 10724+----------------------------------------------------------------------------------------------------------------+ 10725 10726+----------------------------------------------------------------------------------------------------------------------------------------+ 10727|:warning:`warning:` |nbsp| :diagtext:`private submodule '`:placeholder:`A`:diagtext:`' in private module map, expected top-level module`| 10728+----------------------------------------------------------------------------------------------------------------------------------------+ 10729 10730+----------------------------------------------------------------------------------------------------------------------------------+ 10731|:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`| 10732+----------------------------------------------------------------------------------------------------------------------------------+ 10733 10734+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10735|:warning:`warning:` |nbsp| :diagtext:`no submodule named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in module '`:placeholder:`B`:diagtext:`'; using top level '`:placeholder:`C`:diagtext:`'`| 10736+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10737 10738 10739-Wprofile-instr-missing 10740----------------------- 10741**Diagnostic text:** 10742 10743+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 10744|:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`no data`| 10745| || || ||:diagtext:`has` || | 10746| |+-------------+| |+----------------+| | 10747| ||:diagtext:`s`|| ||:diagtext:`have`|| | 10748| |+-------------+| |+----------------+| | 10749+-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+---------------------------+ 10750 10751 10752-Wprofile-instr-out-of-date 10753--------------------------- 10754This diagnostic is enabled by default. 10755 10756**Diagnostic text:** 10757 10758+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 10759|:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`| 10760| || || ||:diagtext:`has` || | 10761| |+-------------+| |+----------------+| | 10762| ||:diagtext:`s`|| ||:diagtext:`have`|| | 10763| |+-------------+| |+----------------+| | 10764+------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+------------------+--------------------------------------------------------+ 10765 10766 10767-Wprofile-instr-unprofiled 10768-------------------------- 10769This diagnostic is enabled by default. 10770 10771**Diagnostic text:** 10772 10773+--------------------------------------------------------------------------------------------------------+ 10774|:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`| 10775+--------------------------------------------------------------------------------------------------------+ 10776 10777 10778-Wproperty-access-dot-syntax 10779---------------------------- 10780This diagnostic is enabled by default. 10781 10782**Diagnostic text:** 10783 10784+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10785|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`| 10786+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10787 10788 10789-Wproperty-attribute-mismatch 10790----------------------------- 10791This diagnostic is enabled by default. 10792 10793**Diagnostic text:** 10794 10795+-------------------------------------------------------------------------------------------------------------+ 10796|:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`| 10797+-------------------------------------------------------------------------------------------------------------+ 10798 10799+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10800|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`| 10801+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10802 10803+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10804|:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`| 10805+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10806 10807+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10808|:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`| 10809+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10810 10811 10812-Wprotocol 10813---------- 10814This diagnostic is enabled by default. 10815 10816**Diagnostic text:** 10817 10818+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10819|:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`| 10820+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10821 10822 10823-Wprotocol-property-synthesis-ambiguity 10824--------------------------------------- 10825This diagnostic is enabled by default. 10826 10827**Diagnostic text:** 10828 10829+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 10830|:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`| 10831| ||+-------------------------------------------+ || | 10832| |||:diagtext:`of type` |nbsp| :placeholder:`B`| || | 10833| ||+-------------------------------------------+ || | 10834| |+--------------------------------------------------------------+| | 10835| ||+---------------------------------------------------------+ || | 10836| |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || | 10837| ||+---------------------------------------------------------+ || | 10838| |+--------------------------------------------------------------+| | 10839| ||+------------------------------------------------------------+|| | 10840| |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| | 10841| ||+------------------------------------------------------------+|| | 10842| |+--------------------------------------------------------------+| | 10843| ||+-----------------------------------------------+ || | 10844| |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || | 10845| ||+-----------------------------------------------+ || | 10846| |+--------------------------------------------------------------+| | 10847| ||+-----------------------------------------------+ || | 10848| |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || | 10849| ||+-----------------------------------------------+ || | 10850| |+--------------------------------------------------------------+| | 10851+-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ 10852 10853 10854-Wqualified-void-return-type 10855---------------------------- 10856This diagnostic is enabled by default. 10857 10858**Diagnostic text:** 10859 10860+---------------------------------------------------------------------------------------------------------+ 10861|:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`| 10862+---------------------------------------------------------------------------------------------------------+ 10863 10864 10865-Wquoted-include-in-framework-header 10866------------------------------------ 10867**Diagnostic text:** 10868 10869+-------------------------------------------------------------------------------------------------------------------------------------------------+ 10870|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" in framework header, expected angle-bracketed instead`| 10871+-------------------------------------------------------------------------------------------------------------------------------------------------+ 10872 10873 10874-Wrange-loop-analysis 10875--------------------- 10876Controls `-Wrange-loop-bind-reference`_, `-Wrange-loop-construct`_. 10877 10878 10879-Wrange-loop-bind-reference 10880--------------------------- 10881**Diagnostic text:** 10882 10883+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10884|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary value produced by a range of type` |nbsp| :placeholder:`B`| 10885+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10886 10887 10888-Wrange-loop-construct 10889---------------------- 10890**Diagnostic text:** 10891 10892+------------------------------------------------------------------------------------------------------------------------------------------------------+ 10893|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`binds to a temporary constructed from a different type`| 10894+------------------------------------------------------------------------------------------------------------------------------------------------------+ 10895 10896+------------------------------------------------------------------------------------------------------------------------------------------------+ 10897|:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`B`| 10898+------------------------------------------------------------------------------------------------------------------------------------------------+ 10899 10900 10901-Wreadonly-iboutlet-property 10902---------------------------- 10903This diagnostic is enabled by default. 10904 10905**Diagnostic text:** 10906 10907+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10908|:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`| 10909+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10910 10911 10912-Wreceiver-expr 10913--------------- 10914This diagnostic is enabled by default. 10915 10916**Diagnostic text:** 10917 10918+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10919|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`| 10920+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 10921 10922 10923-Wreceiver-forward-class 10924------------------------ 10925Some of the diagnostics controlled by this flag are enabled by default. 10926 10927**Diagnostic text:** 10928 10929+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10930|:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`| 10931+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 10932 10933+---------------------------------------------------------------------------------------------------------------------------------------------+ 10934|:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`| 10935+---------------------------------------------------------------------------------------------------------------------------------------------+ 10936 10937 10938-Wredeclared-class-member 10939------------------------- 10940This diagnostic is enabled by default. 10941 10942**Diagnostic text:** 10943 10944+------------------------------------------------------------------------+ 10945|:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`| 10946+------------------------------------------------------------------------+ 10947 10948 10949-Wredundant-decls 10950----------------- 10951This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 10952 10953-Wredundant-move 10954---------------- 10955**Diagnostic text:** 10956 10957+-------------------------------------------------------------------------+ 10958|:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`| 10959+-------------------------------------------------------------------------+ 10960 10961 10962-Wredundant-parens 10963------------------ 10964**Diagnostic text:** 10965 10966+-----------------------------------------------------------------------------------+ 10967|:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`| 10968+-----------------------------------------------------------------------------------+ 10969 10970 10971-Wregister 10972---------- 10973This diagnostic is enabled by default. 10974 10975Also controls `-Wdeprecated-register`_. 10976 10977**Diagnostic text:** 10978 10979+----------------------------------------------------------------------------------------------+ 10980|:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`| 10981+----------------------------------------------------------------------------------------------+ 10982 10983 10984-Wreinterpret-base-class 10985------------------------ 10986This diagnostic is enabled by default. 10987 10988**Diagnostic text:** 10989 10990+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 10991|:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`| 10992| ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || | 10993| |+----------------+| |+----------------+| |+-----------------------------------+| | 10994| ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| | 10995| |+----------------+| |+----------------+| |+-----------------------------------+| | 10996+------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ 10997 10998 10999-Rremark-backend-plugin 11000----------------------- 11001**Diagnostic text:** 11002 11003The text of this diagnostic is not controlled by Clang. 11004 11005 11006-Wreorder 11007--------- 11008Some of the diagnostics controlled by this flag are enabled by default. 11009 11010Controls `-Wreorder-ctor`_, `-Wreorder-init-list`_. 11011 11012 11013-Wreorder-ctor 11014-------------- 11015**Diagnostic text:** 11016 11017+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 11018|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`| 11019| ||:diagtext:`field` || ||:diagtext:`field`|| | 11020| |+----------------------+| |+-----------------+| | 11021| ||:diagtext:`base class`|| ||:diagtext:`base` || | 11022| |+----------------------+| |+-----------------+| | 11023+---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ 11024 11025 11026-Wreorder-init-list 11027------------------- 11028This diagnostic is enabled by default. 11029 11030**Diagnostic text:** 11031 11032+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11033|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires field designators to be specified in declaration order; field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after field` |nbsp| :placeholder:`A`| 11034+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11035 11036 11037-Wrequires-expression 11038--------------------- 11039This diagnostic is enabled by default. 11040 11041**Diagnostic text:** 11042 11043+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11044|:warning:`warning:` |nbsp| :diagtext:`this requires expression will only be checked for syntactic validity; did you intend to place it in a nested requirement? (add another 'requires' before the expression)`| 11045+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11046 11047 11048-Wrequires-super-attribute 11049-------------------------- 11050This diagnostic is enabled by default. 11051 11052**Diagnostic text:** 11053 11054+-----------------------------------------------------------------------------------------------------+----------------------------------+ 11055|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+| 11056| ||:diagtext:`methods in protocols`|| 11057| |+--------------------------------+| 11058| ||:diagtext:`dealloc` || 11059| |+--------------------------------+| 11060+-----------------------------------------------------------------------------------------------------+----------------------------------+ 11061 11062 11063-Wreserved-id-macro 11064------------------- 11065**Diagnostic text:** 11066 11067+--------------------------------------------------------------------------+ 11068|:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`| 11069+--------------------------------------------------------------------------+ 11070 11071 11072-Wreserved-user-defined-literal 11073------------------------------- 11074Some of the diagnostics controlled by this flag are enabled by default. 11075 11076Also controls `-Wc++11-compat-reserved-user-defined-literal`_. 11077 11078**Diagnostic text:** 11079 11080+-----------------------------------------------------------------------------------------------------------------------+ 11081|:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 11082+-----------------------------------------------------------------------------------------------------------------------+ 11083 11084+-------------------------------------------------------------------------------------------------------------------+ 11085|:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| 11086+-------------------------------------------------------------------------------------------------------------------+ 11087 11088 11089-Wretained-language-linkage 11090--------------------------- 11091**Diagnostic text:** 11092 11093+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 11094|:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`| 11095+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 11096 11097 11098-Wreturn-stack-address 11099---------------------- 11100This diagnostic is enabled by default. 11101 11102**Diagnostic text:** 11103 11104+---------------------------------------------------------------------------------+ 11105|:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`| 11106+---------------------------------------------------------------------------------+ 11107 11108+--------------------------------------------------------+--------------------------+------------------------------------------+ 11109|:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`| 11110| ||:diagtext:`address of` || | 11111| |+------------------------+| | 11112| ||:diagtext:`reference to`|| | 11113| |+------------------------+| | 11114+--------------------------------------------------------+--------------------------+------------------------------------------+ 11115 11116+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 11117|:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with` |nbsp| |+--------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`| 11118| ||:diagtext:`address of` || ||:diagtext:`local variable`|| | 11119| |+------------------------+| |+--------------------------+| | 11120| ||:diagtext:`reference to`|| ||:diagtext:`parameter` || | 11121| |+------------------------+| |+--------------------------+| | 11122+---------------------------+--------------------------+--------------------------------------------------------+----------------------------+----------------------------------------------------+ 11123 11124 11125-Wreturn-std-move 11126----------------- 11127**Diagnostic text:** 11128 11129+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 11130|:warning:`warning:` |nbsp| :diagtext:`local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be copied despite being` |nbsp| |+--------------------+| |nbsp| :diagtext:`by name`| 11131| ||:diagtext:`returned`|| | 11132| |+--------------------+| | 11133| ||:diagtext:`thrown` || | 11134| |+--------------------+| | 11135+-------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------------+ 11136 11137 11138-Wreturn-std-move-in-c++11 11139-------------------------- 11140**Diagnostic text:** 11141 11142+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11143|:warning:`warning:` |nbsp| :diagtext:`prior to the resolution of a defect report against ISO C++11, local variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`would have been copied despite being returned by name, due to its not matching the function return type`| 11144+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11145 11146 11147-Wreturn-type 11148------------- 11149This diagnostic is enabled by default. 11150 11151Also controls `-Wreturn-type-c-linkage`_. 11152 11153**Diagnostic text:** 11154 11155+-----------------------+---------------------------+---------------------------------------------------------------------+ 11156|:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`| 11157| ||:diagtext:`void function`|| | 11158| |+-------------------------+| | 11159| ||:diagtext:`void method` || | 11160| |+-------------------------+| | 11161| ||:diagtext:`constructor` || | 11162| |+-------------------------+| | 11163| ||:diagtext:`destructor` || | 11164| |+-------------------------+| | 11165+-----------------------+---------------------------+---------------------------------------------------------------------+ 11166 11167+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 11168|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 11169| ||:diagtext:`function`|| | 11170| |+--------------------+| | 11171| ||:diagtext:`method` || | 11172| |+--------------------+| | 11173+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 11174 11175+---------------------------------------------------------------------------------+ 11176|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value`| 11177+---------------------------------------------------------------------------------+ 11178 11179+--------------------------------------------------------------------------------+ 11180|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value`| 11181+--------------------------------------------------------------------------------+ 11182 11183+------------------------------------------------------------------------------+ 11184|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value`| 11185+------------------------------------------------------------------------------+ 11186 11187+------------------------------------------------------------------------------------------------------+ 11188|:warning:`warning:` |nbsp| :diagtext:`non-void coroutine does not return a value in all control paths`| 11189+------------------------------------------------------------------------------------------------------+ 11190 11191+-----------------------------------------------------------------------------------------------------+ 11192|:warning:`warning:` |nbsp| :diagtext:`non-void function does not return a value in all control paths`| 11193+-----------------------------------------------------------------------------------------------------+ 11194 11195+---------------------------------------------------------------------------------------------------+ 11196|:warning:`warning:` |nbsp| :diagtext:`non-void lambda does not return a value in all control paths`| 11197+---------------------------------------------------------------------------------------------------+ 11198 11199+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 11200|:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| 11201| ||:diagtext:`function`|| | 11202| |+--------------------+| | 11203| ||:diagtext:`method` || | 11204| |+--------------------+| | 11205+---------------------------------------------------+----------------------+-----------------------------------------------------------------+ 11206 11207 11208-Wreturn-type-c-linkage 11209----------------------- 11210This diagnostic is enabled by default. 11211 11212**Diagnostic text:** 11213 11214+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11215|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`| 11216+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11217 11218+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11219|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`| 11220+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11221 11222 11223-Wrewrite-not-bool 11224------------------ 11225This diagnostic is enabled by default. 11226 11227**Diagnostic text:** 11228 11229+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11230|:warning:`warning:` |nbsp| :diagtext:`ISO C++20 requires return type of selected 'operator==' function for rewritten '`:placeholder:`B`:diagtext:`' comparison to be 'bool', not` |nbsp| :placeholder:`A`| 11231+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11232 11233 11234-Rsanitize-address 11235------------------ 11236**Diagnostic text:** 11237 11238+--------------------------------------------------------------------------------------------------------+ 11239|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`| 11240+--------------------------------------------------------------------------------------------------------+ 11241 11242+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 11243|:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+| 11244| ||:diagtext:`is not C++` || 11245| |+------------------------------------+| 11246| ||:diagtext:`is packed` || 11247| |+------------------------------------+| 11248| ||:diagtext:`is a union` || 11249| |+------------------------------------+| 11250| ||:diagtext:`is trivially copyable` || 11251| |+------------------------------------+| 11252| ||:diagtext:`has trivial destructor` || 11253| |+------------------------------------+| 11254| ||:diagtext:`is standard layout` || 11255| |+------------------------------------+| 11256| ||:diagtext:`is in a blacklisted file`|| 11257| |+------------------------------------+| 11258| ||:diagtext:`is blacklisted` || 11259| |+------------------------------------+| 11260+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ 11261 11262 11263-Wsection 11264--------- 11265This diagnostic is enabled by default. 11266 11267**Diagnostic text:** 11268 11269+--------------------------------------------------------------------------------------------+ 11270|:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`| 11271+--------------------------------------------------------------------------------------------+ 11272 11273+------------------------------------------------------------------------+ 11274|:warning:`warning:` |nbsp| :diagtext:`duplicate code segment specifiers`| 11275+------------------------------------------------------------------------+ 11276 11277+---------------------------+---------------------+-------------------------------------------------------+ 11278|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`does not match previous declaration`| 11279| ||:diagtext:`codeseg`|| | 11280| |+-------------------+| | 11281| ||:diagtext:`section`|| | 11282| |+-------------------+| | 11283+---------------------------+---------------------+-------------------------------------------------------+ 11284 11285 11286-Wselector 11287---------- 11288Also controls `-Wselector-type-mismatch`_. 11289 11290**Diagnostic text:** 11291 11292+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11293|:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`| 11294+-------------------------------------------------------------------------------------------------------------------------------------------------+ 11295 11296 11297-Wselector-type-mismatch 11298------------------------ 11299**Diagnostic text:** 11300 11301+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11302|:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`| 11303+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11304 11305 11306-Wself-assign 11307------------- 11308Some of the diagnostics controlled by this flag are enabled by default. 11309 11310Also controls `-Wself-assign-field`_, `-Wself-assign-overloaded`_. 11311 11312**Diagnostic text:** 11313 11314+------------------------------------------------------------------------------------------------------------------------------------------+ 11315|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 11316+------------------------------------------------------------------------------------------------------------------------------------------+ 11317 11318 11319-Wself-assign-field 11320------------------- 11321This diagnostic is enabled by default. 11322 11323**Diagnostic text:** 11324 11325+--------------------------------------------------------+-------------------------------+-----------------------------+ 11326|:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`| 11327| ||:diagtext:`field` || | 11328| |+-----------------------------+| | 11329| ||:diagtext:`instance variable`|| | 11330| |+-----------------------------+| | 11331+--------------------------------------------------------+-------------------------------+-----------------------------+ 11332 11333 11334-Wself-assign-overloaded 11335------------------------ 11336**Diagnostic text:** 11337 11338+------------------------------------------------------------------------------------------------------------------------------------------+ 11339|:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 11340+------------------------------------------------------------------------------------------------------------------------------------------+ 11341 11342 11343-Wself-move 11344----------- 11345**Diagnostic text:** 11346 11347+------------------------------------------------------------------------------------------------------------------------------+ 11348|:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| 11349+------------------------------------------------------------------------------------------------------------------------------+ 11350 11351 11352-Wsemicolon-before-method-body 11353------------------------------ 11354**Diagnostic text:** 11355 11356+------------------------------------------------------------------------------+ 11357|:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`| 11358+------------------------------------------------------------------------------+ 11359 11360 11361-Wsentinel 11362---------- 11363This diagnostic is enabled by default. 11364 11365**Diagnostic text:** 11366 11367+------------------------------------------------------------------+-----------------------------+ 11368|:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+| 11369| ||:diagtext:`function call` || 11370| |+---------------------------+| 11371| ||:diagtext:`method dispatch`|| 11372| |+---------------------------+| 11373| ||:diagtext:`block call` || 11374| |+---------------------------+| 11375+------------------------------------------------------------------+-----------------------------+ 11376 11377+------------------------------------------------------------------------------------------------------------------------------------------------+ 11378|:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`| 11379+------------------------------------------------------------------------------------------------------------------------------------------------+ 11380 11381 11382-Wsequence-point 11383---------------- 11384Synonym for `-Wunsequenced`_. 11385 11386 11387-Wserialized-diagnostics 11388------------------------ 11389This diagnostic is enabled by default. 11390 11391**Diagnostic text:** 11392 11393+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11394|:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`| 11395+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11396 11397+--------------------------------------------------------------------------------------------+ 11398|:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`| 11399+--------------------------------------------------------------------------------------------+ 11400 11401 11402-Wshadow 11403-------- 11404Some of the diagnostics controlled by this flag are enabled by default. 11405 11406Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_. 11407 11408**Diagnostic text:** 11409 11410+--------------------------------------------------------------------+-------------------------------------------------------------+ 11411|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 11412| ||:diagtext:`local variable` || 11413| |+-----------------------------------------------------------+| 11414| ||+-----------------------------------------------+ || 11415| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 11416| ||+-----------------------------------------------+ || 11417| |+-----------------------------------------------------------+| 11418| ||+---------------------------------------------------------+|| 11419| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 11420| ||+---------------------------------------------------------+|| 11421| |+-----------------------------------------------------------+| 11422| ||+--------------------------------------------+ || 11423| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 11424| ||+--------------------------------------------+ || 11425| |+-----------------------------------------------------------+| 11426| ||+----------------------------------------------+ || 11427| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 11428| ||+----------------------------------------------+ || 11429| |+-----------------------------------------------------------+| 11430| ||+-------------------------------------------------+ || 11431| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 11432| ||+-------------------------------------------------+ || 11433| |+-----------------------------------------------------------+| 11434+--------------------------------------------------------------------+-------------------------------------------------------------+ 11435 11436 11437-Wshadow-all 11438------------ 11439Some of the diagnostics controlled by this flag are enabled by default. 11440 11441Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_. 11442 11443 11444-Wshadow-field 11445-------------- 11446**Diagnostic text:** 11447 11448+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 11449|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :placeholder:`A` |nbsp| |+------------------------------------------------+|:diagtext:`shadows member inherited from type` |nbsp| :placeholder:`C`| 11450| ||:diagtext:`parameter` || || || | 11451| |+----------------------------------+| |+------------------------------------------------+| | 11452| ||:diagtext:`non-static data member`|| ||+----------------------------------------------+|| | 11453| |+----------------------------------+| |||:diagtext:`of` |nbsp| :placeholder:`B` |nbsp| ||| | 11454| | | ||+----------------------------------------------+|| | 11455| | | |+------------------------------------------------+| | 11456+---------------------------+------------------------------------+--------------------------------+--------------------------------------------------+----------------------------------------------------------------------+ 11457 11458 11459-Wshadow-field-in-constructor 11460----------------------------- 11461Also controls `-Wshadow-field-in-constructor-modified`_. 11462 11463**Diagnostic text:** 11464 11465+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11466|:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| 11467+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11468 11469 11470-Wshadow-field-in-constructor-modified 11471-------------------------------------- 11472**Diagnostic text:** 11473 11474+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11475|:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`| 11476+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11477 11478 11479-Wshadow-ivar 11480------------- 11481This diagnostic is enabled by default. 11482 11483**Diagnostic text:** 11484 11485+------------------------------------------------------------------------------------------------------------------------------+ 11486|:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`| 11487+------------------------------------------------------------------------------------------------------------------------------+ 11488 11489 11490-Wshadow-uncaptured-local 11491------------------------- 11492**Diagnostic text:** 11493 11494+--------------------------------------------------------------------+-------------------------------------------------------------+ 11495|:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| 11496| ||:diagtext:`local variable` || 11497| |+-----------------------------------------------------------+| 11498| ||+-----------------------------------------------+ || 11499| |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || 11500| ||+-----------------------------------------------+ || 11501| |+-----------------------------------------------------------+| 11502| ||+---------------------------------------------------------+|| 11503| |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| 11504| ||+---------------------------------------------------------+|| 11505| |+-----------------------------------------------------------+| 11506| ||+--------------------------------------------+ || 11507| |||:diagtext:`field of` |nbsp| :placeholder:`C`| || 11508| ||+--------------------------------------------+ || 11509| |+-----------------------------------------------------------+| 11510| ||+----------------------------------------------+ || 11511| |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || 11512| ||+----------------------------------------------+ || 11513| |+-----------------------------------------------------------+| 11514| ||+-------------------------------------------------+ || 11515| |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || 11516| ||+-------------------------------------------------+ || 11517| |+-----------------------------------------------------------+| 11518+--------------------------------------------------------------------+-------------------------------------------------------------+ 11519 11520 11521-Wshift-count-negative 11522---------------------- 11523This diagnostic is enabled by default. 11524 11525**Diagnostic text:** 11526 11527+--------------------------------------------------------------+ 11528|:warning:`warning:` |nbsp| :diagtext:`shift count is negative`| 11529+--------------------------------------------------------------+ 11530 11531 11532-Wshift-count-overflow 11533---------------------- 11534This diagnostic is enabled by default. 11535 11536**Diagnostic text:** 11537 11538+-------------------------------------------------------------------+ 11539|:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`| 11540+-------------------------------------------------------------------+ 11541 11542 11543-Wshift-negative-value 11544---------------------- 11545This diagnostic is enabled by default. 11546 11547**Diagnostic text:** 11548 11549+------------------------------------------------------------------------------------+ 11550|:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`| 11551+------------------------------------------------------------------------------------+ 11552 11553 11554-Wshift-op-parentheses 11555---------------------- 11556This diagnostic is enabled by default. 11557 11558**Diagnostic text:** 11559 11560+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11561|:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`| 11562+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11563 11564 11565-Wshift-overflow 11566---------------- 11567This diagnostic is enabled by default. 11568 11569**Diagnostic text:** 11570 11571+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11572|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`| 11573+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11574 11575 11576-Wshift-sign-overflow 11577--------------------- 11578**Diagnostic text:** 11579 11580+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11581|:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`| 11582+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11583 11584 11585-Wshorten-64-to-32 11586------------------ 11587**Diagnostic text:** 11588 11589+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11590|:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 11591+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 11592 11593 11594-Wsign-compare 11595-------------- 11596**Diagnostic text:** 11597 11598+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11599|:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`| 11600+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 11601 11602 11603-Wsign-conversion 11604----------------- 11605**Diagnostic text:** 11606 11607+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11608|:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 11609+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11610 11611+---------------------------------------------------------------------------------------------------------------------------------------------+ 11612|:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 11613+---------------------------------------------------------------------------------------------------------------------------------------------+ 11614 11615+-----------------------------------------------------------------------------------------------------------+ 11616|:warning:`warning:` |nbsp| :diagtext:`the resulting value is always non-negative after implicit conversion`| 11617+-----------------------------------------------------------------------------------------------------------+ 11618 11619 11620-Wsign-promo 11621------------ 11622This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11623 11624-Wsigned-enum-bitfield 11625---------------------- 11626**Diagnostic text:** 11627 11628+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11629|:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`| 11630+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11631 11632 11633-Wsigned-unsigned-wchar 11634----------------------- 11635This diagnostic is an error by default, but the flag ``-Wno-signed-unsigned-wchar`` can be used to disable the error. 11636 11637**Diagnostic text:** 11638 11639+----------------------------------------------------------------------------------------------+ 11640|:error:`error:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`| 11641+----------------------------------------------------------------------------------------------+ 11642 11643 11644-Wsizeof-array-argument 11645----------------------- 11646This diagnostic is enabled by default. 11647 11648**Diagnostic text:** 11649 11650+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11651|:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 11652+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11653 11654 11655-Wsizeof-array-decay 11656-------------------- 11657This diagnostic is enabled by default. 11658 11659**Diagnostic text:** 11660 11661+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11662|:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| 11663+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11664 11665 11666-Wsizeof-array-div 11667------------------ 11668This diagnostic is enabled by default. 11669 11670**Diagnostic text:** 11671 11672+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11673|:warning:`warning:` |nbsp| :diagtext:`expression does not compute the number of elements in this array; element type is` |nbsp| :placeholder:`A`:diagtext:`, not` |nbsp| :placeholder:`B`| 11674+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11675 11676 11677-Wsizeof-pointer-div 11678-------------------- 11679This diagnostic is enabled by default. 11680 11681**Diagnostic text:** 11682 11683+-------------------------------------------------------------------------------------------------------------------------------+ 11684|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' will return the size of the pointer, not the array itself`| 11685+-------------------------------------------------------------------------------------------------------------------------------+ 11686 11687 11688-Wsizeof-pointer-memaccess 11689-------------------------- 11690This diagnostic is enabled by default. 11691 11692**Diagnostic text:** 11693 11694+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11695|:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`| 11696+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11697 11698+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 11699|:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`| 11700| ||:diagtext:`destination`|| | 11701| |+-----------------------+| | 11702| ||:diagtext:`source` || | 11703| |+-----------------------+| | 11704+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ 11705 11706 11707-Wslash-u-filename 11708------------------ 11709This diagnostic is enabled by default. 11710 11711**Diagnostic text:** 11712 11713+--------------------------------------------------------------------------------------------------+ 11714|:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`| 11715+--------------------------------------------------------------------------------------------------+ 11716 11717 11718-Wsometimes-uninitialized 11719------------------------- 11720**Diagnostic text:** 11721 11722+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 11723|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+| 11724| ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ || 11725| |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| || 11726| ||:diagtext:`captured`|| ||| ||:diagtext:`true` || || 11727| |+--------------------+| ||| |+-----------------+| || 11728| | | ||| ||:diagtext:`false`|| || 11729| | | ||| |+-----------------+| || 11730| | | ||+---------------------------------------------------------------+-------------------+ || 11731| | | |+------------------------------------------------------------------------------------------------------------+| 11732| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 11733| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 11734| | | ||| ||:diagtext:`is entered` |||| 11735| | | ||| |+------------------------------------------------+||| 11736| | | ||| ||:diagtext:`exits because its condition is false`|||| 11737| | | ||| |+------------------------------------------------+||| 11738| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 11739| | | |+------------------------------------------------------------------------------------------------------------+| 11740| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 11741| | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| 11742| | | ||| ||:diagtext:`condition is true` |||| 11743| | | ||| |+------------------------------------------------+||| 11744| | | ||| ||:diagtext:`exits because its condition is false`|||| 11745| | | ||| |+------------------------------------------------+||| 11746| | | ||+-------------------------------------------------------+--------------------------------------------------+|| 11747| | | |+------------------------------------------------------------------------------------------------------------+| 11748| | | ||+----------------------------------------------------------------------+ || 11749| | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| || 11750| | | ||+----------------------------------------------------------------------+ || 11751| | | |+------------------------------------------------------------------------------------------------------------+| 11752| | | ||:diagtext:`its declaration is reached` || 11753| | | |+------------------------------------------------------------------------------------------------------------+| 11754| | | ||+---------------------------------------------+ || 11755| | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| || 11756| | | ||+---------------------------------------------+ || 11757| | | |+------------------------------------------------------------------------------------------------------------+| 11758+-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ 11759 11760 11761-Wsource-uses-openmp 11762-------------------- 11763Some of the diagnostics controlled by this flag are enabled by default. 11764 11765**Diagnostic text:** 11766 11767+-----------------------------------------------------------------------------------------------------------------------------+ 11768|:warning:`warning:` |nbsp| :diagtext:`nesting \`omp begin/end declare variant\` is not supported yet; nested context ignored`| 11769+-----------------------------------------------------------------------------------------------------------------------------+ 11770 11771+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11772|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied to the function that was defined already; the original function might be used`| 11773+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11774 11775+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11776|:warning:`warning:` |nbsp| :diagtext:`'#pragma omp declare variant' cannot be applied for function after first usage; the original function might be used`| 11777+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 11778 11779+------------------------------------------------------------------------------------------------------------------------------------------+ 11780|:warning:`warning:` |nbsp| :diagtext:`variant function in '#pragma omp declare variant' is itself marked as '#pragma omp declare variant'`| 11781+------------------------------------------------------------------------------------------------------------------------------------------+ 11782 11783+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11784|:warning:`warning:` |nbsp| :diagtext:`score expressions in the OpenMP context selector need to be constant;` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not and will be ignored`| 11785+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11786 11787+------------------------------------------------------------------------------------------------------------------------------+ 11788|:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`| 11789+------------------------------------------------------------------------------------------------------------------------------+ 11790 11791+------------------------------------------------------------------------------+ 11792|:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`| 11793+------------------------------------------------------------------------------+ 11794 11795 11796-Wspir-compat 11797------------- 11798**Diagnostic text:** 11799 11800+----------------------------------------------------------------------------------------------------------------------+ 11801|:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`| 11802+----------------------------------------------------------------------------------------------------------------------+ 11803 11804 11805-Wstack-exhausted 11806----------------- 11807This diagnostic is enabled by default. 11808 11809**Diagnostic text:** 11810 11811+----------------------------------------------------------------------------------------------------------------------------------------+ 11812|:warning:`warning:` |nbsp| :diagtext:`stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely`| 11813+----------------------------------------------------------------------------------------------------------------------------------------+ 11814 11815 11816-Wstack-protector 11817----------------- 11818This diagnostic is enabled by default. 11819 11820**Diagnostic text:** 11821 11822+-------------------------------------------------------------------------------------------------------------------+ 11823|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`| 11824+-------------------------------------------------------------------------------------------------------------------+ 11825 11826 11827-Wstack-protector 11828----------------- 11829This diagnostic is enabled by default. 11830 11831**Diagnostic text:** 11832 11833+-------------------------------------------------------------------------------------------------------------------+ 11834|:warning:`warning:` |nbsp| :diagtext:`Unable to protect inline asm that clobbers stack pointer against stack clash`| 11835+-------------------------------------------------------------------------------------------------------------------+ 11836 11837 11838-Wstatic-float-init 11839------------------- 11840This diagnostic is enabled by default. 11841 11842Also controls `-Wgnu-static-float-init`_. 11843 11844**Diagnostic text:** 11845 11846+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11847|:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`| 11848+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11849 11850 11851-Wstatic-in-inline 11852------------------ 11853Some of the diagnostics controlled by this flag are enabled by default. 11854 11855**Diagnostic text:** 11856 11857+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 11858|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 11859| ||:diagtext:`function`|| | 11860| |+--------------------+| | 11861| ||:diagtext:`variable`|| | 11862| |+--------------------+| | 11863+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 11864 11865+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 11866|:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| 11867| ||:diagtext:`function`|| | 11868| |+--------------------+| | 11869| ||:diagtext:`variable`|| | 11870| |+--------------------+| | 11871+-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ 11872 11873 11874-Wstatic-inline-explicit-instantiation 11875-------------------------------------- 11876This diagnostic is enabled by default. 11877 11878**Diagnostic text:** 11879 11880+-------------------------------------------------+--------------------+--------------------------------------------------------+ 11881|:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`| 11882| ||:diagtext:`static`|| | 11883| |+------------------+| | 11884| ||:diagtext:`inline`|| | 11885| |+------------------+| | 11886+-------------------------------------------------+--------------------+--------------------------------------------------------+ 11887 11888 11889-Wstatic-local-in-inline 11890------------------------ 11891This diagnostic is enabled by default. 11892 11893**Diagnostic text:** 11894 11895+--------------------------------------------------------------------------------------------------------------------------------+ 11896|:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`| 11897+--------------------------------------------------------------------------------------------------------------------------------+ 11898 11899 11900-Wstatic-self-init 11901------------------ 11902This diagnostic is enabled by default. 11903 11904**Diagnostic text:** 11905 11906+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11907|:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`| 11908+----------------------------------------------------------------------------------------------------------------------------------------------------+ 11909 11910 11911-Wstdlibcxx-not-found 11912--------------------- 11913This diagnostic is enabled by default. 11914 11915**Diagnostic text:** 11916 11917+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11918|:warning:`warning:` |nbsp| :diagtext:`include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead`| 11919+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11920 11921 11922-Wstrict-aliasing 11923----------------- 11924This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11925 11926-Wstrict-aliasing=0 11927------------------- 11928This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11929 11930-Wstrict-aliasing=1 11931------------------- 11932This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11933 11934-Wstrict-aliasing=2 11935------------------- 11936This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11937 11938-Wstrict-overflow 11939----------------- 11940This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11941 11942-Wstrict-overflow=0 11943------------------- 11944This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11945 11946-Wstrict-overflow=1 11947------------------- 11948This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11949 11950-Wstrict-overflow=2 11951------------------- 11952This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11953 11954-Wstrict-overflow=3 11955------------------- 11956This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11957 11958-Wstrict-overflow=4 11959------------------- 11960This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11961 11962-Wstrict-overflow=5 11963------------------- 11964This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 11965 11966-Wstrict-prototypes 11967------------------- 11968**Diagnostic text:** 11969 11970+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 11971|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 11972| ||:diagtext:`function declaration is not` || | 11973| |+------------------------------------------------------------+| | 11974| ||:diagtext:`block declaration is not` || | 11975| |+------------------------------------------------------------+| | 11976| ||:diagtext:`old-style function definition is not preceded by`|| | 11977| |+------------------------------------------------------------+| | 11978+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 11979 11980 11981-Wstrict-prototypes 11982------------------- 11983**Diagnostic text:** 11984 11985+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 11986|:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| 11987| ||:diagtext:`function declaration is not` || | 11988| |+------------------------------------------------------------+| | 11989| ||:diagtext:`block declaration is not` || | 11990| |+------------------------------------------------------------+| | 11991| ||:diagtext:`old-style function definition is not preceded by`|| | 11992| |+------------------------------------------------------------+| | 11993+---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ 11994 11995 11996-Wstrict-selector-match 11997----------------------- 11998**Diagnostic text:** 11999 12000+--------------------------------------------------------------------------------------------------------------+ 12001|:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| 12002+--------------------------------------------------------------------------------------------------------------+ 12003 12004 12005-Wstring-compare 12006---------------- 12007This diagnostic is enabled by default. 12008 12009**Diagnostic text:** 12010 12011+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+ 12012|:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use an explicit string comparison function instead)`| 12013| ||:diagtext:`a string literal`|| | 12014| |+----------------------------+| | 12015| ||:diagtext:`@encode` || | 12016| |+----------------------------+| | 12017+---------------------------------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------+ 12018 12019 12020-Wstring-conversion 12021------------------- 12022**Diagnostic text:** 12023 12024+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12025|:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| 12026+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12027 12028 12029-Wstring-plus-char 12030------------------ 12031This diagnostic is enabled by default. 12032 12033**Diagnostic text:** 12034 12035+------------------------------------------------------------------------------------------------------------------------------------------+ 12036|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`| 12037+------------------------------------------------------------------------------------------------------------------------------------------+ 12038 12039 12040-Wstring-plus-int 12041----------------- 12042This diagnostic is enabled by default. 12043 12044**Diagnostic text:** 12045 12046+----------------------------------------------------------------------------------------------------------------------------------+ 12047|:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`| 12048+----------------------------------------------------------------------------------------------------------------------------------+ 12049 12050 12051-Wstrlcpy-strlcat-size 12052---------------------- 12053This diagnostic is enabled by default. 12054 12055**Diagnostic text:** 12056 12057+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12058|:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`| 12059+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12060 12061 12062-Wstrncat-size 12063-------------- 12064This diagnostic is enabled by default. 12065 12066**Diagnostic text:** 12067 12068+--------------------------------------------------------------------------------------------------------------------------------+ 12069|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`| 12070+--------------------------------------------------------------------------------------------------------------------------------+ 12071 12072+-------------------------------------------------------------------------------------------------------+ 12073|:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`| 12074+-------------------------------------------------------------------------------------------------------+ 12075 12076+-------------------------------------------------------------------------------------------+ 12077|:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`| 12078+-------------------------------------------------------------------------------------------+ 12079 12080 12081-Wsuper-class-method-mismatch 12082----------------------------- 12083**Diagnostic text:** 12084 12085+--------------------------------------------------------------------------------------------------------------------------------+ 12086|:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`| 12087+--------------------------------------------------------------------------------------------------------------------------------+ 12088 12089 12090-Wsuspicious-bzero 12091------------------ 12092This diagnostic is enabled by default. 12093 12094**Diagnostic text:** 12095 12096+----------------------------------------------------------------------+ 12097|:warning:`warning:` |nbsp| :diagtext:`'size' argument to bzero is '0'`| 12098+----------------------------------------------------------------------+ 12099 12100 12101-Wsuspicious-memaccess 12102---------------------- 12103This diagnostic is enabled by default. 12104 12105Controls `-Wdynamic-class-memaccess`_, `-Wmemset-transposed-args`_, `-Wnontrivial-memaccess`_, `-Wsizeof-pointer-memaccess`_, `-Wsuspicious-bzero`_. 12106 12107 12108-Wswitch 12109-------- 12110This diagnostic is enabled by default. 12111 12112**Diagnostic text:** 12113 12114+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12115|:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`| 12116+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12117 12118+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12119|:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12120| ||+----------------------------------------------------------------------------------------------+ || 12121| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| || 12122| ||+----------------------------------------------------------------------------------------------+ || 12123| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12124| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 12125| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| || 12126| ||+----------------------------------------------------------------------------------------------------------------------------------------------+ || 12127| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12128| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12129| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| || 12130| ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12131| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12132| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 12133| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 12134| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 12135| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12136+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12137 12138+------------------------------------------------------------------------------------------------+ 12139|:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`| 12140+------------------------------------------------------------------------------------------------+ 12141 12142 12143-Wswitch-bool 12144------------- 12145This diagnostic is enabled by default. 12146 12147**Diagnostic text:** 12148 12149+-------------------------------------------------------------------------+ 12150|:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`| 12151+-------------------------------------------------------------------------+ 12152 12153 12154-Wswitch-default 12155---------------- 12156This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 12157 12158-Wswitch-enum 12159------------- 12160**Diagnostic text:** 12161 12162+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12163|:warning:`warning:` |nbsp| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12164| ||+---------------------------------------------------------------------------------------------------------+ || 12165| |||:diagtext:`enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| || 12166| ||+---------------------------------------------------------------------------------------------------------+ || 12167| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12168| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12169| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| || 12170| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12171| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12172| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12173| |||:diagtext:`enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| || 12174| ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || 12175| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12176| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 12177| |||:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| 12178| ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| 12179| |+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| 12180+---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12181 12182 12183-Wsync-fetch-and-nand-semantics-changed 12184--------------------------------------- 12185This diagnostic is enabled by default. 12186 12187**Diagnostic text:** 12188 12189+-------------------------------------------------------------------------------------------------------------------------------------------+ 12190|:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`| 12191+-------------------------------------------------------------------------------------------------------------------------------------------+ 12192 12193 12194-Wsynth 12195------- 12196This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 12197 12198-Wtautological-bitwise-compare 12199------------------------------ 12200**Diagnostic text:** 12201 12202+-------------------------------------------------------------------------------------+-------------------+ 12203|:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+| 12204| ||:diagtext:`false`|| 12205| |+-----------------+| 12206| ||:diagtext:`true` || 12207| |+-----------------+| 12208+-------------------------------------------------------------------------------------+-------------------+ 12209 12210+----------------------------------------------------------------------------------------------+ 12211|:warning:`warning:` |nbsp| :diagtext:`bitwise or with non-zero value always evaluates to true`| 12212+----------------------------------------------------------------------------------------------+ 12213 12214 12215-Wtautological-compare 12216---------------------- 12217Some of the diagnostics controlled by this flag are enabled by default. 12218 12219Also controls `-Wtautological-bitwise-compare`_, `-Wtautological-constant-compare`_, `-Wtautological-objc-bool-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_. 12220 12221**Diagnostic text:** 12222 12223+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+ 12224|:warning:`warning:` |nbsp| |+-------------------------------------------------------------+| |nbsp| :diagtext:`to 1 byte is` |nbsp| |+-----------------------+| 12225| ||:diagtext:`aligning a value` || ||:diagtext:`a no-op` || 12226| |+-------------------------------------------------------------+| |+-----------------------+| 12227| ||:diagtext:`the result of checking whether a value is aligned`|| ||:diagtext:`always true`|| 12228| |+-------------------------------------------------------------+| |+-----------------------+| 12229+---------------------------+---------------------------------------------------------------+----------------------------------------+-------------------------+ 12230 12231+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+ 12232|:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+------------------------------------------+| 12233| ||:diagtext:`self-` || ||:diagtext:`a constant` || 12234| |+-------------------------+| |+------------------------------------------+| 12235| ||:diagtext:`array` |nbsp| || ||:diagtext:`true` || 12236| |+-------------------------+| |+------------------------------------------+| 12237| | | ||:diagtext:`false` || 12238| | | |+------------------------------------------+| 12239| | | ||:diagtext:`'std::strong\_ordering::equal'`|| 12240| | | |+------------------------------------------+| 12241+---------------------------+---------------------------+--------------------------------------------------+--------------------------------------------+ 12242 12243 12244-Wtautological-constant-compare 12245------------------------------- 12246This diagnostic is enabled by default. 12247 12248Also controls `-Wtautological-constant-out-of-range-compare`_. 12249 12250**Diagnostic text:** 12251 12252+-----------------------------------------------------------------------------------------------------------------------------------+ 12253|:warning:`warning:` |nbsp| :diagtext:`converting the result of '?:' with integer constants to a boolean always evaluates to 'true'`| 12254+-----------------------------------------------------------------------------------------------------------------------------------+ 12255 12256+-------------------------------------------------------------------------------------------------------------+-------------------+ 12257|:warning:`warning:` |nbsp| :diagtext:`converting the result of '<<' to a boolean always evaluates to` |nbsp| |+-----------------+| 12258| ||:diagtext:`false`|| 12259| |+-----------------+| 12260| ||:diagtext:`true` || 12261| |+-----------------+| 12262+-------------------------------------------------------------------------------------------------------------+-------------------+ 12263 12264+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 12265|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 12266| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 12267| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 12268| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 12269| |+----------------------------------------------+| |+--------------------------------------------------------+| | 12270| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 12271| |+----------------------------------------------+| |+--------------------------------------------------------+| | 12272| ||:diagtext:`false` || | | | 12273| |+----------------------------------------------+| | | | 12274+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 12275 12276 12277-Wtautological-constant-in-range-compare 12278---------------------------------------- 12279Controls `-Wtautological-type-limit-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_. 12280 12281 12282-Wtautological-constant-out-of-range-compare 12283-------------------------------------------- 12284This diagnostic is enabled by default. 12285 12286**Diagnostic text:** 12287 12288+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 12289|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 12290| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 12291| |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| | 12292| ||+--------------------------------------------+|| ||+------------------------------------------------------+|| | 12293| |+----------------------------------------------+| |+--------------------------------------------------------+| | 12294| ||:diagtext:`true` || ||:diagtext:`boolean expression` || | 12295| |+----------------------------------------------+| |+--------------------------------------------------------+| | 12296| ||:diagtext:`false` || | | | 12297| |+----------------------------------------------+| | | | 12298+----------------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-----------------------------------------------------+ 12299 12300 12301-Wtautological-objc-bool-compare 12302-------------------------------- 12303This diagnostic is enabled by default. 12304 12305**Diagnostic text:** 12306 12307+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12308|:warning:`warning:` |nbsp| :diagtext:`result of comparison of constant` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with expression of type 'BOOL' is always` |nbsp| :placeholder:`B`:diagtext:`, as the only well defined values for 'BOOL' are YES and NO`| 12309+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12310 12311 12312-Wtautological-overlap-compare 12313------------------------------ 12314**Diagnostic text:** 12315 12316+-----------------------------------------------------------------------------------------+-------------------+ 12317|:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+| 12318| ||:diagtext:`false`|| 12319| |+-----------------+| 12320| ||:diagtext:`true` || 12321| |+-----------------+| 12322+-----------------------------------------------------------------------------------------+-------------------+ 12323 12324 12325-Wtautological-pointer-compare 12326------------------------------ 12327This diagnostic is enabled by default. 12328 12329**Diagnostic text:** 12330 12331+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 12332|:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`| 12333| ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || | 12334| |+-------------------------+| |+-----------------------+| |+-----------------+| | 12335| ||:diagtext:`parameter` || || || ||:diagtext:`false`|| | 12336| |+-------------------------+| |+-----------------------+| |+-----------------+| | 12337+--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ 12338 12339+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 12340|:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+| 12341| ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || 12342| |+----------------------+| |+-----------------------+| |+-----------------+| 12343| ||:diagtext:`function` || || || ||:diagtext:`false`|| 12344| |+----------------------+| |+-----------------------+| |+-----------------+| 12345| ||:diagtext:`array` || | | | | 12346| |+----------------------+| | | | | 12347+------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ 12348 12349 12350-Wtautological-type-limit-compare 12351--------------------------------- 12352**Diagnostic text:** 12353 12354+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 12355|:warning:`warning:` |nbsp| :diagtext:`result of comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 12356| ||:placeholder:`D`|| ||:placeholder:`B`|| | 12357| |+----------------+| |+----------------+| | 12358| ||:placeholder:`B`|| ||:placeholder:`D`|| | 12359| |+----------------+| |+----------------+| | 12360+-------------------------------------------------------------------+------------------+--------------------------------+------------------+-----------------------------------------------------+ 12361 12362 12363-Wtautological-undefined-compare 12364-------------------------------- 12365This diagnostic is enabled by default. 12366 12367**Diagnostic text:** 12368 12369+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 12370|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 12371| ||:diagtext:`true` || 12372| |+-----------------+| 12373| ||:diagtext:`false`|| 12374| |+-----------------+| 12375+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 12376 12377+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 12378|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| 12379| ||:diagtext:`true` || 12380| |+-----------------+| 12381| ||:diagtext:`false`|| 12382| |+-----------------+| 12383+------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ 12384 12385 12386-Wtautological-unsigned-enum-zero-compare 12387----------------------------------------- 12388**Diagnostic text:** 12389 12390+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 12391|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 12392| ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| | 12393| |+------------------------------------+| |+------------------------------------+| | 12394| ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || | 12395| |+------------------------------------+| |+------------------------------------+| | 12396+----------------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-----------------------------------------------------+ 12397 12398 12399-Wtautological-unsigned-zero-compare 12400------------------------------------ 12401**Diagnostic text:** 12402 12403+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 12404|:warning:`warning:` |nbsp| :diagtext:`result of comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| :placeholder:`E`| 12405| ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| | 12406| |+-------------------------------+| |+-------------------------------+| | 12407| ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || | 12408| |+-------------------------------+| |+-------------------------------+| | 12409+----------------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-----------------------------------------------------+ 12410 12411 12412-Wtentative-definition-incomplete-type 12413-------------------------------------- 12414This diagnostic is enabled by default. 12415 12416**Diagnostic text:** 12417 12418+---------------------------------------------------------------------------------------------------------------------------------------------------+ 12419|:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`| 12420+---------------------------------------------------------------------------------------------------------------------------------------------------+ 12421 12422 12423-Wthread-safety 12424--------------- 12425Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_. 12426 12427 12428-Wthread-safety-analysis 12429------------------------ 12430**Diagnostic text:** 12431 12432+----------------------------------------------------------------------------------------------------------------------------------------------------+ 12433|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`| 12434+----------------------------------------------------------------------------------------------------------------------------------------------------+ 12435 12436+---------------------------------------------------------------------------------------------------------------------------------+ 12437|:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`| 12438+---------------------------------------------------------------------------------------------------------------------------------+ 12439 12440+---------------------------------------------------------------------+ 12441|:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`| 12442+---------------------------------------------------------------------+ 12443 12444+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12445|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`| 12446+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12447 12448+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12449|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`| 12450+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12451 12452+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12453|:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`| 12454+------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12455 12456+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12457|:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`| 12458+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12459 12460+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12461|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12462| ||+------------------------------------------+ || 12463| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12464| ||+------------------------------------------+ || 12465| |+--------------------------------------------------------+| 12466| ||+------------------------------------------------------+|| 12467| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12468| ||+------------------------------------------------------+|| 12469| |+--------------------------------------------------------+| 12470+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12471 12472+--------------------------------------------------------------------------------------------------------------------------------------------------+ 12473|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`| 12474+--------------------------------------------------------------------------------------------------------------------------------------------------+ 12475 12476+------------------------------------------------------------------------------------------------------------------------------------+ 12477|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`| 12478+------------------------------------------------------------------------------------------------------------------------------------+ 12479 12480+----------------------------------------------------------------------------------------------------------------------------------+ 12481|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`| 12482+----------------------------------------------------------------------------------------------------------------------------------+ 12483 12484+--------------------------------------------------------------------------------------------------------------------------------------------+ 12485|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`| 12486+--------------------------------------------------------------------------------------------------------------------------------------------+ 12487 12488+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 12489|:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`| 12490| ||:diagtext:`shared` || ||:diagtext:`shared` || | 12491| |+---------------------+| |+---------------------+| | 12492| ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| | 12493| |+---------------------+| |+---------------------+| | 12494+----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ 12495 12496+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 12497|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 12498| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 12499| |+-------------------+| |+---------------------------------+| 12500| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 12501| |+-------------------+| |+---------------------------------+| 12502+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------+-----------------------------------+ 12503 12504+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12505|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12506| ||:diagtext:`reading`|| ||+------------------------------------------+ || 12507| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12508| ||:diagtext:`writing`|| ||+------------------------------------------+ || 12509| |+-------------------+| |+--------------------------------------------------------+| 12510| | | ||+------------------------------------------------------+|| 12511| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12512| | | ||+------------------------------------------------------+|| 12513| | | |+--------------------------------------------------------+| 12514+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12515 12516+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 12517|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires holding` |nbsp| |+---------------------------------+| 12518| ||:diagtext:`reading`|| ||:diagtext:`any mutex` || 12519| |+-------------------+| |+---------------------------------+| 12520| ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| 12521| |+-------------------+| |+---------------------------------+| 12522+---------------------------+---------------------+------------------------------------------------------------------------------------------------+-----------------------------------+ 12523 12524+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12525|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12526| ||:diagtext:`reading`|| ||+------------------------------------------+ || 12527| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12528| ||:diagtext:`writing`|| ||+------------------------------------------+ || 12529| |+-------------------+| |+--------------------------------------------------------+| 12530| | | ||+------------------------------------------------------+|| 12531| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12532| | | ||+------------------------------------------------------+|| 12533| | | |+--------------------------------------------------------+| 12534+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12535 12536 12537-Wthread-safety-attributes 12538-------------------------- 12539**Diagnostic text:** 12540 12541+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12542|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`| 12543+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12544 12545+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12546|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability' attribute`| 12547+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12548 12549+----------------------------------------------------------------------------------------------------------------------------------+ 12550|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`| 12551+----------------------------------------------------------------------------------------------------------------------------------+ 12552 12553+------------------------------------------------------------------------------------------------------------------------------------+ 12554|:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`| 12555+------------------------------------------------------------------------------------------------------------------------------------+ 12556 12557+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12558|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments refers to 'this', but` |nbsp| :placeholder:`B` |nbsp| :diagtext:`isn't annotated with 'capability' or 'scoped\_lockable' attribute`| 12559+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12560 12561+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12562|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute without capability arguments can only be applied to non-static methods of a class`| 12563+----------------------------------------------------------------------------------------------------------------------------------------------------------+ 12564 12565 12566-Wthread-safety-beta 12567-------------------- 12568**Diagnostic text:** 12569 12570+------------------------------------------------------------------+ 12571|:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`| 12572+------------------------------------------------------------------+ 12573 12574 12575-Wthread-safety-negative 12576------------------------ 12577**Diagnostic text:** 12578 12579+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12580|:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`| 12581+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12582 12583 12584-Wthread-safety-precise 12585----------------------- 12586**Diagnostic text:** 12587 12588+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12589|:warning:`warning:` |nbsp| :diagtext:`calling function` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12590| ||+------------------------------------------+ || 12591| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12592| ||+------------------------------------------+ || 12593| |+--------------------------------------------------------+| 12594| ||+------------------------------------------------------+|| 12595| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12596| ||+------------------------------------------------------+|| 12597| |+--------------------------------------------------------+| 12598+---------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12599 12600+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12601|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12602| ||:diagtext:`reading`|| ||+------------------------------------------+ || 12603| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12604| ||:diagtext:`writing`|| ||+------------------------------------------+ || 12605| |+-------------------+| |+--------------------------------------------------------+| 12606| | | ||+------------------------------------------------------+|| 12607| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12608| | | ||+------------------------------------------------------+|| 12609| | | |+--------------------------------------------------------+| 12610+---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12611 12612+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12613|:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12614| ||:diagtext:`reading`|| ||+------------------------------------------+ || 12615| |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12616| ||:diagtext:`writing`|| ||+------------------------------------------+ || 12617| |+-------------------+| |+--------------------------------------------------------+| 12618| | | ||+------------------------------------------------------+|| 12619| | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12620| | | ||+------------------------------------------------------+|| 12621| | | |+--------------------------------------------------------+| 12622+---------------------------+---------------------+------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12623 12624 12625-Wthread-safety-reference 12626------------------------- 12627**Diagnostic text:** 12628 12629+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12630|:warning:`warning:` |nbsp| :diagtext:`passing variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12631| ||+------------------------------------------+ || 12632| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12633| ||+------------------------------------------+ || 12634| |+--------------------------------------------------------+| 12635| ||+------------------------------------------------------+|| 12636| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12637| ||+------------------------------------------------------+|| 12638| |+--------------------------------------------------------+| 12639+----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12640 12641+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12642|:warning:`warning:` |nbsp| :diagtext:`passing the value that` |nbsp| :placeholder:`B` |nbsp| :diagtext:`points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| 12643| ||+------------------------------------------+ || 12644| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || 12645| ||+------------------------------------------+ || 12646| |+--------------------------------------------------------+| 12647| ||+------------------------------------------------------+|| 12648| |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| 12649| ||+------------------------------------------------------+|| 12650| |+--------------------------------------------------------+| 12651+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ 12652 12653 12654-Wthread-safety-verbose 12655----------------------- 12656**Diagnostic text:** 12657 12658+---------------------------------------------------------------------+ 12659|:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`| 12660+---------------------------------------------------------------------+ 12661 12662 12663-Wtrigraphs 12664----------- 12665This diagnostic is enabled by default. 12666 12667**Diagnostic text:** 12668 12669+-----------------------------------------------------------------------------------------------------+ 12670|:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`| 12671+-----------------------------------------------------------------------------------------------------+ 12672 12673+------------------------------------------------------------------+ 12674|:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`| 12675+------------------------------------------------------------------+ 12676 12677+-------------------------------------------------------+ 12678|:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`| 12679+-------------------------------------------------------+ 12680 12681+-------------------------------------------------------------------------------+ 12682|:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`| 12683+-------------------------------------------------------------------------------+ 12684 12685 12686-Wtype-limits 12687------------- 12688Synonym for `-Wtautological-constant-in-range-compare`_. 12689 12690 12691-Wtype-limits 12692------------- 12693Synonym for `-Wtautological-constant-in-range-compare`_. 12694 12695 12696-Wtype-safety 12697------------- 12698This diagnostic is enabled by default. 12699 12700**Diagnostic text:** 12701 12702+----------------------------------------------------------------------------------------------------------------------------+ 12703|:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`| 12704+----------------------------------------------------------------------------------------------------------------------------+ 12705 12706+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 12707|:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+| 12708| ||+-------------------------------------------------+|| 12709| |||:diagtext:`that requires` |nbsp| :placeholder:`D`||| 12710| ||+-------------------------------------------------+|| 12711| |+---------------------------------------------------+| 12712| || || 12713| |+---------------------------------------------------+| 12714+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ 12715 12716+---------------------------------------------------------------------------------------------------+ 12717|:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`| 12718+---------------------------------------------------------------------------------------------------+ 12719 12720 12721-Wtypedef-redefinition 12722---------------------- 12723This diagnostic is enabled by default. 12724 12725**Diagnostic text:** 12726 12727+--------------------------------------------------------------------------------------------------------------------------+ 12728|:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`| 12729+--------------------------------------------------------------------------------------------------------------------------+ 12730 12731 12732-Wtypename-missing 12733------------------ 12734This diagnostic is enabled by default. 12735 12736**Diagnostic text:** 12737 12738+-------------------------------------------------------------------------------------------------------------------------------------+ 12739|:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`| 12740+-------------------------------------------------------------------------------------------------------------------------------------+ 12741 12742 12743-Wunable-to-open-stats-file 12744--------------------------- 12745This diagnostic is enabled by default. 12746 12747**Diagnostic text:** 12748 12749+-------------------------------------------------------------------------------------------------------------------------------------------+ 12750|:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| 12751+-------------------------------------------------------------------------------------------------------------------------------------------+ 12752 12753 12754-Wunavailable-declarations 12755-------------------------- 12756This diagnostic is enabled by default. 12757 12758**Diagnostic text:** 12759 12760+----------------------------------------------------------------------------------------------------------------------+ 12761|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`| 12762+----------------------------------------------------------------------------------------------------------------------+ 12763 12764 12765-Wundeclared-selector 12766--------------------- 12767**Diagnostic text:** 12768 12769+----------------------------------------------------------------------------------+ 12770|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`| 12771+----------------------------------------------------------------------------------+ 12772 12773+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12774|:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`| 12775+-------------------------------------------------------------------------------------------------------------------------------------------------+ 12776 12777 12778-Wundef 12779------- 12780**Diagnostic text:** 12781 12782+---------------------------------------------------------------------------------------------+ 12783|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`| 12784+---------------------------------------------------------------------------------------------+ 12785 12786 12787-Wundefined-bool-conversion 12788--------------------------- 12789This diagnostic is enabled by default. 12790 12791**Diagnostic text:** 12792 12793+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12794|:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`| 12795+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12796 12797+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12798|:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`| 12799+-----------------------------------------------------------------------------------------------------------------------------------------------+ 12800 12801 12802-Wundefined-func-template 12803------------------------- 12804**Diagnostic text:** 12805 12806+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12807|:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 12808+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12809 12810 12811-Wundefined-inline 12812------------------ 12813This diagnostic is enabled by default. 12814 12815**Diagnostic text:** 12816 12817+----------------------------------------------------------------------------------------------------------------+ 12818|:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`| 12819+----------------------------------------------------------------------------------------------------------------+ 12820 12821 12822-Wundefined-internal 12823-------------------- 12824This diagnostic is enabled by default. 12825 12826**Diagnostic text:** 12827 12828+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 12829|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`| 12830| ||:diagtext:`function`|| | 12831| |+--------------------+| | 12832| ||:diagtext:`variable`|| | 12833| |+--------------------+| | 12834+---------------------------+----------------------+-----------------------------------------------------------------------------------+ 12835 12836 12837-Wundefined-internal-type 12838------------------------- 12839**Diagnostic text:** 12840 12841+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 12842|:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`| 12843| ||:diagtext:`function`|| | 12844| |+--------------------+| | 12845| ||:diagtext:`variable`|| | 12846| |+--------------------+| | 12847+---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ 12848 12849 12850-Wundefined-reinterpret-cast 12851---------------------------- 12852**Diagnostic text:** 12853 12854+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12855|:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`| 12856+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12857 12858+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12859|:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`| 12860+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12861 12862 12863-Wundefined-var-template 12864------------------------ 12865This diagnostic is enabled by default. 12866 12867**Diagnostic text:** 12868 12869+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12870|:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| 12871+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 12872 12873 12874-Wunderaligned-exception-object 12875------------------------------- 12876This diagnostic is enabled by default. 12877 12878**Diagnostic text:** 12879 12880+---------------------------------------------------------------------------+ 12881|:warning:`warning:` |nbsp| :diagtext:`underaligned exception object thrown`| 12882+---------------------------------------------------------------------------+ 12883 12884 12885-Wunevaluated-expression 12886------------------------ 12887This diagnostic is enabled by default. 12888 12889Also controls `-Wpotentially-evaluated-expression`_. 12890 12891**Diagnostic text:** 12892 12893+-----------------------------------------------------------------------------------------------------------+ 12894|:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`| 12895+-----------------------------------------------------------------------------------------------------------+ 12896 12897 12898-Wunguarded-availability 12899------------------------ 12900Some of the diagnostics controlled by this flag are enabled by default. 12901 12902Also controls `-Wunguarded-availability-new`_. 12903 12904**Diagnostic text:** 12905 12906+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12907|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 12908+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12909 12910 12911-Wunguarded-availability-new 12912---------------------------- 12913This diagnostic is enabled by default. 12914 12915**Diagnostic text:** 12916 12917+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12918|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| 12919+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12920 12921 12922-Wunicode 12923--------- 12924This diagnostic is enabled by default. 12925 12926**Diagnostic text:** 12927 12928+-------------------------------------------------------------------------------------------------------------------+ 12929|:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`| 12930+-------------------------------------------------------------------------------------------------------------------+ 12931 12932+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 12933|:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`| 12934+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 12935 12936+-----------------------------------------------------------------------------------------------+ 12937|:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`| 12938+-----------------------------------------------------------------------------------------------+ 12939 12940+--------------------------------------------------------------------------------------------------------------------------------------+ 12941|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`| 12942+--------------------------------------------------------------------------------------------------------------------------------------+ 12943 12944+---------------------------------------------------------------------------------------------+ 12945|:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`| 12946+---------------------------------------------------------------------------------------------+ 12947 12948 12949-Wunicode-homoglyph 12950------------------- 12951This diagnostic is enabled by default. 12952 12953**Diagnostic text:** 12954 12955+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12956|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character <U+`:placeholder:`A`:diagtext:`> as identifier character rather than as '`:placeholder:`B`:diagtext:`' symbol`| 12957+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12958 12959 12960-Wunicode-whitespace 12961-------------------- 12962This diagnostic is enabled by default. 12963 12964**Diagnostic text:** 12965 12966+-------------------------------------------------------------------------------+ 12967|:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`| 12968+-------------------------------------------------------------------------------+ 12969 12970 12971-Wunicode-zero-width 12972-------------------- 12973This diagnostic is enabled by default. 12974 12975**Diagnostic text:** 12976 12977+----------------------------------------------------------------------------------------------------------------------------------------------------+ 12978|:warning:`warning:` |nbsp| :diagtext:`identifier contains Unicode character <U+`:placeholder:`A`:diagtext:`> that is invisible in some environments`| 12979+----------------------------------------------------------------------------------------------------------------------------------------------------+ 12980 12981 12982-Wuninitialized 12983--------------- 12984Some of the diagnostics controlled by this flag are enabled by default. 12985 12986Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_. 12987 12988**Diagnostic text:** 12989 12990+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12991|:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`| 12992+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 12993 12994+-----------------------------------------------------------------------------------------------------------------------+ 12995|:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`| 12996+-----------------------------------------------------------------------------------------------------------------------+ 12997 12998+--------------------------------------------------------------------------------------------------------------------------------------+ 12999|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`| 13000+--------------------------------------------------------------------------------------------------------------------------------------+ 13001 13002+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+ 13003|:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-------------------------+| |nbsp| :diagtext:`when captured by block`| 13004| ||:diagtext:`uninitialized`|| | 13005| |+-------------------------+| | 13006| ||:diagtext:`null` || | 13007| |+-------------------------+| | 13008+-------------------------------------------------------------------------------------------------------------------+---------------------------+------------------------------------------+ 13009 13010+---------------------------------------------------------------------------------------------------------------------------------------------------+ 13011|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`| 13012+---------------------------------------------------------------------------------------------------------------------------------------------------+ 13013 13014+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13015|:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`| 13016+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13017 13018+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 13019|:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+| 13020| ||:diagtext:`used here` || 13021| |+-----------------------------+| 13022| ||:diagtext:`captured by block`|| 13023| |+-----------------------------+| 13024+------------------------------------------------------------------------------------------------------------------------+-------------------------------+ 13025 13026 13027-Wunknown-argument 13028------------------ 13029This diagnostic is enabled by default. 13030 13031**Diagnostic text:** 13032 13033+-----------------------------------------------------------------------------------------------------------+ 13034|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`| 13035+-----------------------------------------------------------------------------------------------------------+ 13036 13037+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 13038|:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| 13039+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 13040 13041 13042-Wunknown-attributes 13043-------------------- 13044This diagnostic is enabled by default. 13045 13046**Diagnostic text:** 13047 13048+-----------------------------------------------------------------------------------------------------------+ 13049|:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`| 13050+-----------------------------------------------------------------------------------------------------------+ 13051 13052 13053-Wunknown-cuda-version 13054---------------------- 13055This diagnostic is enabled by default. 13056 13057**Diagnostic text:** 13058 13059+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13060|:warning:`warning:` |nbsp| :diagtext:`Unknown CUDA version` |nbsp| :placeholder:`A`:diagtext:`. Assuming the latest supported version` |nbsp| :placeholder:`B`| 13061+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13062 13063 13064-Wunknown-escape-sequence 13065------------------------- 13066This diagnostic is enabled by default. 13067 13068**Diagnostic text:** 13069 13070+-----------------------------------------------------------------------------------------------+ 13071|:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`| 13072+-----------------------------------------------------------------------------------------------+ 13073 13074 13075-Wunknown-pragmas 13076----------------- 13077Some of the diagnostics controlled by this flag are enabled by default. 13078 13079**Diagnostic text:** 13080 13081+------------------------------------------------------------------------------------+ 13082|:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`| 13083+------------------------------------------------------------------------------------+ 13084 13085+--------------------------------------------------------------------------+ 13086|:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`| 13087+--------------------------------------------------------------------------+ 13088 13089+-----------------------------------------------------------------------+ 13090|:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`| 13091+-----------------------------------------------------------------------+ 13092 13093+--------------------------------------------------------------------------------------------+ 13094|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`| 13095+--------------------------------------------------------------------------------------------+ 13096 13097+--------------------------------------------------------------------------------------------------------------------------+ 13098|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`| 13099+--------------------------------------------------------------------------------------------------------------------------+ 13100 13101+----------------------------------------------------------------------------------------------+ 13102|:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`| 13103+----------------------------------------------------------------------------------------------+ 13104 13105+----------------------------------------------------------------------------+ 13106|:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`| 13107+----------------------------------------------------------------------------+ 13108 13109+----------------------------------------------------------------------------------------------------------------+ 13110|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected '`:placeholder:`A`:diagtext:`'`| 13111+----------------------------------------------------------------------------------------------------------------+ 13112 13113+------------------------------------------------------------------------------------------------------------------------------------------------+ 13114|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set invalid value '`:placeholder:`A`:diagtext:`', only 'UTF-8' is supported`| 13115+------------------------------------------------------------------------------------------------------------------------------------------------+ 13116 13117+-------------------------------------------------------------------------------------------------+ 13118|:warning:`warning:` |nbsp| :diagtext:`#pragma execution\_character\_set expected 'push' or 'pop'`| 13119+-------------------------------------------------------------------------------------------------+ 13120 13121+-------------------------------------------------------------+ 13122|:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`| 13123+-------------------------------------------------------------+ 13124 13125+----------------------------------------------------------------------------------------------------+ 13126|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`| 13127+----------------------------------------------------------------------------------------------------+ 13128 13129+--------------------------------------------------------------------------------------+ 13130|:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`| 13131+--------------------------------------------------------------------------------------+ 13132 13133+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13134|:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`| 13135+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13136 13137+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13138|:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`| 13139+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13140 13141+----------------------------------------------------------------------------------------------+ 13142|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`| 13143+----------------------------------------------------------------------------------------------+ 13144 13145+--------------------------------------------------------------------------------+ 13146|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`| 13147+--------------------------------------------------------------------------------+ 13148 13149+----------------------------------------------------------------------------------------------------+ 13150|:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`| 13151+----------------------------------------------------------------------------------------------------+ 13152 13153+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13154|:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`| 13155+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13156 13157+----------------------------------------------------------------------------------------------------+ 13158|:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`| 13159+----------------------------------------------------------------------------------------------------+ 13160 13161 13162-Wunknown-sanitizers 13163-------------------- 13164This diagnostic is enabled by default. 13165 13166**Diagnostic text:** 13167 13168+-----------------------------------------------------------------------------------------------+ 13169|:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`| 13170+-----------------------------------------------------------------------------------------------+ 13171 13172 13173-Wunknown-warning-option 13174------------------------ 13175This diagnostic is enabled by default. 13176 13177**Diagnostic text:** 13178 13179+----------------------------------------------------------------------------------------------------+ 13180|:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`| 13181+----------------------------------------------------------------------------------------------------+ 13182 13183+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 13184|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+| 13185| ||:diagtext:`warning`|| || || 13186| |+-------------------+| |+------------------------------------------------------------+| 13187| ||:diagtext:`remark` || ||+----------------------------------------------------------+|| 13188| |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`||| 13189| | | ||+----------------------------------------------------------+|| 13190| | | |+------------------------------------------------------------+| 13191+------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ 13192 13193+-------------------------------------------------------------------------------------------------------------------------------------------+ 13194|:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`| 13195+-------------------------------------------------------------------------------------------------------------------------------------------+ 13196 13197 13198-Wunnamed-type-template-args 13199---------------------------- 13200Some of the diagnostics controlled by this flag are enabled by default. 13201 13202Also controls `-Wc++98-compat-unnamed-type-template-args`_. 13203 13204**Diagnostic text:** 13205 13206+--------------------------------------------------------------------------+ 13207|:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`| 13208+--------------------------------------------------------------------------+ 13209 13210 13211-Wunneeded-internal-declaration 13212------------------------------- 13213**Diagnostic text:** 13214 13215+---------------------------+----------------------+---------------------------------------------------------------------------------+ 13216|:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`| 13217| ||:diagtext:`function`|| | 13218| |+--------------------+| | 13219| ||:diagtext:`variable`|| | 13220| |+--------------------+| | 13221+---------------------------+----------------------+---------------------------------------------------------------------------------+ 13222 13223+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13224|:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`| 13225+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13226 13227 13228-Wunneeded-member-function 13229-------------------------- 13230**Diagnostic text:** 13231 13232+---------------------------------------------------------------------------------------------------------------------------------------+ 13233|:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`| 13234+---------------------------------------------------------------------------------------------------------------------------------------+ 13235 13236 13237-Wunreachable-code 13238------------------ 13239Also controls `-Wunreachable-code-loop-increment`_. 13240 13241**Diagnostic text:** 13242 13243+------------------------------------------------------------------+ 13244|:warning:`warning:` |nbsp| :diagtext:`code will never be executed`| 13245+------------------------------------------------------------------+ 13246 13247 13248-Wunreachable-code-aggressive 13249----------------------------- 13250Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_. 13251 13252 13253-Wunreachable-code-break 13254------------------------ 13255**Diagnostic text:** 13256 13257+---------------------------------------------------------------------+ 13258|:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`| 13259+---------------------------------------------------------------------+ 13260 13261 13262-Wunreachable-code-loop-increment 13263--------------------------------- 13264**Diagnostic text:** 13265 13266+-------------------------------------------------------------------------------------------------+ 13267|:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`| 13268+-------------------------------------------------------------------------------------------------+ 13269 13270 13271-Wunreachable-code-return 13272------------------------- 13273**Diagnostic text:** 13274 13275+----------------------------------------------------------------------+ 13276|:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`| 13277+----------------------------------------------------------------------+ 13278 13279 13280-Wunsequenced 13281------------- 13282This diagnostic is enabled by default. 13283 13284**Diagnostic text:** 13285 13286+----------------------------------------------------------------------------------------------------+ 13287|:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`| 13288+----------------------------------------------------------------------------------------------------+ 13289 13290+-----------------------------------------------------------------------------------------------------+ 13291|:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`| 13292+-----------------------------------------------------------------------------------------------------+ 13293 13294 13295-Wunsupported-abs 13296----------------- 13297This diagnostic is enabled by default. 13298 13299**Diagnostic text:** 13300 13301+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13302|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 13303+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13304 13305+-------------------------------------------------------------------------------------------------------------------------------------------------+ 13306|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 13307+-------------------------------------------------------------------------------------------------------------------------------------------------+ 13308 13309 13310-Wunsupported-availability-guard 13311-------------------------------- 13312This diagnostic is enabled by default. 13313 13314**Diagnostic text:** 13315 13316+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 13317|:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`| 13318| ||:diagtext:`@available` || ||:diagtext:`@available` || | 13319| |+----------------------------------+| |+----------------------------------+| | 13320| ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| | 13321| |+----------------------------------+| |+----------------------------------+| | 13322+---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ 13323 13324 13325-Wunsupported-cb 13326---------------- 13327This diagnostic is enabled by default. 13328 13329**Diagnostic text:** 13330 13331+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 13332|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 13333+--------------------------------------------------------------------------------------------------------------------------------------------------------+ 13334 13335 13336-Wunsupported-dll-base-class-template 13337------------------------------------- 13338**Diagnostic text:** 13339 13340+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 13341|:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`| 13342| ||:diagtext:`already instantiated` || | 13343| |+----------------------------------+| | 13344| ||:diagtext:`explicitly specialized`|| | 13345| |+----------------------------------+| | 13346+---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ 13347 13348 13349-Wunsupported-friend 13350-------------------- 13351This diagnostic is enabled by default. 13352 13353**Diagnostic text:** 13354 13355+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13356|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`| 13357+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13358 13359+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13360|:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`| 13361+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13362 13363 13364-Wunsupported-gpopt 13365------------------- 13366This diagnostic is enabled by default. 13367 13368**Diagnostic text:** 13369 13370+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 13371|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| 13372| || || | 13373| |+-----------------------------------------+| | 13374| ||:diagtext:`the implicit usage of` |nbsp| || | 13375| |+-----------------------------------------+| | 13376+--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ 13377 13378 13379-Wunsupported-nan 13380----------------- 13381This diagnostic is enabled by default. 13382 13383**Diagnostic text:** 13384 13385+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13386|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 13387+-----------------------------------------------------------------------------------------------------------------------------------------------+ 13388 13389+-------------------------------------------------------------------------------------------------------------------------------------------------+ 13390|:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| 13391+-------------------------------------------------------------------------------------------------------------------------------------------------+ 13392 13393 13394-Wunsupported-target-opt 13395------------------------ 13396This diagnostic is enabled by default. 13397 13398**Diagnostic text:** 13399 13400+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 13401|:warning:`warning:` |nbsp| :diagtext:`debug information option '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| 13402+---------------------------------------------------------------------------------------------------------------------------------------------------------+ 13403 13404 13405-Wunsupported-visibility 13406------------------------ 13407This diagnostic is enabled by default. 13408 13409**Diagnostic text:** 13410 13411+------------------------------------------------------------------------------------------------------+ 13412|:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`| 13413+------------------------------------------------------------------------------------------------------+ 13414 13415 13416-Wunusable-partial-specialization 13417--------------------------------- 13418This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error. 13419 13420**Diagnostic text:** 13421 13422+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 13423|:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`| 13424| ||:diagtext:`class` || ||:diagtext:`a template parameter`|| | 13425| |+--------------------+| |+--------------------------------+| | 13426| ||:diagtext:`variable`|| ||:diagtext:`template parameters` || | 13427| |+--------------------+| |+--------------------------------+| | 13428+-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ 13429 13430 13431-Wunused 13432-------- 13433Some of the diagnostics controlled by this flag are enabled by default. 13434 13435Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_. 13436 13437 13438-Wunused-argument 13439----------------- 13440This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 13441 13442-Wunused-command-line-argument 13443------------------------------ 13444This diagnostic is enabled by default. 13445 13446**Diagnostic text:** 13447 13448+-------------------------------------------------------------------------------------------------------------------------------+ 13449|:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`| 13450+-------------------------------------------------------------------------------------------------------------------------------+ 13451 13452+---------------------------------------------------------------------------------------------------------------+ 13453|:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`| 13454+---------------------------------------------------------------------------------------------------------------+ 13455 13456+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 13457|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+| 13458| ||+------------------------------------------------------------------+|| 13459| ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`||| 13460| ||+------------------------------------------------------------------+|| 13461| |+--------------------------------------------------------------------+| 13462| || || 13463| |+--------------------------------------------------------------------+| 13464+----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ 13465 13466+----------------------------------------------------------------------------------------------------------------+ 13467|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`| 13468+----------------------------------------------------------------------------------------------------------------+ 13469 13470+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 13471|:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+| 13472| ||+-------------------------------------------------------------------------+|| 13473| ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`||| 13474| ||+-------------------------------------------------------------------------+|| 13475| |+---------------------------------------------------------------------------+| 13476| || || 13477| |+---------------------------------------------------------------------------+| 13478+--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ 13479 13480+---------------------------------------------------------------------------------------------------------+ 13481|:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`| 13482+---------------------------------------------------------------------------------------------------------+ 13483 13484+----------------------------------------------------------------------------------------------------------------------+ 13485|:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`| 13486+----------------------------------------------------------------------------------------------------------------------+ 13487 13488+--------------------------------------------------------------------------------------+ 13489|:warning:`warning:` |nbsp| :diagtext:`ignoring -fdiscard-value-names for LLVM Bitcode`| 13490+--------------------------------------------------------------------------------------+ 13491 13492 13493-Wunused-comparison 13494------------------- 13495This diagnostic is enabled by default. 13496 13497**Diagnostic text:** 13498 13499+---------------------------+------------------------+--------------------------------------------+ 13500|:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`comparison result unused`| 13501| ||:diagtext:`equality` || | 13502| |+----------------------+| | 13503| ||:diagtext:`inequality`|| | 13504| |+----------------------+| | 13505| ||:diagtext:`relational`|| | 13506| |+----------------------+| | 13507| ||:diagtext:`three-way` || | 13508| |+----------------------+| | 13509+---------------------------+------------------------+--------------------------------------------+ 13510 13511 13512-Wunused-const-variable 13513----------------------- 13514**Diagnostic text:** 13515 13516+------------------------------------------------------------------------------+ 13517|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 13518+------------------------------------------------------------------------------+ 13519 13520 13521-Wunused-exception-parameter 13522---------------------------- 13523**Diagnostic text:** 13524 13525+-----------------------------------------------------------------------------------------+ 13526|:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`| 13527+-----------------------------------------------------------------------------------------+ 13528 13529 13530-Wunused-function 13531----------------- 13532Also controls `-Wunneeded-internal-declaration`_. 13533 13534**Diagnostic text:** 13535 13536+------------------------------------------------------------------------------+ 13537|:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`| 13538+------------------------------------------------------------------------------+ 13539 13540 13541-Wunused-getter-return-value 13542---------------------------- 13543This diagnostic is enabled by default. 13544 13545**Diagnostic text:** 13546 13547+------------------------------------------------------------------------------------------------------------------+ 13548|:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`| 13549+------------------------------------------------------------------------------------------------------------------+ 13550 13551 13552-Wunused-label 13553-------------- 13554**Diagnostic text:** 13555 13556+---------------------------------------------------------------------------+ 13557|:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`| 13558+---------------------------------------------------------------------------+ 13559 13560 13561-Wunused-lambda-capture 13562----------------------- 13563**Diagnostic text:** 13564 13565+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 13566|:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+| 13567| ||:diagtext:`used` || 13568| |+------------------------------------------------+| 13569| ||:diagtext:`required to be captured for this use`|| 13570| |+------------------------------------------------+| 13571+---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ 13572 13573 13574-Wunused-local-typedef 13575---------------------- 13576**Diagnostic text:** 13577 13578+-----------------------------------------------------+------------------------+------------------------+ 13579|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`| 13580| ||:diagtext:`typedef` || | 13581| |+----------------------+| | 13582| ||:diagtext:`type alias`|| | 13583| |+----------------------+| | 13584+-----------------------------------------------------+------------------------+------------------------+ 13585 13586 13587-Wunused-local-typedefs 13588----------------------- 13589Synonym for `-Wunused-local-typedef`_. 13590 13591 13592-Wunused-macros 13593--------------- 13594**Diagnostic text:** 13595 13596+--------------------------------------------------------+ 13597|:warning:`warning:` |nbsp| :diagtext:`macro is not used`| 13598+--------------------------------------------------------+ 13599 13600 13601-Wunused-member-function 13602------------------------ 13603Also controls `-Wunneeded-member-function`_. 13604 13605**Diagnostic text:** 13606 13607+-------------------------------------------------------------------------------------+ 13608|:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`| 13609+-------------------------------------------------------------------------------------+ 13610 13611 13612-Wunused-parameter 13613------------------ 13614**Diagnostic text:** 13615 13616+-------------------------------------------------------------------------------+ 13617|:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`| 13618+-------------------------------------------------------------------------------+ 13619 13620 13621-Wunused-private-field 13622---------------------- 13623**Diagnostic text:** 13624 13625+-----------------------------------------------------------------------------------------------------------+ 13626|:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`| 13627+-----------------------------------------------------------------------------------------------------------+ 13628 13629 13630-Wunused-property-ivar 13631---------------------- 13632**Diagnostic text:** 13633 13634+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13635|:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`| 13636+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13637 13638 13639-Wunused-result 13640--------------- 13641This diagnostic is enabled by default. 13642 13643**Diagnostic text:** 13644 13645+-------------------------------------------------------------------------------------------------------------------------------------------+ 13646|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 13647+-------------------------------------------------------------------------------------------------------------------------------------------+ 13648 13649+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13650|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`| 13651+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13652 13653 13654-Wunused-template 13655----------------- 13656Also controls `-Wunneeded-internal-declaration`_. 13657 13658**Diagnostic text:** 13659 13660+-----------------------------------------------------+----------------------+----------------------------------------------------+ 13661|:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`| 13662| ||:diagtext:`function`|| | 13663| |+--------------------+| | 13664| ||:diagtext:`variable`|| | 13665| |+--------------------+| | 13666+-----------------------------------------------------+----------------------+----------------------------------------------------+ 13667 13668 13669-Wunused-value 13670-------------- 13671This diagnostic is enabled by default. 13672 13673Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_. 13674 13675**Diagnostic text:** 13676 13677+-------------------------------------------------------------------------------------------------------------------------------------------+ 13678|:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 13679+-------------------------------------------------------------------------------------------------------------------------------------------+ 13680 13681+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 13682|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| 13683+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 13684 13685+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13686|:warning:`warning:` |nbsp| :diagtext:`ignoring temporary created by a constructor declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute:` |nbsp| :placeholder:`B`| 13687+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13688 13689+----------------------------------------------------------------------------------------------------------------------------+ 13690|:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`| 13691+----------------------------------------------------------------------------------------------------------------------------+ 13692 13693+---------------------------------------------------------------+ 13694|:warning:`warning:` |nbsp| :diagtext:`expression result unused`| 13695+---------------------------------------------------------------+ 13696 13697+-----------------------------------------------------------------------------------------------+ 13698|:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`| 13699+-----------------------------------------------------------------------------------------------+ 13700 13701 13702-Wunused-variable 13703----------------- 13704Also controls `-Wunused-const-variable`_. 13705 13706**Diagnostic text:** 13707 13708+------------------------------------------------------------------------------+ 13709|:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| 13710+------------------------------------------------------------------------------+ 13711 13712 13713-Wunused-volatile-lvalue 13714------------------------ 13715This diagnostic is enabled by default. 13716 13717**Diagnostic text:** 13718 13719+----------------------------------------------------------------------------------------------------------------+ 13720|:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`| 13721+----------------------------------------------------------------------------------------------------------------+ 13722 13723 13724-Wused-but-marked-unused 13725------------------------ 13726**Diagnostic text:** 13727 13728+---------------------------------------------------------------------------------------------+ 13729|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`| 13730+---------------------------------------------------------------------------------------------+ 13731 13732 13733-Wuser-defined-literals 13734----------------------- 13735This diagnostic is enabled by default. 13736 13737**Diagnostic text:** 13738 13739+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 13740|:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+| 13741| ||:diagtext:`; no literal will invoke this operator`|| 13742| |+--------------------------------------------------+| 13743| || || 13744| |+--------------------------------------------------+| 13745+--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ 13746 13747 13748-Wuser-defined-warnings 13749----------------------- 13750This diagnostic is enabled by default. 13751 13752**Diagnostic text:** 13753 13754The text of this diagnostic is not controlled by Clang. 13755 13756 13757-Wvarargs 13758--------- 13759This diagnostic is enabled by default. 13760 13761**Diagnostic text:** 13762 13763+-----------------------------------------------------------------------------------------------------+ 13764|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`| 13765+-----------------------------------------------------------------------------------------------------+ 13766 13767+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13768|:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`| 13769+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13770 13771+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 13772|:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`| 13773| ||:diagtext:`an object that undergoes default argument promotion`|| | 13774| |+---------------------------------------------------------------+| | 13775| ||:diagtext:`an object of reference type` || | 13776| |+---------------------------------------------------------------+| | 13777| ||:diagtext:`a parameter declared with the 'register' keyword` || | 13778| |+---------------------------------------------------------------+| | 13779+------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ 13780 13781 13782-Wvariadic-macros 13783----------------- 13784Some of the diagnostics controlled by this flag are enabled by default. 13785 13786**Diagnostic text:** 13787 13788+--------------------------------------------------------------------------------+ 13789|:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| 13790+--------------------------------------------------------------------------------+ 13791 13792+-----------------------------------------------------------------------------------------------------------+ 13793|:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`| 13794+-----------------------------------------------------------------------------------------------------------+ 13795 13796+------------------------------------------------------------------------+ 13797|:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| 13798+------------------------------------------------------------------------+ 13799 13800 13801-Wvec-elem-size 13802--------------- 13803This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error. 13804 13805**Diagnostic text:** 13806 13807+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13808|:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| 13809+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13810 13811 13812-Wvector-conversion 13813------------------- 13814**Diagnostic text:** 13815 13816+------------------------------------------------------------------------+----------------------------------------------------------------+ 13817|:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+| 13818| ||:diagtext:`assigning to different types` || 13819| |+--------------------------------------------------------------+| 13820| ||:diagtext:`passing to parameter of different type` || 13821| |+--------------------------------------------------------------+| 13822| ||:diagtext:`returning from function with different return type`|| 13823| |+--------------------------------------------------------------+| 13824| ||:diagtext:`converting between types` || 13825| |+--------------------------------------------------------------+| 13826| ||:diagtext:`initializing with expression of different type` || 13827| |+--------------------------------------------------------------+| 13828| ||:diagtext:`sending to parameter of different type` || 13829| |+--------------------------------------------------------------+| 13830| ||:diagtext:`casting between types` || 13831| |+--------------------------------------------------------------+| 13832+------------------------------------------------------------------------+----------------------------------------------------------------+ 13833 13834 13835-Wvector-conversions 13836-------------------- 13837Synonym for `-Wvector-conversion`_. 13838 13839 13840-Wvexing-parse 13841-------------- 13842This diagnostic is enabled by default. 13843 13844**Diagnostic text:** 13845 13846+----------------------------------------------------------------------------------------------+ 13847|:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`| 13848+----------------------------------------------------------------------------------------------+ 13849 13850+-----------------------------------------------------------------------------------------------+ 13851|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`| 13852+-----------------------------------------------------------------------------------------------+ 13853 13854+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 13855|:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`| 13856+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 13857 13858 13859-Wvisibility 13860------------ 13861This diagnostic is enabled by default. 13862 13863**Diagnostic text:** 13864 13865+---------------------------------------------------------------------------------------------------------------------------------------------+ 13866|:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 13867+---------------------------------------------------------------------------------------------------------------------------------------------+ 13868 13869+----------------------------------------------------------------------------------------------------------------------------------------------+ 13870|:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| 13871+----------------------------------------------------------------------------------------------------------------------------------------------+ 13872 13873 13874-Wvla 13875----- 13876**Diagnostic text:** 13877 13878+-----------------------------------------------------------------+ 13879|:warning:`warning:` |nbsp| :diagtext:`variable length array used`| 13880+-----------------------------------------------------------------+ 13881 13882 13883-Wvla-extension 13884--------------- 13885**Diagnostic text:** 13886 13887+-------------------------------------------------------------------------------+ 13888|:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`| 13889+-------------------------------------------------------------------------------+ 13890 13891 13892-Wvoid-pointer-to-enum-cast 13893--------------------------- 13894This diagnostic is enabled by default. 13895 13896**Diagnostic text:** 13897 13898+-------------------------------------------------------------------------------------------------------------------------------------------+ 13899|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`| 13900+-------------------------------------------------------------------------------------------------------------------------------------------+ 13901 13902 13903-Wvoid-pointer-to-int-cast 13904-------------------------- 13905This diagnostic is enabled by default. 13906 13907Also controls `-Wvoid-pointer-to-enum-cast`_. 13908 13909**Diagnostic text:** 13910 13911+-------------------------------------------------------------------------------------------------------------------------------------------+ 13912|:warning:`warning:` |nbsp| :diagtext:`cast to smaller integer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from` |nbsp| :placeholder:`A`| 13913+-------------------------------------------------------------------------------------------------------------------------------------------+ 13914 13915 13916-Wvoid-ptr-dereference 13917---------------------- 13918This diagnostic is enabled by default. 13919 13920**Diagnostic text:** 13921 13922+--------------------------------------------------------------------------------------------------------------------+ 13923|:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`| 13924+--------------------------------------------------------------------------------------------------------------------+ 13925 13926 13927-Wvolatile-register-var 13928----------------------- 13929This diagnostic flag exists for GCC compatibility, and has no effect in Clang. 13930 13931-Wweak-template-vtables 13932----------------------- 13933**Diagnostic text:** 13934 13935+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13936|:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`| 13937+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13938 13939 13940-Wweak-vtables 13941-------------- 13942**Diagnostic text:** 13943 13944+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13945|:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`| 13946+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13947 13948 13949-Wwritable-strings 13950------------------ 13951This diagnostic is enabled by default. 13952 13953Also controls `-Wdeprecated-writable-strings`_. 13954 13955**Diagnostic text:** 13956 13957+-------------------------------------------------------------------------------------------------------------------------+ 13958|:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`| 13959+-------------------------------------------------------------------------------------------------------------------------+ 13960 13961 13962-Wwrite-strings 13963--------------- 13964Synonym for `-Wwritable-strings`_. 13965 13966 13967-Wxor-used-as-pow 13968----------------- 13969This diagnostic is enabled by default. 13970 13971**Diagnostic text:** 13972 13973+----------------------------------------------------------------------------------------------------------------------------------------------------+ 13974|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean exponentiation?`| 13975+----------------------------------------------------------------------------------------------------------------------------------------------------+ 13976 13977+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13978|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`'?`| 13979+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13980 13981+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13982|:warning:`warning:` |nbsp| :diagtext:`result of '`:placeholder:`A`:diagtext:`' is` |nbsp| :placeholder:`B`:diagtext:`; did you mean '`:placeholder:`C`:diagtext:`' (`:placeholder:`D`:diagtext:`)?`| 13983+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13984 13985 13986-Wzero-as-null-pointer-constant 13987------------------------------- 13988**Diagnostic text:** 13989 13990+--------------------------------------------------------------------+ 13991|:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`| 13992+--------------------------------------------------------------------+ 13993 13994 13995-Wzero-length-array 13996------------------- 13997**Diagnostic text:** 13998 13999+------------------------------------------------------------------------+ 14000|:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`| 14001+------------------------------------------------------------------------+ 14002 14003 14004-Wwasm-exception-spec 14005--------------------- 14006**Diagnostic text:** 14007 14008+----------------------------------------------------------------------------------------------------------------+ 14009|:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications with types are currently ignored in wasm`| 14010+----------------------------------------------------------------------------------------------------------------+ 14011