DiagnosticsReference.rst 939 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592
  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. .. Add custom CSS to output. FIXME: This should be put into <head> rather
  7. than the start of <body>.
  8. .. raw:: html
  9. <style>
  10. table.docutils {
  11. width: 1px;
  12. }
  13. table.docutils td {
  14. border: none;
  15. padding: 0 0 0 0.2em;
  16. vertical-align: middle;
  17. white-space: nowrap;
  18. width: 1px;
  19. font-family: monospace;
  20. }
  21. table.docutils tr + tr {
  22. border-top: 0.2em solid #aaa;
  23. }
  24. .error {
  25. font-family: monospace;
  26. font-weight: bold;
  27. color: #c00;
  28. }
  29. .warning {
  30. font-family: monospace;
  31. font-weight: bold;
  32. color: #80a;
  33. }
  34. .remark {
  35. font-family: monospace;
  36. font-weight: bold;
  37. color: #00c;
  38. }
  39. .diagtext {
  40. font-family: monospace;
  41. font-weight: bold;
  42. }
  43. </style>
  44. .. FIXME: rST doesn't support formatting this, so we format all <td> elements
  45. as monospace font face instead.
  46. .. |nbsp| unicode:: 0xA0
  47. :trim:
  48. .. Roles generated by clang-tblgen.
  49. .. role:: error
  50. .. role:: warning
  51. .. role:: remark
  52. .. role:: diagtext
  53. .. role:: placeholder(emphasis)
  54. =========================
  55. Diagnostic flags in Clang
  56. =========================
  57. .. contents::
  58. :local:
  59. Introduction
  60. ============
  61. This page lists the diagnostic flags currently supported by Clang.
  62. Diagnostic flags
  63. ================
  64. -W
  65. --
  66. Synonym for `-Wextra`_.
  67. -W#pragma-messages
  68. ------------------
  69. This diagnostic is enabled by default.
  70. **Diagnostic text:**
  71. The text of this diagnostic is not controlled by Clang.
  72. -W#warnings
  73. -----------
  74. This diagnostic is enabled by default.
  75. **Diagnostic text:**
  76. The text of this diagnostic is not controlled by Clang.
  77. -WCFString-literal
  78. ------------------
  79. This diagnostic is enabled by default.
  80. **Diagnostic text:**
  81. +------------------------------------------------------------------------------------------------------------------------------------+
  82. |:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
  83. +------------------------------------------------------------------------------------------------------------------------------------+
  84. -WCL4
  85. -----
  86. Some of the diagnostics controlled by this flag are enabled by default.
  87. Controls `-Wall`_, `-Wextra`_.
  88. -WIndependentClass-attribute
  89. ----------------------------
  90. This diagnostic is enabled by default.
  91. **Diagnostic text:**
  92. +------------------------------------------------------------------------------------------------------------------------------+
  93. |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
  94. +------------------------------------------------------------------------------------------------------------------------------+
  95. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  96. |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
  97. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  98. -WNSObject-attribute
  99. --------------------
  100. This diagnostic is enabled by default.
  101. **Diagnostic text:**
  102. +--------------------------------------------------------------------------------------------------------------+
  103. |:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
  104. +--------------------------------------------------------------------------------------------------------------+
  105. -Wabi
  106. -----
  107. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  108. -Wabsolute-value
  109. ----------------
  110. This diagnostic is enabled by default.
  111. **Diagnostic text:**
  112. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. |: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`|
  114. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
  116. |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
  117. | ||:diagtext:`pointer` || |
  118. | |+--------------------+| |
  119. | ||:diagtext:`function`|| |
  120. | |+--------------------+| |
  121. | ||:diagtext:`array` || |
  122. | |+--------------------+| |
  123. +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
  124. +------------------------------------------------------------------------------------------------------------------------------------------+
  125. |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
  126. +------------------------------------------------------------------------------------------------------------------------------------------+
  127. +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
  128. |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
  129. | ||:diagtext:`integer` || ||:diagtext:`integer` || |
  130. | |+--------------------------+| |+--------------------------+| |
  131. | ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
  132. | |+--------------------------+| |+--------------------------+| |
  133. | ||:diagtext:`complex` || ||:diagtext:`complex` || |
  134. | |+--------------------------+| |+--------------------------+| |
  135. +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
  136. -Wabstract-final-class
  137. ----------------------
  138. This diagnostic is enabled by default.
  139. **Diagnostic text:**
  140. +-----------------------------------------------------------------+--------------------+-------------+
  141. |:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
  142. | ||:diagtext:`final` || |
  143. | |+------------------+| |
  144. | ||:diagtext:`sealed`|| |
  145. | |+------------------+| |
  146. +-----------------------------------------------------------------+--------------------+-------------+
  147. -Wabstract-vbase-init
  148. ---------------------
  149. **Diagnostic text:**
  150. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. |: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`|
  152. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. -Waddress
  154. ---------
  155. This diagnostic is enabled by default.
  156. Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
  157. -Waddress-of-array-temporary
  158. ----------------------------
  159. This diagnostic is enabled by default.
  160. **Diagnostic text:**
  161. +---------------------------------------------------------------------------------------------------------------------------------------------+
  162. |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
  163. +---------------------------------------------------------------------------------------------------------------------------------------------+
  164. -Waddress-of-packed-member
  165. --------------------------
  166. This diagnostic is enabled by default.
  167. **Diagnostic text:**
  168. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. |: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`|
  170. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. -Waddress-of-temporary
  172. ----------------------
  173. This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
  174. **Diagnostic text:**
  175. +-----------------------------------------------------------------------------------------------------------+
  176. |:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
  177. +-----------------------------------------------------------------------------------------------------------+
  178. -Waggregate-return
  179. ------------------
  180. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  181. -Waligned-allocation-unavailable
  182. --------------------------------
  183. This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error.
  184. **Diagnostic text:**
  185. +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  186. |:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`|
  187. | ||:diagtext:`allocation` || |
  188. | |+------------------------+| |
  189. | ||:diagtext:`deallocation`|| |
  190. | |+------------------------+| |
  191. +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  192. -Wall
  193. -----
  194. Some of the diagnostics controlled by this flag are enabled by default.
  195. Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
  196. -Walloca-with-align-alignof
  197. ---------------------------
  198. This diagnostic is enabled by default.
  199. **Diagnostic text:**
  200. +--------------------------------------------------------------------------------------------------------------------+
  201. |:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
  202. +--------------------------------------------------------------------------------------------------------------------+
  203. -Wambiguous-delete
  204. ------------------
  205. This diagnostic is enabled by default.
  206. **Diagnostic text:**
  207. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  208. |: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`|
  209. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  210. -Wambiguous-ellipsis
  211. --------------------
  212. This diagnostic is enabled by default.
  213. **Diagnostic text:**
  214. +------------------------------------------------------------------------------------------------+---------------------------------------------+
  215. |:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
  216. | ||:diagtext:`, not a function parameter pack`||
  217. | |+-------------------------------------------+|
  218. | || ||
  219. | |+-------------------------------------------+|
  220. +------------------------------------------------------------------------------------------------+---------------------------------------------+
  221. -Wambiguous-macro
  222. -----------------
  223. This diagnostic is enabled by default.
  224. **Diagnostic text:**
  225. +-------------------------------------------------------------------------------------------+
  226. |:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
  227. +-------------------------------------------------------------------------------------------+
  228. -Wambiguous-member-template
  229. ---------------------------
  230. This diagnostic is enabled by default.
  231. **Diagnostic text:**
  232. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  233. |:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
  234. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  235. -Wanalyzer-incompatible-plugin
  236. ------------------------------
  237. This diagnostic is enabled by default.
  238. **Diagnostic text:**
  239. +----------------------------------------------------------------------------------------------------------------------------------------+
  240. |:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
  241. +----------------------------------------------------------------------------------------------------------------------------------------+
  242. -Wanonymous-pack-parens
  243. -----------------------
  244. This diagnostic is enabled by default.
  245. **Diagnostic text:**
  246. +---------------------------------------------------------------------------------------------------------+
  247. |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
  248. +---------------------------------------------------------------------------------------------------------+
  249. -Warc
  250. -----
  251. This diagnostic is enabled by default.
  252. Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
  253. -Warc-bridge-casts-disallowed-in-nonarc
  254. ---------------------------------------
  255. This diagnostic is enabled by default.
  256. **Diagnostic text:**
  257. +-------------------------------------------------------------------------------------------------------------+
  258. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
  259. +-------------------------------------------------------------------------------------------------------------+
  260. -Warc-maybe-repeated-use-of-weak
  261. --------------------------------
  262. **Diagnostic text:**
  263. +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
  264. |: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`|
  265. | ||:diagtext:`variable` || ||:diagtext:`function`|| |
  266. | |+-----------------------------+| |+--------------------+| |
  267. | ||:diagtext:`property` || ||:diagtext:`method` || |
  268. | |+-----------------------------+| |+--------------------+| |
  269. | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
  270. | |+-----------------------------+| |+--------------------+| |
  271. | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
  272. | |+-----------------------------+| |+--------------------+| |
  273. +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
  274. -Warc-non-pod-memaccess
  275. -----------------------
  276. This diagnostic is enabled by default.
  277. **Diagnostic text:**
  278. +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
  279. |:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
  280. | ||:diagtext:`destination for`|| |
  281. | |+---------------------------+| |
  282. | ||:diagtext:`source of` || |
  283. | |+---------------------------+| |
  284. +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
  285. -Warc-performSelector-leaks
  286. ---------------------------
  287. This diagnostic is enabled by default.
  288. **Diagnostic text:**
  289. +-------------------------------------------------------------------------------------------------------+
  290. |:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
  291. +-------------------------------------------------------------------------------------------------------+
  292. -Warc-repeated-use-of-weak
  293. --------------------------
  294. Also controls `-Warc-maybe-repeated-use-of-weak`_.
  295. **Diagnostic text:**
  296. +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
  297. |: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`|
  298. | ||:diagtext:`variable` || ||:diagtext:`function`|| |
  299. | |+-----------------------------+| |+--------------------+| |
  300. | ||:diagtext:`property` || ||:diagtext:`method` || |
  301. | |+-----------------------------+| |+--------------------+| |
  302. | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
  303. | |+-----------------------------+| |+--------------------+| |
  304. | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
  305. | |+-----------------------------+| |+--------------------+| |
  306. +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
  307. -Warc-retain-cycles
  308. -------------------
  309. This diagnostic is enabled by default.
  310. **Diagnostic text:**
  311. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  312. |:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
  313. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  314. -Warc-unsafe-retained-assign
  315. ----------------------------
  316. This diagnostic is enabled by default.
  317. **Diagnostic text:**
  318. +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
  319. |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
  320. | ||:diagtext:`array literal` || ||:diagtext:`property`|| |
  321. | |+-------------------------------+| |+--------------------+| |
  322. | ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
  323. | |+-------------------------------+| |+--------------------+| |
  324. | ||:diagtext:`numeric literal` || | | |
  325. | |+-------------------------------+| | | |
  326. | ||:diagtext:`boxed expression` || | | |
  327. | |+-------------------------------+| | | |
  328. | ||:diagtext:`<should not happen>`|| | | |
  329. | |+-------------------------------+| | | |
  330. | ||:diagtext:`block literal` || | | |
  331. | |+-------------------------------+| | | |
  332. +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
  333. +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
  334. |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
  335. | ||:diagtext:`weak` || ||:diagtext:`property`|| |
  336. | |+------------------------------+| |+--------------------+| |
  337. | ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
  338. | |+------------------------------+| |+--------------------+| |
  339. +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
  340. +-----------------------------------------------------------------------------------------------------------------------------+
  341. |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
  342. +-----------------------------------------------------------------------------------------------------------------------------+
  343. -Warray-bounds
  344. --------------
  345. This diagnostic is enabled by default.
  346. **Diagnostic text:**
  347. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
  348. |: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:`)`|
  349. | || || |
  350. | |+-------------+| |
  351. | ||:diagtext:`s`|| |
  352. | |+-------------+| |
  353. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
  354. +----------------------------------------------------------------------------------------------------------------------------------+
  355. |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
  356. +----------------------------------------------------------------------------------------------------------------------------------+
  357. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  358. |:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
  359. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  360. +-----------------------------------------------------------------------------------+
  361. |:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
  362. +-----------------------------------------------------------------------------------+
  363. -Warray-bounds-pointer-arithmetic
  364. ---------------------------------
  365. **Diagnostic text:**
  366. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
  367. |: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:`)`|
  368. | || || |
  369. | |+-------------+| |
  370. | ||:diagtext:`s`|| |
  371. | |+-------------+| |
  372. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
  373. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  374. |:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
  375. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  376. -Wasm
  377. -----
  378. This diagnostic is enabled by default.
  379. Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
  380. -Wasm-ignored-qualifier
  381. -----------------------
  382. This diagnostic is enabled by default.
  383. **Diagnostic text:**
  384. +----------------------------------------------------------------------------------------------------------+
  385. |:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
  386. +----------------------------------------------------------------------------------------------------------+
  387. +-------------------------------------------------------------------------------------+
  388. |:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
  389. +-------------------------------------------------------------------------------------+
  390. -Wasm-operand-widths
  391. --------------------
  392. This diagnostic is enabled by default.
  393. **Diagnostic text:**
  394. +-----------------------------------------------------------------------------------------------------------------------+
  395. |:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
  396. +-----------------------------------------------------------------------------------------------------------------------+
  397. -Wassign-enum
  398. -------------
  399. **Diagnostic text:**
  400. +---------------------------------------------------------------------------------------------------------------+
  401. |:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
  402. +---------------------------------------------------------------------------------------------------------------+
  403. -Wassume
  404. --------
  405. This diagnostic is enabled by default.
  406. **Diagnostic text:**
  407. +-----------------------------------------------------------------------------------------------------------------------------------------+
  408. |:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
  409. +-----------------------------------------------------------------------------------------------------------------------------------------+
  410. -Wat-protocol
  411. -------------
  412. This diagnostic is enabled by default.
  413. **Diagnostic text:**
  414. +-------------------------------------------------------------------------------------------------------------------+
  415. |:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
  416. +-------------------------------------------------------------------------------------------------------------------+
  417. -Watomic-memory-ordering
  418. ------------------------
  419. This diagnostic is enabled by default.
  420. **Diagnostic text:**
  421. +-------------------------------------------------------------------------------------------+
  422. |:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
  423. +-------------------------------------------------------------------------------------------+
  424. -Watomic-properties
  425. -------------------
  426. Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
  427. -Watomic-property-with-user-defined-accessor
  428. --------------------------------------------
  429. This diagnostic is enabled by default.
  430. **Diagnostic text:**
  431. +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
  432. |:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
  433. | ||:diagtext:`getter`|| ||:diagtext:`getter`||
  434. | |+------------------+| |+------------------+|
  435. | ||:diagtext:`setter`|| ||:diagtext:`setter`||
  436. | |+------------------+| |+------------------+|
  437. +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
  438. -Wattribute-packed-for-bitfield
  439. -------------------------------
  440. This diagnostic is enabled by default.
  441. **Diagnostic text:**
  442. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  443. |:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
  444. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  445. -Wattributes
  446. ------------
  447. This diagnostic is enabled by default.
  448. Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
  449. -Wauto-disable-vptr-sanitizer
  450. -----------------------------
  451. This diagnostic is enabled by default.
  452. **Diagnostic text:**
  453. +------------------------------------------------------------------------------------------------------+
  454. |:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
  455. +------------------------------------------------------------------------------------------------------+
  456. -Wauto-import
  457. -------------
  458. **Diagnostic text:**
  459. +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
  460. |:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
  461. | ||:diagtext:`include` || |
  462. | |+-------------------------------+| |
  463. | ||:diagtext:`import` || |
  464. | |+-------------------------------+| |
  465. | ||:diagtext:`include\_next` || |
  466. | |+-------------------------------+| |
  467. | ||:diagtext:`\_\_include\_macros`|| |
  468. | |+-------------------------------+| |
  469. +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
  470. -Wauto-storage-class
  471. --------------------
  472. This diagnostic is enabled by default.
  473. **Diagnostic text:**
  474. +---------------------------------------------------------------------------------------------------------------------------------------------+
  475. |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
  476. +---------------------------------------------------------------------------------------------------------------------------------------------+
  477. -Wauto-var-id
  478. -------------
  479. This diagnostic is enabled by default.
  480. **Diagnostic text:**
  481. +-------------------------------------------------------------------------------------------------------+
  482. |:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
  483. +-------------------------------------------------------------------------------------------------------+
  484. -Wavailability
  485. --------------
  486. This diagnostic is enabled by default.
  487. **Diagnostic text:**
  488. +--------------------------------------------------------------------------------------------------------------+
  489. |:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
  490. +--------------------------------------------------------------------------------------------------------------+
  491. +------------------------------------------------------------------------------------------------------------------------+
  492. |:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
  493. +------------------------------------------------------------------------------------------------------------------------+
  494. +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
  495. |: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`|
  496. | ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| |
  497. | |+----------------------+| |+----------------------+| |
  498. | ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| |
  499. | |+----------------------+| |+----------------------+| |
  500. | ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || |
  501. | |+----------------------+| |+----------------------+| |
  502. +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
  503. +---------------------------------------------------------------------------------------------------------------------------+
  504. |:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
  505. +---------------------------------------------------------------------------------------------------------------------------+
  506. +---------------------------------------------------------------------------------------+
  507. |:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
  508. +---------------------------------------------------------------------------------------+
  509. +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
  510. |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
  511. | || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| |
  512. | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
  513. | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || |
  514. | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
  515. | | | ||:diagtext:`obsoleted before` || | | |
  516. | | | |+-----------------------------+| | | |
  517. +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
  518. +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
  519. |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
  520. | || || ||:diagtext:`the protocol method it implements`|| |
  521. | |+------------------------------+| |+---------------------------------------------+| |
  522. | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || |
  523. | |+------------------------------+| |+---------------------------------------------+| |
  524. +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
  525. -Wbackend-plugin
  526. ----------------
  527. This diagnostic is enabled by default.
  528. **Diagnostic text:**
  529. The text of this diagnostic is not controlled by Clang.
  530. -Wbackslash-newline-escape
  531. --------------------------
  532. This diagnostic is enabled by default.
  533. **Diagnostic text:**
  534. +-------------------------------------------------------------------------------+
  535. |:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
  536. +-------------------------------------------------------------------------------+
  537. -Wbad-function-cast
  538. -------------------
  539. **Diagnostic text:**
  540. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  541. |:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
  542. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  543. -Wbinary-literal
  544. ----------------
  545. Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
  546. -Wbind-to-temporary-copy
  547. ------------------------
  548. Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
  549. **Diagnostic text:**
  550. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
  551. |: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| |+---------------------+|
  552. | ||:diagtext:`private` ||
  553. | |+---------------------+|
  554. | ||:diagtext:`protected`||
  555. | |+---------------------+|
  556. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
  557. +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
  558. |: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`|
  559. | ||:diagtext:`copying variable` || |
  560. | |+---------------------------------------+| |
  561. | ||:diagtext:`copying parameter` || |
  562. | |+---------------------------------------+| |
  563. | ||:diagtext:`returning object` || |
  564. | |+---------------------------------------+| |
  565. | ||:diagtext:`throwing object` || |
  566. | |+---------------------------------------+| |
  567. | ||:diagtext:`copying member subobject` || |
  568. | |+---------------------------------------+| |
  569. | ||:diagtext:`copying array element` || |
  570. | |+---------------------------------------+| |
  571. | ||:diagtext:`allocating object` || |
  572. | |+---------------------------------------+| |
  573. | ||:diagtext:`copying temporary` || |
  574. | |+---------------------------------------+| |
  575. | ||:diagtext:`initializing base subobject`|| |
  576. | |+---------------------------------------+| |
  577. | ||:diagtext:`initializing vector element`|| |
  578. | |+---------------------------------------+| |
  579. | ||:diagtext:`capturing value` || |
  580. | |+---------------------------------------+| |
  581. +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
  582. -Wbitfield-constant-conversion
  583. ------------------------------
  584. This diagnostic is enabled by default.
  585. **Diagnostic text:**
  586. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  587. |: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`|
  588. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  589. -Wbitfield-enum-conversion
  590. --------------------------
  591. **Diagnostic text:**
  592. +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  593. |:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
  594. +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  595. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  596. |: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`|
  597. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  598. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  599. |: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`|
  600. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  601. -Wbitfield-width
  602. ----------------
  603. This diagnostic is enabled by default.
  604. **Diagnostic text:**
  605. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
  606. |: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`|+-------------+|
  607. | || ||
  608. | |+-------------+|
  609. | ||:diagtext:`s`||
  610. | |+-------------+|
  611. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
  612. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
  613. |: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`|+-------------+|
  614. | || ||
  615. | |+-------------+|
  616. | ||:diagtext:`s`||
  617. | |+-------------+|
  618. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
  619. -Wbitwise-op-parentheses
  620. ------------------------
  621. This diagnostic is enabled by default.
  622. **Diagnostic text:**
  623. +-----------------------------------------------------------------------------------------------------------+
  624. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
  625. +-----------------------------------------------------------------------------------------------------------+
  626. -Wblock-capture-autoreleasing
  627. -----------------------------
  628. This diagnostic is enabled by default.
  629. **Diagnostic text:**
  630. +-----------------------------------------------------------------------------------------------------------------------------+
  631. |:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
  632. +-----------------------------------------------------------------------------------------------------------------------------+
  633. -Wbool-conversion
  634. -----------------
  635. This diagnostic is enabled by default.
  636. Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
  637. **Diagnostic text:**
  638. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  639. |:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
  640. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  641. -Wbool-conversions
  642. ------------------
  643. Synonym for `-Wbool-conversion`_.
  644. -Wbraced-scalar-init
  645. --------------------
  646. This diagnostic is enabled by default.
  647. **Diagnostic text:**
  648. +-----------------------------------------------------------------------+
  649. |:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
  650. +-----------------------------------------------------------------------+
  651. -Wbridge-cast
  652. -------------
  653. This diagnostic is enabled by default.
  654. **Diagnostic text:**
  655. +------------------------------------------------------------------------------------------------------------------------------------------+
  656. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
  657. +------------------------------------------------------------------------------------------------------------------------------------------+
  658. +-------------------------------------------------------------------------------------------------------+
  659. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
  660. +-------------------------------------------------------------------------------------------------------+
  661. -Wbuiltin-macro-redefined
  662. -------------------------
  663. This diagnostic is enabled by default.
  664. **Diagnostic text:**
  665. +---------------------------------------------------------------+
  666. |:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
  667. +---------------------------------------------------------------+
  668. +---------------------------------------------------------------+
  669. |:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
  670. +---------------------------------------------------------------+
  671. -Wbuiltin-memcpy-chk-size
  672. -------------------------
  673. This diagnostic is enabled by default.
  674. **Diagnostic text:**
  675. +------------------------------------------------------------------------------------------------------+
  676. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
  677. +------------------------------------------------------------------------------------------------------+
  678. -Wbuiltin-requires-header
  679. -------------------------
  680. This diagnostic is enabled by default.
  681. **Diagnostic text:**
  682. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  683. |:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
  684. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  685. -Wc++-compat
  686. ------------
  687. **Diagnostic text:**
  688. +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
  689. |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
  690. | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
  691. | |+-------------------------+|+------------------+| |+-------------------------+| |
  692. | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
  693. | |+-------------------------+|+------------------+| |+-------------------------+| |
  694. +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
  695. -Wc++0x-compat
  696. --------------
  697. Synonym for `-Wc++11-compat`_.
  698. -Wc++0x-extensions
  699. ------------------
  700. Synonym for `-Wc++11-extensions`_.
  701. -Wc++0x-narrowing
  702. -----------------
  703. Synonym for `-Wc++11-narrowing`_.
  704. -Wc++11-compat
  705. --------------
  706. Some of the diagnostics controlled by this flag are enabled by default.
  707. Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_.
  708. **Diagnostic text:**
  709. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
  710. |: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`|
  711. | ||:diagtext:`have type 'long long'`|| |
  712. | |+---------------------------------+| |
  713. | ||:diagtext:`be ill-formed` || |
  714. | |+---------------------------------+| |
  715. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
  716. +--------------------------------------------------------------------------------------------------------------+
  717. |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
  718. +--------------------------------------------------------------------------------------------------------------+
  719. +-------------------------------------------------------------------------------------------------------------------------+
  720. |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
  721. +-------------------------------------------------------------------------------------------------------------------------+
  722. +-------------------------------------------------------------------------------------------+
  723. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
  724. +-------------------------------------------------------------------------------------------+
  725. +--------------------------------------------------------------------------------------------------------------------------------+
  726. |:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
  727. +--------------------------------------------------------------------------------------------------------------------------------+
  728. +--------------------------------------------------------------------------------+
  729. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
  730. +--------------------------------------------------------------------------------+
  731. +--------------------------------------------------------------------------------------------------------------------------------------+
  732. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
  733. +--------------------------------------------------------------------------------------------------------------------------------------+
  734. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  735. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
  736. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  737. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  738. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
  739. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  740. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
  741. |: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`|
  742. | ||:diagtext:`have type 'long long'`|| |
  743. | |+---------------------------------+| |
  744. | ||:diagtext:`be ill-formed` || |
  745. | |+---------------------------------+| |
  746. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
  747. -Wc++11-compat-deprecated-writable-strings
  748. ------------------------------------------
  749. This diagnostic is enabled by default.
  750. **Diagnostic text:**
  751. +---------------------------------------------------------------------------------------------------------------------------------+
  752. |:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
  753. +---------------------------------------------------------------------------------------------------------------------------------+
  754. -Wc++11-compat-pedantic
  755. -----------------------
  756. Some of the diagnostics controlled by this flag are enabled by default.
  757. Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_.
  758. -Wc++11-compat-reserved-user-defined-literal
  759. --------------------------------------------
  760. **Diagnostic text:**
  761. +----------------------------------------------------------------------------------------------------------------------------------+
  762. |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
  763. +----------------------------------------------------------------------------------------------------------------------------------+
  764. -Wc++11-extensions
  765. ------------------
  766. Some of the diagnostics controlled by this flag are enabled by default.
  767. Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
  768. **Diagnostic text:**
  769. +-------------------------------------------------------------------------------+
  770. |:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
  771. +-------------------------------------------------------------------------------+
  772. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
  773. |: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`|
  774. | ||:diagtext:`integral` || |
  775. | |+-----------------------+| |
  776. | ||:diagtext:`enumeration`|| |
  777. | |+-----------------------+| |
  778. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
  779. +---------------------------------------------------------------------------------+
  780. |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
  781. +---------------------------------------------------------------------------------+
  782. +-----------------------------------------------------------------------------------------------------------+
  783. |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
  784. +-----------------------------------------------------------------------------------------------------------+
  785. +---------------------------+-----------------------+--------------------------------------------------------------+
  786. |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
  787. | ||:diagtext:`defaulted`|| |
  788. | |+---------------------+| |
  789. | ||:diagtext:`deleted` || |
  790. | |+---------------------+| |
  791. +---------------------------+-----------------------+--------------------------------------------------------------+
  792. +-----------------------------------------------------------------------------------------------------------------------------------+
  793. |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
  794. +-----------------------------------------------------------------------------------------------------------------------------------+
  795. +--------------------------------------------------------------------------------------------------+
  796. |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
  797. +--------------------------------------------------------------------------------------------------+
  798. +------------------------------------------------------------------------------------------+
  799. |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
  800. +------------------------------------------------------------------------------------------+
  801. +-----------------------------------------------------------------------------+
  802. |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
  803. +-----------------------------------------------------------------------------+
  804. +--------------------------------------------------------------------------------+
  805. |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
  806. +--------------------------------------------------------------------------------+
  807. +------------------------------------------------------------------------------------------+
  808. |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
  809. +------------------------------------------------------------------------------------------+
  810. +---------------------------------------------------------------------------------------------------------+
  811. |:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
  812. +---------------------------------------------------------------------------------------------------------+
  813. +----------------------------------------------------------------------------------------------------------------------------+
  814. |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
  815. +----------------------------------------------------------------------------------------------------------------------------+
  816. +-------------------------------------------------------------------------------------------------------------+
  817. |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
  818. +-------------------------------------------------------------------------------------------------------------+
  819. +--------------------------------------------------------------------------------------------------+
  820. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
  821. +--------------------------------------------------------------------------------------------------+
  822. +----------------------------------------------------------------------------------------------+
  823. |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
  824. +----------------------------------------------------------------------------------------------+
  825. +------------------------------------------------------------------------------+
  826. |:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
  827. +------------------------------------------------------------------------------+
  828. +--------------------------------------------------------------------------------+
  829. |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
  830. +--------------------------------------------------------------------------------+
  831. +----------------------------------------------------------------------------------------------------------------------------------+
  832. |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
  833. +----------------------------------------------------------------------------------------------------------------------------------+
  834. +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
  835. |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
  836. | ||:diagtext:`function`|| |
  837. | |+--------------------+| |
  838. | ||:diagtext:`object` || |
  839. | |+--------------------+| |
  840. +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
  841. +-------------------------------------------------------------------------------+
  842. |:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
  843. +-------------------------------------------------------------------------------+
  844. +---------------------------------------------------------------------------------------------------------------+
  845. |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
  846. +---------------------------------------------------------------------------------------------------------------+
  847. +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  848. |:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`|
  849. | ||:diagtext:`class template` || |
  850. | |+-------------------------------------+| |
  851. | ||:diagtext:`class template partial` || |
  852. | |+-------------------------------------+| |
  853. | ||:diagtext:`variable template` || |
  854. | |+-------------------------------------+| |
  855. | ||:diagtext:`variable template partial`|| |
  856. | |+-------------------------------------+| |
  857. | ||:diagtext:`function template` || |
  858. | |+-------------------------------------+| |
  859. | ||:diagtext:`member function` || |
  860. | |+-------------------------------------+| |
  861. | ||:diagtext:`static data member` || |
  862. | |+-------------------------------------+| |
  863. | ||:diagtext:`member class` || |
  864. | |+-------------------------------------+| |
  865. | ||:diagtext:`member enumeration` || |
  866. | |+-------------------------------------+| |
  867. +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  868. +------------------------------------------------------------------------------+
  869. |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
  870. +------------------------------------------------------------------------------+
  871. +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
  872. |:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
  873. | ||:diagtext:`struct` || |
  874. | |+---------------------+| |
  875. | ||:diagtext:`interface`|| |
  876. | |+---------------------+| |
  877. | ||:diagtext:`union` || |
  878. | |+---------------------+| |
  879. | ||:diagtext:`class` || |
  880. | |+---------------------+| |
  881. | ||:diagtext:`enum` || |
  882. | |+---------------------+| |
  883. +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
  884. +-------------------------------------------------------------------------------+
  885. |:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
  886. +-------------------------------------------------------------------------------+
  887. -Wc++11-extra-semi
  888. ------------------
  889. **Diagnostic text:**
  890. +-------------------------------------------------------------------------------------------+
  891. |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
  892. +-------------------------------------------------------------------------------------------+
  893. -Wc++11-inline-namespace
  894. ------------------------
  895. This diagnostic is enabled by default.
  896. **Diagnostic text:**
  897. +----------------------------------------------------------------------------+
  898. |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
  899. +----------------------------------------------------------------------------+
  900. -Wc++11-long-long
  901. -----------------
  902. **Diagnostic text:**
  903. +-----------------------------------------------------------------------+
  904. |:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
  905. +-----------------------------------------------------------------------+
  906. -Wc++11-narrowing
  907. -----------------
  908. Some of the diagnostics controlled by this flag are enabled by default.
  909. **Diagnostic text:**
  910. +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
  911. |:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
  912. | ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
  913. | |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
  914. | ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
  915. | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
  916. | ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+||
  917. | |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
  918. | ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
  919. | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
  920. | ||:diagtext:`constexpr if condition` || | |
  921. | |+--------------------------------------+| | |
  922. +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
  923. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  924. |:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
  925. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  926. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  927. |:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
  928. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  929. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  930. |: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`|
  931. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  932. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  933. |: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`|
  934. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  935. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  936. |: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`|
  937. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  938. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  939. |: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`|
  940. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  941. -Wc++14-binary-literal
  942. ----------------------
  943. **Diagnostic text:**
  944. +------------------------------------------------------------------------------------+
  945. |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
  946. +------------------------------------------------------------------------------------+
  947. -Wc++14-compat
  948. --------------
  949. Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
  950. -Wc++14-compat-pedantic
  951. -----------------------
  952. Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
  953. -Wc++14-extensions
  954. ------------------
  955. Some of the diagnostics controlled by this flag are enabled by default.
  956. Also controls `-Wc++14-binary-literal`_.
  957. **Diagnostic text:**
  958. +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  959. |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
  960. | ||:diagtext:`function` || |
  961. | |+-----------------------+| |
  962. | ||:diagtext:`constructor`|| |
  963. | |+-----------------------+| |
  964. +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  965. +------------------------------------------------------------------------------------------------------------+
  966. |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
  967. +------------------------------------------------------------------------------------------------------------+
  968. +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  969. |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
  970. | ||:diagtext:`function` || |
  971. | |+-----------------------+| |
  972. | ||:diagtext:`constructor`|| |
  973. | |+-----------------------+| |
  974. +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  975. +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
  976. |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
  977. | ||:diagtext:`function` || |
  978. | |+-----------------------+| |
  979. | ||:diagtext:`constructor`|| |
  980. | |+-----------------------+| |
  981. +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
  982. +---------------------------------------------------------------------------------------------------------------------------+
  983. |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
  984. +---------------------------------------------------------------------------------------------------------------------------+
  985. +-------------------------------------------------------------------------------------------+
  986. |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
  987. +-------------------------------------------------------------------------------------------+
  988. +----------------------------------------------------------------------------------------+
  989. |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
  990. +----------------------------------------------------------------------------------------+
  991. +-------------------------------------------------------------------------------+
  992. |:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
  993. +-------------------------------------------------------------------------------+
  994. -Wc++17-compat
  995. --------------
  996. Some of the diagnostics controlled by this flag are enabled by default.
  997. Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
  998. -Wc++17-compat-mangling
  999. -----------------------
  1000. This diagnostic is enabled by default.
  1001. **Diagnostic text:**
  1002. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1003. |: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`|
  1004. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1005. -Wc++17-compat-pedantic
  1006. -----------------------
  1007. Some of the diagnostics controlled by this flag are enabled by default.
  1008. Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
  1009. -Wc++17-extensions
  1010. ------------------
  1011. Some of the diagnostics controlled by this flag are enabled by default.
  1012. **Diagnostic text:**
  1013. +------------------------------------------------------------------------+
  1014. |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
  1015. +------------------------------------------------------------------------+
  1016. +---------------------------------------------------------------------------------------------+
  1017. |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
  1018. +---------------------------------------------------------------------------------------------+
  1019. +---------------------------------------------------------------------------------------------------------------------------+
  1020. |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
  1021. +---------------------------------------------------------------------------------------------------------------------------+
  1022. +---------------------------------------------------------------------------------------+
  1023. |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
  1024. +---------------------------------------------------------------------------------------+
  1025. +--------------------------------------------------------------------------------+
  1026. |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
  1027. +--------------------------------------------------------------------------------+
  1028. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1029. |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
  1030. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1031. +----------------------------------------------------------------------------------------+
  1032. |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
  1033. +----------------------------------------------------------------------------------------+
  1034. +----------------------------------------+--------------------+-------------------------------------------------------------+
  1035. |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
  1036. | ||:diagtext:`if` || |
  1037. | |+------------------+| |
  1038. | ||:diagtext:`switch`|| |
  1039. | |+------------------+| |
  1040. +----------------------------------------+--------------------+-------------------------------------------------------------+
  1041. +-----------------------------------------------------------------------------+
  1042. |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
  1043. +-----------------------------------------------------------------------------+
  1044. +---------------------------------------------------------------------------------------------------------------------+
  1045. |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
  1046. +---------------------------------------------------------------------------------------------------------------------+
  1047. +-------------------------------------------------------------------------------------------------------------------------+
  1048. |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
  1049. +-------------------------------------------------------------------------------------------------------------------------+
  1050. +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
  1051. |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
  1052. | ||:diagtext:`a namespace` || |
  1053. | |+-------------------------+| |
  1054. | ||:diagtext:`an enumerator`|| |
  1055. | |+-------------------------+| |
  1056. +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
  1057. +---------------------------------------------------------------------------------------+
  1058. |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
  1059. +---------------------------------------------------------------------------------------+
  1060. +------------------------------------------------------------------------------------------+
  1061. |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
  1062. +------------------------------------------------------------------------------------------+
  1063. +--------------------------------------------------------------------------------------------------------+
  1064. |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
  1065. +--------------------------------------------------------------------------------------------------------+
  1066. +--------------------------------------------------------------------------------------------------+
  1067. |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
  1068. +--------------------------------------------------------------------------------------------------+
  1069. +-----------------------------------------------------------------------------------------------+
  1070. |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
  1071. +-----------------------------------------------------------------------------------------------+
  1072. -Wc++1y-extensions
  1073. ------------------
  1074. Synonym for `-Wc++14-extensions`_.
  1075. -Wc++1z-compat
  1076. --------------
  1077. Synonym for `-Wc++17-compat`_.
  1078. -Wc++1z-compat-mangling
  1079. -----------------------
  1080. Synonym for `-Wc++17-compat-mangling`_.
  1081. -Wc++1z-extensions
  1082. ------------------
  1083. Synonym for `-Wc++17-extensions`_.
  1084. -Wc++2a-compat
  1085. --------------
  1086. **Diagnostic text:**
  1087. +-------------------------------------------------------------------------------------------+
  1088. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
  1089. +-------------------------------------------------------------------------------------------+
  1090. -Wc++2a-compat-pedantic
  1091. -----------------------
  1092. Synonym for `-Wc++2a-compat`_.
  1093. -Wc++2a-extensions
  1094. ------------------
  1095. Some of the diagnostics controlled by this flag are enabled by default.
  1096. **Diagnostic text:**
  1097. +----------------------------------------------------------------------------------------------------+
  1098. |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
  1099. +----------------------------------------------------------------------------------------------------+
  1100. +--------------------------------------------------------------------------------------------------------------------+
  1101. |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
  1102. +--------------------------------------------------------------------------------------------------------------------+
  1103. +--------------------------------------------------------------------------------------------------------------------------+
  1104. |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
  1105. +--------------------------------------------------------------------------------------------------------------------------+
  1106. -Wc++98-c++11-c++14-c++17-compat
  1107. --------------------------------
  1108. **Diagnostic text:**
  1109. +-------------------------------------------------------------------------------------------------------------------------------+
  1110. |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
  1111. +-------------------------------------------------------------------------------------------------------------------------------+
  1112. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  1113. |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
  1114. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  1115. -Wc++98-c++11-c++14-c++17-compat-pedantic
  1116. -----------------------------------------
  1117. Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
  1118. **Diagnostic text:**
  1119. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1120. |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
  1121. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1122. -Wc++98-c++11-c++14-compat
  1123. --------------------------
  1124. **Diagnostic text:**
  1125. +---------------------------------------------------------------------------------------------------+
  1126. |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
  1127. +---------------------------------------------------------------------------------------------------+
  1128. +----------------------------------------------------------------------------------------------------------------------+
  1129. |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
  1130. +----------------------------------------------------------------------------------------------------------------------+
  1131. +------------------------------------------------------------------------------------------------------------------+
  1132. |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
  1133. +------------------------------------------------------------------------------------------------------------------+
  1134. +-----------------------------------------------------------------------------------------------------------+
  1135. |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
  1136. +-----------------------------------------------------------------------------------------------------------+
  1137. +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
  1138. |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
  1139. | ||:diagtext:`if` || |
  1140. | |+------------------+| |
  1141. | ||:diagtext:`switch`|| |
  1142. | |+------------------+| |
  1143. +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
  1144. +--------------------------------------------------------------------------------------------------------+
  1145. |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
  1146. +--------------------------------------------------------------------------------------------------------+
  1147. +------------------------------------------------------------------------------------------------------------------+
  1148. |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
  1149. +------------------------------------------------------------------------------------------------------------------+
  1150. +-------------------------------------------------------------------------------------------------------------------+
  1151. |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
  1152. +-------------------------------------------------------------------------------------------------------------------+
  1153. +---------------------------------------------------------------------------------------------------------------------+
  1154. |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
  1155. +---------------------------------------------------------------------------------------------------------------------+
  1156. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1157. |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
  1158. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1159. +-----------------------------------------------------------------------------------------------------------------------------------+
  1160. |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
  1161. +-----------------------------------------------------------------------------------------------------------------------------------+
  1162. +--------------------------------------------------------------------------------------------------------+
  1163. |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
  1164. +--------------------------------------------------------------------------------------------------------+
  1165. +-----------------------------------------------------------------------------------------------------------------------------+
  1166. |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
  1167. +-----------------------------------------------------------------------------------------------------------------------------+
  1168. +------------------------------------------------------------------------------------------------------------------------------------------------+
  1169. |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
  1170. +------------------------------------------------------------------------------------------------------------------------------------------------+
  1171. +-----------------------------------------------------------------------------------------------------------------------+
  1172. |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
  1173. +-----------------------------------------------------------------------------------------------------------------------+
  1174. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1175. |: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`|
  1176. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1177. -Wc++98-c++11-c++14-compat-pedantic
  1178. -----------------------------------
  1179. Also controls `-Wc++98-c++11-c++14-compat`_.
  1180. **Diagnostic text:**
  1181. +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
  1182. |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
  1183. | ||:diagtext:`a namespace` || |
  1184. | |+-------------------------+| |
  1185. | ||:diagtext:`an enumerator`|| |
  1186. | |+-------------------------+| |
  1187. +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
  1188. +---------------------------------------------------------------------------------------------------------------------+
  1189. |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
  1190. +---------------------------------------------------------------------------------------------------------------------+
  1191. -Wc++98-c++11-compat
  1192. --------------------
  1193. **Diagnostic text:**
  1194. +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1195. |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
  1196. | ||:diagtext:`function` || |
  1197. | |+-----------------------+| |
  1198. | ||:diagtext:`constructor`|| |
  1199. | |+-----------------------+| |
  1200. +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1201. +---------------------------------------------------------------------------------------------------------------------------------------+
  1202. |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
  1203. +---------------------------------------------------------------------------------------------------------------------------------------+
  1204. +-----------------------------------------------------------------------------------------------------------------------------------+
  1205. |:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
  1206. +-----------------------------------------------------------------------------------------------------------------------------------+
  1207. +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1208. |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
  1209. | ||:diagtext:`function` || |
  1210. | |+-----------------------+| |
  1211. | ||:diagtext:`constructor`|| |
  1212. | |+-----------------------+| |
  1213. +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1214. +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1215. |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
  1216. | ||:diagtext:`function` || |
  1217. | |+-----------------------+| |
  1218. | ||:diagtext:`constructor`|| |
  1219. | |+-----------------------+| |
  1220. +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
  1221. +----------------------------------------------------------------------------------------------------------------------+
  1222. |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
  1223. +----------------------------------------------------------------------------------------------------------------------+
  1224. +--------------------------------------------------------------------------------------------------------+
  1225. |:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
  1226. +--------------------------------------------------------------------------------------------------------+
  1227. +-------------------------------------------------------------------------------------------------------------------+
  1228. |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
  1229. +-------------------------------------------------------------------------------------------------------------------+
  1230. +----------------------------------------------------------------------------------------------------------+
  1231. |:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
  1232. +----------------------------------------------------------------------------------------------------------+
  1233. -Wc++98-c++11-compat-binary-literal
  1234. -----------------------------------
  1235. **Diagnostic text:**
  1236. +---------------------------------------------------------------------------------------------------------------+
  1237. |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
  1238. +---------------------------------------------------------------------------------------------------------------+
  1239. -Wc++98-c++11-compat-pedantic
  1240. -----------------------------
  1241. Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
  1242. -Wc++98-compat
  1243. --------------
  1244. Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_.
  1245. **Diagnostic text:**
  1246. +-------------------------------------------------------------------------------------+
  1247. |:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
  1248. +-------------------------------------------------------------------------------------+
  1249. +---------------------------------------------------------------------------+
  1250. |:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
  1251. +---------------------------------------------------------------------------+
  1252. +--------------------------------------------------------------------------------------+
  1253. |:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
  1254. +--------------------------------------------------------------------------------------+
  1255. +----------------------------------------------------------------------------------------+
  1256. |:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
  1257. +----------------------------------------------------------------------------------------+
  1258. +---------------------------------------------------------------------------------------+
  1259. |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
  1260. +---------------------------------------------------------------------------------------+
  1261. +---------------------------------------------------------------------------------------+
  1262. |:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
  1263. +---------------------------------------------------------------------------------------+
  1264. +--------------------------------------------------------------------------------------------------------+
  1265. |:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
  1266. +--------------------------------------------------------------------------------------------------------+
  1267. +-------------------------------------------------------------------------------------------+
  1268. |:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
  1269. +-------------------------------------------------------------------------------------------+
  1270. +---------------------------+-----------------------+--------------------------------------------------------------------+
  1271. |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
  1272. | ||:diagtext:`defaulted`|| |
  1273. | |+---------------------+| |
  1274. | ||:diagtext:`deleted` || |
  1275. | |+---------------------+| |
  1276. +---------------------------+-----------------------+--------------------------------------------------------------------+
  1277. +------------------------------------------------------------------------------------------+
  1278. |:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
  1279. +------------------------------------------------------------------------------------------+
  1280. +----------------------------------------------------------------------------------------------------------------+
  1281. |:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
  1282. +----------------------------------------------------------------------------------------------------------------+
  1283. +-----------------------------------------------------------------------------------------------------------------+
  1284. |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
  1285. +-----------------------------------------------------------------------------------------------------------------+
  1286. +-----------------------------------------------------------------------------------------------------------------------------------------+
  1287. |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
  1288. +-----------------------------------------------------------------------------------------------------------------------------------------+
  1289. +-----------------------------------------------------------------------------------------------------------+
  1290. |:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
  1291. +-----------------------------------------------------------------------------------------------------------+
  1292. +------------------------------------------------------------------------------------------------+
  1293. |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
  1294. +------------------------------------------------------------------------------------------------+
  1295. +--------------------------------------------------------------------------------------+
  1296. |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
  1297. +--------------------------------------------------------------------------------------+
  1298. +---------------------------------------------------------------------------------------------------------------------------+
  1299. |:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
  1300. +---------------------------------------------------------------------------------------------------------------------------+
  1301. +------------------------------------------------------------------------------------------------+
  1302. |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
  1303. +------------------------------------------------------------------------------------------------+
  1304. +------------------------------------------------------------------------------------------------------------+
  1305. |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
  1306. +------------------------------------------------------------------------------------------------------------+
  1307. +---------------------------------------------------------------------------------------------------------------------------------------+
  1308. |:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
  1309. +---------------------------------------------------------------------------------------------------------------------------------------+
  1310. +------------------------------------------------------------------------------------------------------------+
  1311. |:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
  1312. +------------------------------------------------------------------------------------------------------------+
  1313. +------------------------------------------------------------------------------------+
  1314. |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
  1315. +------------------------------------------------------------------------------------+
  1316. +-------------------------------------------------------------------------------------+
  1317. |:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
  1318. +-------------------------------------------------------------------------------------+
  1319. +-----------------------------------------------------------------------------------------------------------+
  1320. |:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
  1321. +-----------------------------------------------------------------------------------------------------------+
  1322. +------------------------------------------------------------------------------------+
  1323. |:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
  1324. +------------------------------------------------------------------------------------+
  1325. +---------------------------------------------------------------------------------------------------------------------------+
  1326. |:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
  1327. +---------------------------------------------------------------------------------------------------------------------------+
  1328. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1329. |:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
  1330. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1331. +------------------------------------------------------------------------------------------+
  1332. |:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
  1333. +------------------------------------------------------------------------------------------+
  1334. +---------------------------------------------------------------------------------------+
  1335. |:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
  1336. +---------------------------------------------------------------------------------------+
  1337. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1338. |:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
  1339. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1340. +----------------------------------------------------------------------------------------------------------------------------------+
  1341. |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
  1342. +----------------------------------------------------------------------------------------------------------------------------------+
  1343. +--------------------------------------------------------------------------------------------------------------------+
  1344. |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
  1345. +--------------------------------------------------------------------------------------------------------------------+
  1346. +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
  1347. |:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
  1348. | ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || |
  1349. | |+----------------------------+| |+------------------------------------+| |
  1350. | ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
  1351. | |+----------------------------+| |+------------------------------------+| |
  1352. | | | ||:diagtext:`move constructor` || |
  1353. | | | |+------------------------------------+| |
  1354. | | | ||:diagtext:`copy assignment operator`|| |
  1355. | | | |+------------------------------------+| |
  1356. | | | ||:diagtext:`move assignment operator`|| |
  1357. | | | |+------------------------------------+| |
  1358. | | | ||:diagtext:`destructor` || |
  1359. | | | |+------------------------------------+| |
  1360. +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
  1361. +---------------------------------------------------------------------------+
  1362. |:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
  1363. +---------------------------------------------------------------------------+
  1364. +--------------------------------------------------------------------------------------------------------+
  1365. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
  1366. +--------------------------------------------------------------------------------------------------------+
  1367. +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
  1368. |: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`|
  1369. | ||:diagtext:`function` || |
  1370. | |+-----------------------+| |
  1371. | ||:diagtext:`block` || |
  1372. | |+-----------------------+| |
  1373. | ||:diagtext:`method` || |
  1374. | |+-----------------------+| |
  1375. | ||:diagtext:`constructor`|| |
  1376. | |+-----------------------+| |
  1377. +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
  1378. +--------------------------------------------------------------------------------------+
  1379. |:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
  1380. +--------------------------------------------------------------------------------------+
  1381. +----------------------------------------------------------------------------------------------------+
  1382. |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
  1383. +----------------------------------------------------------------------------------------------------+
  1384. +-------------------------------------------------------------------------------------------------------------+
  1385. |:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
  1386. +-------------------------------------------------------------------------------------------------------------+
  1387. +------------------------------------------------------------------------------------+
  1388. |:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
  1389. +------------------------------------------------------------------------------------+
  1390. +--------------------------------------------------------------------------------------+
  1391. |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
  1392. +--------------------------------------------------------------------------------------+
  1393. +------------------------------------------------------------------------------------------------------------+
  1394. |:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
  1395. +------------------------------------------------------------------------------------------------------------+
  1396. +----------------------------------------------------------------------------------------------+
  1397. |:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
  1398. +----------------------------------------------------------------------------------------------+
  1399. +----------------------------------------------------------------------------------------------------------------------------------------+
  1400. |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
  1401. +----------------------------------------------------------------------------------------------------------------------------------------+
  1402. +---------------------------------------------------------------------------------------------------------------+
  1403. |:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
  1404. +---------------------------------------------------------------------------------------------------------------+
  1405. +---------------------------------------------------------------------------------------------------------------------------------------+
  1406. |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
  1407. +---------------------------------------------------------------------------------------------------------------------------------------+
  1408. +-------------------------------------------------------------------------------------------------------------------+
  1409. |:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
  1410. +-------------------------------------------------------------------------------------------------------------------+
  1411. +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
  1412. |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
  1413. | ||:diagtext:`function`|| |
  1414. | |+--------------------+| |
  1415. | ||:diagtext:`object` || |
  1416. | |+--------------------+| |
  1417. +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
  1418. +-----------------------------------------------------------------------------------------------------------------+
  1419. |:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
  1420. +-----------------------------------------------------------------------------------------------------------------+
  1421. +---------------------------------------------------------------------------------------------------------------------+
  1422. |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
  1423. +---------------------------------------------------------------------------------------------------------------------+
  1424. +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1425. |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
  1426. | ||:diagtext:`class template` || |
  1427. | |+-------------------------------------+| |
  1428. | ||:diagtext:`class template partial` || |
  1429. | |+-------------------------------------+| |
  1430. | ||:diagtext:`variable template` || |
  1431. | |+-------------------------------------+| |
  1432. | ||:diagtext:`variable template partial`|| |
  1433. | |+-------------------------------------+| |
  1434. | ||:diagtext:`function template` || |
  1435. | |+-------------------------------------+| |
  1436. | ||:diagtext:`member function` || |
  1437. | |+-------------------------------------+| |
  1438. | ||:diagtext:`static data member` || |
  1439. | |+-------------------------------------+| |
  1440. | ||:diagtext:`member class` || |
  1441. | |+-------------------------------------+| |
  1442. | ||:diagtext:`member enumeration` || |
  1443. | |+-------------------------------------+| |
  1444. +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1445. +----------------------------------------------------------------------------------------+
  1446. |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
  1447. +----------------------------------------------------------------------------------------+
  1448. +---------------------------------------------------------------------------------------------------------------+
  1449. |:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
  1450. +---------------------------------------------------------------------------------------------------------------+
  1451. +---------------------------------------------------------------------------------------------------------+
  1452. |:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
  1453. +---------------------------------------------------------------------------------------------------------+
  1454. +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
  1455. |:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
  1456. | ||:diagtext:`struct` || |
  1457. | |+---------------------+| |
  1458. | ||:diagtext:`interface`|| |
  1459. | |+---------------------+| |
  1460. | ||:diagtext:`union` || |
  1461. | |+---------------------+| |
  1462. | ||:diagtext:`class` || |
  1463. | |+---------------------+| |
  1464. | ||:diagtext:`enum` || |
  1465. | |+---------------------+| |
  1466. +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
  1467. +-------------------------------------------------------------------------------------------------------+
  1468. |:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
  1469. +-------------------------------------------------------------------------------------------------------+
  1470. +-----------------------------------------------------------------------------------+
  1471. |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
  1472. +-----------------------------------------------------------------------------------+
  1473. +---------------------------------------------------------------------------------------------------------------+
  1474. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
  1475. +---------------------------------------------------------------------------------------------------------------+
  1476. +------------------------------------------------------------------------------------------+
  1477. |:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
  1478. +------------------------------------------------------------------------------------------+
  1479. +-------------------------------------------------------------------------------------+
  1480. |:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
  1481. +-------------------------------------------------------------------------------------+
  1482. -Wc++98-compat-bind-to-temporary-copy
  1483. -------------------------------------
  1484. **Diagnostic text:**
  1485. +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
  1486. |: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`|
  1487. | ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
  1488. | |+---------------------------------------+| |+----------------------------------------------+| |
  1489. | ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
  1490. | |+---------------------------------------+| |+----------------------------------------------+| |
  1491. | ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
  1492. | |+---------------------------------------+| |+----------------------------------------------+| |
  1493. | ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || |
  1494. | |+---------------------------------------+| |+----------------------------------------------+| |
  1495. | ||:diagtext:`copying member subobject` || | | |
  1496. | |+---------------------------------------+| | | |
  1497. | ||:diagtext:`copying array element` || | | |
  1498. | |+---------------------------------------+| | | |
  1499. | ||:diagtext:`allocating object` || | | |
  1500. | |+---------------------------------------+| | | |
  1501. | ||:diagtext:`copying temporary` || | | |
  1502. | |+---------------------------------------+| | | |
  1503. | ||:diagtext:`initializing base subobject`|| | | |
  1504. | |+---------------------------------------+| | | |
  1505. | ||:diagtext:`initializing vector element`|| | | |
  1506. | |+---------------------------------------+| | | |
  1507. +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
  1508. -Wc++98-compat-local-type-template-args
  1509. ---------------------------------------
  1510. **Diagnostic text:**
  1511. +--------------------------------------------------------------------------------------------------------------------------------------------+
  1512. |:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
  1513. +--------------------------------------------------------------------------------------------------------------------------------------------+
  1514. -Wc++98-compat-pedantic
  1515. -----------------------
  1516. Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_.
  1517. **Diagnostic text:**
  1518. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
  1519. |: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`|
  1520. | ||:diagtext:`integral` || |
  1521. | |+-----------------------+| |
  1522. | ||:diagtext:`enumeration`|| |
  1523. | |+-----------------------+| |
  1524. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
  1525. +------------------------------------------------------------------------------------------------------------------------+
  1526. |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
  1527. +------------------------------------------------------------------------------------------------------------------------+
  1528. +----------------------------------------------------------------------------------------+
  1529. |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
  1530. +----------------------------------------------------------------------------------------+
  1531. +--------------------------------------------------------------------------------------------------------+
  1532. |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
  1533. +--------------------------------------------------------------------------------------------------------+
  1534. +-----------------------------------------------------------------------------------+
  1535. |:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
  1536. +-----------------------------------------------------------------------------------+
  1537. +-----------------------------------------------------------------------------+
  1538. |:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
  1539. +-----------------------------------------------------------------------------+
  1540. +----------------------------------------------------------------------------+
  1541. |:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
  1542. +----------------------------------------------------------------------------+
  1543. +-------------------------------------------------------------------------------------------------+
  1544. |:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
  1545. +-------------------------------------------------------------------------------------------------+
  1546. +-------------------------------------------------------------------------------------------------+
  1547. |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
  1548. +-------------------------------------------------------------------------------------------------+
  1549. +----------------------------------------------------------------------------------+
  1550. |:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
  1551. +----------------------------------------------------------------------------------+
  1552. -Wc++98-compat-unnamed-type-template-args
  1553. -----------------------------------------
  1554. **Diagnostic text:**
  1555. +---------------------------------------------------------------------------------------------------+
  1556. |:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
  1557. +---------------------------------------------------------------------------------------------------+
  1558. -Wc11-extensions
  1559. ----------------
  1560. **Diagnostic text:**
  1561. +---------------------------------------------------------------------------+
  1562. |:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
  1563. +---------------------------------------------------------------------------+
  1564. +----------------------------------------------------------------------------------------+
  1565. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
  1566. +----------------------------------------------------------------------------------------+
  1567. +----------------------------------------------------------------------------+
  1568. |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
  1569. +----------------------------------------------------------------------------+
  1570. +------------------------------------------------------------------------------------+
  1571. |:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
  1572. +------------------------------------------------------------------------------------+
  1573. +--------------------------------------------------------------------------------------+
  1574. |:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
  1575. +--------------------------------------------------------------------------------------+
  1576. +---------------------------------------------------------------------------------+
  1577. |:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
  1578. +---------------------------------------------------------------------------------+
  1579. -Wc99-compat
  1580. ------------
  1581. Some of the diagnostics controlled by this flag are enabled by default.
  1582. **Diagnostic text:**
  1583. +---------------------------+--------------------------------------------------------+--------------------------------------------+
  1584. |:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
  1585. | ||:diagtext:`using this character in an identifier` || |
  1586. | |+------------------------------------------------------+| |
  1587. | ||:diagtext:`starting an identifier with this character`|| |
  1588. | |+------------------------------------------------------+| |
  1589. +---------------------------+--------------------------------------------------------+--------------------------------------------+
  1590. +---------------------------------------------------------------------------------+
  1591. |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
  1592. +---------------------------------------------------------------------------------+
  1593. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
  1594. |: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`|
  1595. | ||:diagtext:`have type 'long long'`|| |
  1596. | |+---------------------------------+| |
  1597. | ||:diagtext:`be ill-formed` || |
  1598. | |+---------------------------------+| |
  1599. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
  1600. -Wc99-extensions
  1601. ----------------
  1602. Some of the diagnostics controlled by this flag are enabled by default.
  1603. **Diagnostic text:**
  1604. +-----------------------------------------------------------------------------------------------+
  1605. |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
  1606. +-----------------------------------------------------------------------------------------------+
  1607. +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
  1608. |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
  1609. | ||:diagtext:`qualifier in` |nbsp| || || || |
  1610. | |+--------------------------------+| |+---------------------+| |
  1611. | ||:diagtext:`static` |nbsp| || || || |
  1612. | |+--------------------------------+| |+---------------------+| |
  1613. | || || ||:diagtext:`'\[\*\] '`|| |
  1614. | |+--------------------------------+| |+---------------------+| |
  1615. +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
  1616. +-----------------------------------------------------------------------------------+
  1617. |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
  1618. +-----------------------------------------------------------------------------------+
  1619. +-------------------------------------------------------------------------------+
  1620. |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
  1621. +-------------------------------------------------------------------------------+
  1622. +-------------------------------------------------------------------------------------------------+
  1623. |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
  1624. +-------------------------------------------------------------------------------------------------+
  1625. +---------------------------------------------------------------------------------------+
  1626. |:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
  1627. +---------------------------------------------------------------------------------------+
  1628. +--------------------------------------------------------------------------------+
  1629. |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
  1630. +--------------------------------------------------------------------------------+
  1631. +------------------------------------------------------------------------------+
  1632. |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
  1633. +------------------------------------------------------------------------------+
  1634. +-------------------------------------------------------------------------------------------------------+
  1635. |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
  1636. +-------------------------------------------------------------------------------------------------------+
  1637. +---------------------------------------------------------------------------------------+
  1638. |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
  1639. +---------------------------------------------------------------------------------------+
  1640. -Wcast-align
  1641. ------------
  1642. **Diagnostic text:**
  1643. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1644. |: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`|
  1645. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1646. -Wcast-calling-convention
  1647. -------------------------
  1648. This diagnostic is enabled by default.
  1649. **Diagnostic text:**
  1650. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1651. |:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
  1652. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1653. -Wcast-of-sel-type
  1654. ------------------
  1655. This diagnostic is enabled by default.
  1656. **Diagnostic text:**
  1657. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1658. |:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
  1659. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1660. -Wcast-qual
  1661. -----------
  1662. **Diagnostic text:**
  1663. +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
  1664. |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
  1665. | ||:diagtext:`const and volatile qualifiers`||
  1666. | |+-----------------------------------------+|
  1667. | ||:diagtext:`const qualifier` ||
  1668. | |+-----------------------------------------+|
  1669. | ||:diagtext:`volatile qualifier` ||
  1670. | |+-----------------------------------------+|
  1671. +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
  1672. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1673. |: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`|
  1674. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1675. -Wchar-align
  1676. ------------
  1677. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  1678. -Wchar-subscripts
  1679. -----------------
  1680. **Diagnostic text:**
  1681. +------------------------------------------------------------+-------------------------+-------------------------------------+
  1682. |:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
  1683. | ||:diagtext:`lower bound`|| |
  1684. | |+-----------------------+| |
  1685. | ||:diagtext:`length` || |
  1686. | |+-----------------------+| |
  1687. +------------------------------------------------------------+-------------------------+-------------------------------------+
  1688. +------------------------------------------------------------------------+
  1689. |:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
  1690. +------------------------------------------------------------------------+
  1691. -Wclang-cl-pch
  1692. --------------
  1693. This diagnostic is enabled by default.
  1694. **Diagnostic text:**
  1695. +-------------------------------------------------------------------------------------------------------------------------+
  1696. |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
  1697. +-------------------------------------------------------------------------------------------------------------------------+
  1698. +------------------------------------------------------------------------------------------------------------------------------+
  1699. |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
  1700. +------------------------------------------------------------------------------------------------------------------------------+
  1701. +--------------------------------------------------------------------------------------------------------------------------------------+
  1702. |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
  1703. +--------------------------------------------------------------------------------------------------------------------------------------+
  1704. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  1705. |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
  1706. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  1707. -Wclass-varargs
  1708. ---------------
  1709. Some of the diagnostics controlled by this flag are enabled by default.
  1710. Also controls `-Wnon-pod-varargs`_.
  1711. **Diagnostic text:**
  1712. +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
  1713. |:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
  1714. | ||:diagtext:`function` ||| ||
  1715. | |+-----------------------+|+--------------------------------------------------------------------+|
  1716. | ||:diagtext:`block` |||+------------------------------------------------------------------+||
  1717. | |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
  1718. | ||:diagtext:`method` |||+------------------------------------------------------------------+||
  1719. | |+-----------------------+|+--------------------------------------------------------------------+|
  1720. | ||:diagtext:`constructor`|| |
  1721. | |+-----------------------+| |
  1722. +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
  1723. -Wcomma
  1724. -------
  1725. **Diagnostic text:**
  1726. +-----------------------------------------------------------------------------+
  1727. |:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
  1728. +-----------------------------------------------------------------------------+
  1729. -Wcomment
  1730. ---------
  1731. Some of the diagnostics controlled by this flag are enabled by default.
  1732. **Diagnostic text:**
  1733. +--------------------------------------------------------------------------------------------------+
  1734. |:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
  1735. +--------------------------------------------------------------------------------------------------+
  1736. +-----------------------------------------------------------------------------------+
  1737. |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
  1738. +-----------------------------------------------------------------------------------+
  1739. +------------------------------------------------------------+
  1740. |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
  1741. +------------------------------------------------------------+
  1742. +-----------------------------------------------------------------+
  1743. |:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
  1744. +-----------------------------------------------------------------+
  1745. -Wcomments
  1746. ----------
  1747. Synonym for `-Wcomment`_.
  1748. -Wcompare-distinct-pointer-types
  1749. --------------------------------
  1750. This diagnostic is enabled by default.
  1751. **Diagnostic text:**
  1752. +---------------------------------------------------------------------------+
  1753. |:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
  1754. +---------------------------------------------------------------------------+
  1755. -Wcomplex-component-init
  1756. ------------------------
  1757. **Diagnostic text:**
  1758. +----------------------------------------------------------------------------------------------------------------------+
  1759. |:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
  1760. +----------------------------------------------------------------------------------------------------------------------+
  1761. -Wconditional-type-mismatch
  1762. ---------------------------
  1763. This diagnostic is enabled by default.
  1764. **Diagnostic text:**
  1765. +----------------------------------------------------------------------------------------------+
  1766. |:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
  1767. +----------------------------------------------------------------------------------------------+
  1768. -Wconditional-uninitialized
  1769. ---------------------------
  1770. **Diagnostic text:**
  1771. +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
  1772. |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
  1773. | ||:diagtext:`used here` ||
  1774. | |+-----------------------------+|
  1775. | ||:diagtext:`captured by block`||
  1776. | |+-----------------------------+|
  1777. +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
  1778. -Wconfig-macros
  1779. ---------------
  1780. This diagnostic is enabled by default.
  1781. **Diagnostic text:**
  1782. +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
  1783. |: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`|
  1784. | ||:diagtext:`definition`|| ||+----------------------------------------------+|| |
  1785. | |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| |
  1786. | ||:diagtext:`#undef` || ||+----------------------------------------------+|| |
  1787. | |+----------------------+| |+------------------------------------------------+| |
  1788. | | | ||+------------------------------+ || |
  1789. | | | |||:diagtext:`-U`:placeholder:`B`| || |
  1790. | | | ||+------------------------------+ || |
  1791. | | | |+------------------------------------------------+| |
  1792. +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
  1793. -Wconstant-conversion
  1794. ---------------------
  1795. This diagnostic is enabled by default.
  1796. Also controls `-Wbitfield-constant-conversion`_.
  1797. **Diagnostic text:**
  1798. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1799. |: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`|
  1800. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1801. -Wconstant-logical-operand
  1802. --------------------------
  1803. This diagnostic is enabled by default.
  1804. **Diagnostic text:**
  1805. +----------------------------------------------------------------------------------------------------------+
  1806. |:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
  1807. +----------------------------------------------------------------------------------------------------------+
  1808. -Wconstexpr-not-const
  1809. ---------------------
  1810. This diagnostic is enabled by default.
  1811. **Diagnostic text:**
  1812. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1813. |: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`|
  1814. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1815. -Wconsumed
  1816. ----------
  1817. **Diagnostic text:**
  1818. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1819. |:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
  1820. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1821. +--------------------------------------------------------------------------------------------------------------------------------+
  1822. |:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
  1823. +--------------------------------------------------------------------------------------------------------------------------------+
  1824. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1825. |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
  1826. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1827. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  1828. |:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
  1829. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  1830. +---------------------------------------------------------------------------------------------------------------+
  1831. |:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
  1832. +---------------------------------------------------------------------------------------------------------------+
  1833. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  1834. |:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
  1835. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  1836. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1837. |: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`|
  1838. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1839. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1840. |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
  1841. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1842. -Wconversion
  1843. ------------
  1844. Some of the diagnostics controlled by this flag are enabled by default.
  1845. Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_.
  1846. **Diagnostic text:**
  1847. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1848. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  1849. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1850. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1851. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  1852. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1853. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  1854. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  1855. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  1856. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  1857. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  1858. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  1859. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1860. |: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`|
  1861. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1862. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1863. |: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`|
  1864. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1865. -Wconversion-null
  1866. -----------------
  1867. Synonym for `-Wnull-conversion`_.
  1868. -Wcoroutine
  1869. -----------
  1870. Synonym for `-Wcoroutine-missing-unhandled-exception`_.
  1871. -Wcoroutine-missing-unhandled-exception
  1872. ---------------------------------------
  1873. This diagnostic is enabled by default.
  1874. **Diagnostic text:**
  1875. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1876. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
  1877. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  1878. -Wcovered-switch-default
  1879. ------------------------
  1880. **Diagnostic text:**
  1881. +--------------------------------------------------------------------------------------------------+
  1882. |:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
  1883. +--------------------------------------------------------------------------------------------------+
  1884. -Wcpp
  1885. -----
  1886. Synonym for `-W#warnings`_.
  1887. -Wcstring-format-directive
  1888. --------------------------
  1889. **Diagnostic text:**
  1890. +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
  1891. |: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| |+----------------------+|
  1892. | ||:diagtext:`NSString`|| ||:diagtext:`method` ||
  1893. | |+--------------------+| |+----------------------+|
  1894. | ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
  1895. | |+--------------------+| |+----------------------+|
  1896. +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
  1897. -Wctor-dtor-privacy
  1898. -------------------
  1899. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  1900. -Wcuda-compat
  1901. -------------
  1902. Some of the diagnostics controlled by this flag are enabled by default.
  1903. **Diagnostic text:**
  1904. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1905. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
  1906. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1907. +---------------------------------------------------------------------------------------------------------------------------------+
  1908. |:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
  1909. +---------------------------------------------------------------------------------------------------------------------------------+
  1910. +------------------------------------------------------------------------------------------------------------+
  1911. |:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
  1912. +------------------------------------------------------------------------------------------------------------+
  1913. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  1914. |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
  1915. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  1916. +--------------------------------------------------------------------------------------------------------------+
  1917. |:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
  1918. +--------------------------------------------------------------------------------------------------------------+
  1919. -Wcustom-atomic-properties
  1920. --------------------------
  1921. **Diagnostic text:**
  1922. +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
  1923. |: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)`|
  1924. | ||:diagtext:`getter`|| |
  1925. | |+------------------+| |
  1926. | ||:diagtext:`setter`|| |
  1927. | |+------------------+| |
  1928. +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
  1929. -Wdangling-else
  1930. ---------------
  1931. This diagnostic is enabled by default.
  1932. **Diagnostic text:**
  1933. +---------------------------------------------------------------------------------+
  1934. |:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
  1935. +---------------------------------------------------------------------------------+
  1936. -Wdangling-field
  1937. ----------------
  1938. This diagnostic is enabled by default.
  1939. **Diagnostic text:**
  1940. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1941. |:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
  1942. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1943. +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
  1944. |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
  1945. | || || |
  1946. | |+--------------------------------+| |
  1947. | ||:diagtext:`subobject of` |nbsp| || |
  1948. | |+--------------------------------+| |
  1949. +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
  1950. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1951. |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
  1952. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  1953. -Wdangling-initializer-list
  1954. ---------------------------
  1955. This diagnostic is enabled by default.
  1956. **Diagnostic text:**
  1957. +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
  1958. |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
  1959. | ||:diagtext:`the full-expression`||
  1960. | |+-------------------------------+|
  1961. | ||:diagtext:`the constructor` ||
  1962. | |+-------------------------------+|
  1963. +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
  1964. -Wdate-time
  1965. -----------
  1966. **Diagnostic text:**
  1967. +------------------------------------------------------------------------------------------+
  1968. |:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
  1969. +------------------------------------------------------------------------------------------+
  1970. -Wdealloc-in-category
  1971. ---------------------
  1972. This diagnostic is enabled by default.
  1973. **Diagnostic text:**
  1974. +---------------------------------------------------------------------------------+
  1975. |:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
  1976. +---------------------------------------------------------------------------------+
  1977. -Wdebug-compression-unavailable
  1978. -------------------------------
  1979. This diagnostic is enabled by default.
  1980. **Diagnostic text:**
  1981. +------------------------------------------------------------------------------------------+
  1982. |:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
  1983. +------------------------------------------------------------------------------------------+
  1984. -Wdeclaration-after-statement
  1985. -----------------------------
  1986. **Diagnostic text:**
  1987. +-----------------------------------------------------------------------------------+
  1988. |:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
  1989. +-----------------------------------------------------------------------------------+
  1990. -Wdelegating-ctor-cycles
  1991. ------------------------
  1992. This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
  1993. **Diagnostic text:**
  1994. +------------------------------------------------------------------------------------------------------------------------+
  1995. |:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
  1996. +------------------------------------------------------------------------------------------------------------------------+
  1997. -Wdelete-incomplete
  1998. -------------------
  1999. This diagnostic is enabled by default.
  2000. **Diagnostic text:**
  2001. +-------------------------------------------------------------------------------------------------------------------+
  2002. |:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
  2003. +-------------------------------------------------------------------------------------------------------------------+
  2004. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  2005. |:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
  2006. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  2007. -Wdelete-non-virtual-dtor
  2008. -------------------------
  2009. Some of the diagnostics controlled by this flag are enabled by default.
  2010. **Diagnostic text:**
  2011. +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
  2012. |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
  2013. | ||:diagtext:`delete` || |
  2014. | |+----------------------+| |
  2015. | ||:diagtext:`destructor`|| |
  2016. | |+----------------------+| |
  2017. +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
  2018. +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
  2019. |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
  2020. | ||:diagtext:`delete` || |
  2021. | |+----------------------+| |
  2022. | ||:diagtext:`destructor`|| |
  2023. | |+----------------------+| |
  2024. +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
  2025. -Wdeprecated
  2026. ------------
  2027. Some of the diagnostics controlled by this flag are enabled by default.
  2028. Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
  2029. **Diagnostic text:**
  2030. +---------------------------------------------------------------+
  2031. |:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
  2032. +---------------------------------------------------------------+
  2033. +---------------------------------------------------------------------------------------------------------+
  2034. |:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
  2035. +---------------------------------------------------------------------------------------------------------+
  2036. +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
  2037. |:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+|
  2038. | ||:diagtext:`constructor` || ||+------------------------+---------------------------------+||
  2039. | |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
  2040. | ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`||||
  2041. | |+-------------------------------+| ||| |+-------------------------------+|||
  2042. | | | ||| ||:diagtext:`constructor` ||||
  2043. | | | ||| |+-------------------------------+|||
  2044. | | | ||+------------------------+---------------------------------+||
  2045. | | | |+------------------------------------------------------------+|
  2046. | | | ||:diagtext:`destructor` ||
  2047. | | | |+------------------------------------------------------------+|
  2048. +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
  2049. +-------------------------------------------------------------------------------------------------------------------------------------+
  2050. |:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
  2051. +-------------------------------------------------------------------------------------------------------------------------------------+
  2052. +----------------------------------------------------------------------------------------------------------------------------------------+
  2053. |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
  2054. +----------------------------------------------------------------------------------------------------------------------------------------+
  2055. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2056. |:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
  2057. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2058. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  2059. |:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
  2060. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  2061. +------------------------------------------------------------------------------------+
  2062. |:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
  2063. +------------------------------------------------------------------------------------+
  2064. -Wdeprecated-attributes
  2065. -----------------------
  2066. This diagnostic is enabled by default.
  2067. **Diagnostic text:**
  2068. +------------------------------------------------------------------------------------------------------------------------------------------------+
  2069. |:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
  2070. +------------------------------------------------------------------------------------------------------------------------------------------------+
  2071. -Wdeprecated-declarations
  2072. -------------------------
  2073. This diagnostic is enabled by default.
  2074. **Diagnostic text:**
  2075. +--------------------------------------------------------------------------------------------------------------------+
  2076. |:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
  2077. +--------------------------------------------------------------------------------------------------------------------+
  2078. +-----------------------------------------------------------------------------------------------------------------+
  2079. |:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
  2080. +-----------------------------------------------------------------------------------------------------------------+
  2081. +----------------------------------------------------------------------------+
  2082. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
  2083. +----------------------------------------------------------------------------+
  2084. +---------------------------------------------------------------------------------------------------------------------+
  2085. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
  2086. +---------------------------------------------------------------------------------------------------------------------+
  2087. +-----------------------------------------------------------------------------------------------------+
  2088. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
  2089. +-----------------------------------------------------------------------------------------------------+
  2090. +-------------------------------------------------------------------------------------------------------------------------------------+
  2091. |:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
  2092. +-------------------------------------------------------------------------------------------------------------------------------------+
  2093. -Wdeprecated-dynamic-exception-spec
  2094. -----------------------------------
  2095. **Diagnostic text:**
  2096. +--------------------------------------------------------------------------------------+
  2097. |:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
  2098. +--------------------------------------------------------------------------------------+
  2099. -Wdeprecated-implementations
  2100. ----------------------------
  2101. **Diagnostic text:**
  2102. +----------------------------------------------------------------------+----------------------+
  2103. |:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
  2104. | ||:diagtext:`method` ||
  2105. | |+--------------------+|
  2106. | ||:diagtext:`class` ||
  2107. | |+--------------------+|
  2108. | ||:diagtext:`category`||
  2109. | |+--------------------+|
  2110. +----------------------------------------------------------------------+----------------------+
  2111. +----------------------------------------------------------------------+
  2112. |:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
  2113. +----------------------------------------------------------------------+
  2114. -Wdeprecated-increment-bool
  2115. ---------------------------
  2116. This diagnostic is enabled by default.
  2117. **Diagnostic text:**
  2118. +---------------------------------------------------------------------------------------------------------------------+
  2119. |:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
  2120. +---------------------------------------------------------------------------------------------------------------------+
  2121. -Wdeprecated-objc-isa-usage
  2122. ---------------------------
  2123. This diagnostic is enabled by default.
  2124. **Diagnostic text:**
  2125. +-------------------------------------------------------------------------------------------------------------------+
  2126. |:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
  2127. +-------------------------------------------------------------------------------------------------------------------+
  2128. +----------------------------------------------------------------------------------------------------------------------+
  2129. |:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
  2130. +----------------------------------------------------------------------------------------------------------------------+
  2131. -Wdeprecated-objc-pointer-introspection
  2132. ---------------------------------------
  2133. This diagnostic is enabled by default.
  2134. Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
  2135. **Diagnostic text:**
  2136. +--------------------------------------------------------------------------------------------------------------------------+
  2137. |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
  2138. +--------------------------------------------------------------------------------------------------------------------------+
  2139. -Wdeprecated-objc-pointer-introspection-performSelector
  2140. -------------------------------------------------------
  2141. This diagnostic is enabled by default.
  2142. **Diagnostic text:**
  2143. +--------------------------------------------------------------------------------------------------------------------------+
  2144. |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
  2145. +--------------------------------------------------------------------------------------------------------------------------+
  2146. -Wdeprecated-register
  2147. ---------------------
  2148. This diagnostic is enabled by default.
  2149. **Diagnostic text:**
  2150. +-------------------------------------------------------------------------------------------------------------------+
  2151. |:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
  2152. +-------------------------------------------------------------------------------------------------------------------+
  2153. -Wdeprecated-writable-strings
  2154. -----------------------------
  2155. Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
  2156. -Wdirect-ivar-access
  2157. --------------------
  2158. **Diagnostic text:**
  2159. +------------------------------------------------------------------------------------------------------------------------------+
  2160. |:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
  2161. +------------------------------------------------------------------------------------------------------------------------------+
  2162. -Wdisabled-macro-expansion
  2163. --------------------------
  2164. **Diagnostic text:**
  2165. +----------------------------------------------------------------------------+
  2166. |:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
  2167. +----------------------------------------------------------------------------+
  2168. -Wdisabled-optimization
  2169. -----------------------
  2170. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  2171. -Wdiscard-qual
  2172. --------------
  2173. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  2174. -Wdistributed-object-modifiers
  2175. ------------------------------
  2176. This diagnostic is enabled by default.
  2177. **Diagnostic text:**
  2178. +----------------------------------------------------------------------------------------------------------------------------------------------+
  2179. |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
  2180. +----------------------------------------------------------------------------------------------------------------------------------------------+
  2181. +-------------------------------------------------------------------------------------------------------------------------------------------+
  2182. |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
  2183. +-------------------------------------------------------------------------------------------------------------------------------------------+
  2184. -Wdiv-by-zero
  2185. -------------
  2186. Synonym for `-Wdivision-by-zero`_.
  2187. -Wdivision-by-zero
  2188. ------------------
  2189. This diagnostic is enabled by default.
  2190. **Diagnostic text:**
  2191. +---------------------------+-----------------------+----------------------------------------+
  2192. |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
  2193. | ||:diagtext:`remainder`|| |
  2194. | |+---------------------+| |
  2195. | ||:diagtext:`division` || |
  2196. | |+---------------------+| |
  2197. +---------------------------+-----------------------+----------------------------------------+
  2198. -Wdll-attribute-on-redeclaration
  2199. --------------------------------
  2200. This diagnostic is enabled by default.
  2201. **Diagnostic text:**
  2202. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2203. |:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
  2204. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2205. -Wdllexport-explicit-instantiation-decl
  2206. ---------------------------------------
  2207. This diagnostic is enabled by default.
  2208. **Diagnostic text:**
  2209. +---------------------------------------------------------------------------------------------------+
  2210. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
  2211. +---------------------------------------------------------------------------------------------------+
  2212. -Wdllimport-static-field-def
  2213. ----------------------------
  2214. This diagnostic is enabled by default.
  2215. **Diagnostic text:**
  2216. +---------------------------------------------------------------------------+
  2217. |:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
  2218. +---------------------------------------------------------------------------+
  2219. -Wdocumentation
  2220. ---------------
  2221. Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
  2222. **Diagnostic text:**
  2223. +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
  2224. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
  2225. | ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
  2226. | |+--------------+|+---------------------+| |+---------------------+| |
  2227. | ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
  2228. | |+--------------+|+---------------------+| |+---------------------+| |
  2229. | | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
  2230. | | |+---------------------+| |+---------------------+| |
  2231. | | ||:diagtext:`struct` || ||:diagtext:`struct` || |
  2232. | | |+---------------------+| |+---------------------+| |
  2233. | | ||:diagtext:`union` || ||:diagtext:`union` || |
  2234. | | |+---------------------+| |+---------------------+| |
  2235. +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
  2236. +-----------------------------------------------------------+----------------+-----------------------------+
  2237. |:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
  2238. | ||:diagtext:`\\`|| |
  2239. | |+--------------+| |
  2240. | ||:diagtext:`@` || |
  2241. | |+--------------+| |
  2242. +-----------------------------------------------------------+----------------+-----------------------------+
  2243. +------------------------------------------------------------------+----------------+-------------------------------------+
  2244. |:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
  2245. | ||:diagtext:`\\`|| |
  2246. | |+--------------+| |
  2247. | ||:diagtext:`@` || |
  2248. | |+--------------+| |
  2249. +------------------------------------------------------------------+----------------+-------------------------------------+
  2250. +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
  2251. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
  2252. | ||:diagtext:`\\`|||:diagtext:`classdesign` || |
  2253. | |+--------------+|+------------------------+| |
  2254. | ||:diagtext:`@` |||:diagtext:`coclass` || |
  2255. | |+--------------+|+------------------------+| |
  2256. | | ||:diagtext:`dependency` || |
  2257. | | |+------------------------+| |
  2258. | | ||:diagtext:`helper` || |
  2259. | | |+------------------------+| |
  2260. | | ||:diagtext:`helperclass` || |
  2261. | | |+------------------------+| |
  2262. | | ||:diagtext:`helps` || |
  2263. | | |+------------------------+| |
  2264. | | ||:diagtext:`instancesize`|| |
  2265. | | |+------------------------+| |
  2266. | | ||:diagtext:`ownership` || |
  2267. | | |+------------------------+| |
  2268. | | ||:diagtext:`performance` || |
  2269. | | |+------------------------+| |
  2270. | | ||:diagtext:`security` || |
  2271. | | |+------------------------+| |
  2272. | | ||:diagtext:`superclass` || |
  2273. | | |+------------------------+| |
  2274. +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
  2275. +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
  2276. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
  2277. | ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
  2278. | |+--------------+|+-------------------------+| |+---------------------------------+| |
  2279. | ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
  2280. | |+--------------+|+-------------------------+| |+---------------------------------+| |
  2281. | | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
  2282. | | |+-------------------------+| |+---------------------------------+| |
  2283. | | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
  2284. | | |+-------------------------+| |+---------------------------------+| |
  2285. | | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
  2286. | | |+-------------------------+| |+---------------------------------+| |
  2287. +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
  2288. +-------------------------------------------------------------------------------------------------------+
  2289. |:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
  2290. +-------------------------------------------------------------------------------------------------------+
  2291. +-------------------------------------------------------------------------------+
  2292. |:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
  2293. +-------------------------------------------------------------------------------+
  2294. +-----------------------------------------------------------------------------------------------------+
  2295. |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
  2296. +-----------------------------------------------------------------------------------------------------+
  2297. +------------------------------------------------------------------------------------------------------------------------------------------+
  2298. |:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
  2299. +------------------------------------------------------------------------------------------------------------------------------------------+
  2300. +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
  2301. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
  2302. | ||:diagtext:`\\`|| |
  2303. | |+--------------+| |
  2304. | ||:diagtext:`@` || |
  2305. | |+--------------+| |
  2306. +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
  2307. +---------------------------------------------------------------------------------------------------------------------+
  2308. |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
  2309. +---------------------------------------------------------------------------------------------------------------------+
  2310. +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
  2311. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
  2312. | ||:diagtext:`\\`|| ||:diagtext:`function returning void`||
  2313. | |+--------------+| |+-----------------------------------+|
  2314. | ||:diagtext:`@` || ||:diagtext:`constructor` ||
  2315. | |+--------------+| |+-----------------------------------+|
  2316. | | | ||:diagtext:`destructor` ||
  2317. | | | |+-----------------------------------+|
  2318. | | | ||:diagtext:`method returning void` ||
  2319. | | | |+-----------------------------------+|
  2320. +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
  2321. +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
  2322. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
  2323. | ||:diagtext:`\\`|| |
  2324. | |+--------------+| |
  2325. | ||:diagtext:`@` || |
  2326. | |+--------------+| |
  2327. +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
  2328. +--------------------------------------------------------------------------------------------------------------+
  2329. |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
  2330. +--------------------------------------------------------------------------------------------------------------+
  2331. +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
  2332. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
  2333. | ||:diagtext:`\\`|| |
  2334. | |+--------------+| |
  2335. | ||:diagtext:`@` || |
  2336. | |+--------------+| |
  2337. +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
  2338. +------------------------------------------------------------------------------------------------------------------------------+
  2339. |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
  2340. +------------------------------------------------------------------------------------------------------------------------------+
  2341. +---------------------------------------------------------------------+
  2342. |:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
  2343. +---------------------------------------------------------------------+
  2344. +----------------------------------------+----------------+------------------------------------------------------------------------------+
  2345. |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
  2346. | ||:diagtext:`\\`|| |
  2347. | |+--------------+| |
  2348. | ||:diagtext:`@` || |
  2349. | |+--------------+| |
  2350. +----------------------------------------+----------------+------------------------------------------------------------------------------+
  2351. -Wdocumentation-deprecated-sync
  2352. -------------------------------
  2353. **Diagnostic text:**
  2354. +----------------------------------------------------------------------------------------------------------------------------------+
  2355. |:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
  2356. +----------------------------------------------------------------------------------------------------------------------------------+
  2357. -Wdocumentation-html
  2358. --------------------
  2359. **Diagnostic text:**
  2360. +-----------------------------------------------------------------------------------------------+
  2361. |:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
  2362. +-----------------------------------------------------------------------------------------------+
  2363. +--------------------------------------------------------------------------------+
  2364. |:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
  2365. +--------------------------------------------------------------------------------+
  2366. +--------------------------------------------------------------------------------------------------+
  2367. |:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
  2368. +--------------------------------------------------------------------------------------------------+
  2369. +-----------------------------------------------------------------------------------------------------------------------------+
  2370. |:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
  2371. +-----------------------------------------------------------------------------------------------------------------------------+
  2372. -Wdocumentation-pedantic
  2373. ------------------------
  2374. Also controls `-Wdocumentation-unknown-command`_.
  2375. **Diagnostic text:**
  2376. +-----------------------------------------------------------------------------------------------+
  2377. |:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
  2378. +-----------------------------------------------------------------------------------------------+
  2379. -Wdocumentation-unknown-command
  2380. -------------------------------
  2381. **Diagnostic text:**
  2382. +--------------------------------------------------------------------------------------------------------------------------------------------+
  2383. |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
  2384. +--------------------------------------------------------------------------------------------------------------------------------------------+
  2385. +---------------------------------------------------------------+
  2386. |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
  2387. +---------------------------------------------------------------+
  2388. -Wdollar-in-identifier-extension
  2389. --------------------------------
  2390. **Diagnostic text:**
  2391. +--------------------------------------------------------+
  2392. |:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
  2393. +--------------------------------------------------------+
  2394. -Wdouble-promotion
  2395. ------------------
  2396. **Diagnostic text:**
  2397. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2398. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  2399. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2400. -Wduplicate-decl-specifier
  2401. --------------------------
  2402. This diagnostic is enabled by default.
  2403. **Diagnostic text:**
  2404. +-----------------------------------------------------------------------------------------------------+
  2405. |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
  2406. +-----------------------------------------------------------------------------------------------------+
  2407. +-----------------------------------------------------------------------------------------------------+
  2408. |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
  2409. +-----------------------------------------------------------------------------------------------------+
  2410. -Wduplicate-enum
  2411. ----------------
  2412. **Diagnostic text:**
  2413. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2414. |: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`|
  2415. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2416. -Wduplicate-method-arg
  2417. ----------------------
  2418. **Diagnostic text:**
  2419. +------------------------------------------------------------------------------------------------+
  2420. |:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
  2421. +------------------------------------------------------------------------------------------------+
  2422. -Wduplicate-method-match
  2423. ------------------------
  2424. **Diagnostic text:**
  2425. +-----------------------------------------------------------------------------------------------------------------------------------+
  2426. |:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
  2427. +-----------------------------------------------------------------------------------------------------------------------------------+
  2428. -Wduplicate-protocol
  2429. --------------------
  2430. This diagnostic is enabled by default.
  2431. **Diagnostic text:**
  2432. +-----------------------------------------------------------------------------------------------------------------------------+
  2433. |:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
  2434. +-----------------------------------------------------------------------------------------------------------------------------+
  2435. -Wdynamic-class-memaccess
  2436. -------------------------
  2437. This diagnostic is enabled by default.
  2438. **Diagnostic text:**
  2439. +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
  2440. |: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| |+-----------------------+|
  2441. | ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
  2442. | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
  2443. | ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
  2444. | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
  2445. | ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
  2446. | |+-----------------------------+| | | |+-----------------------+|
  2447. | ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
  2448. | |+-----------------------------+| | | |+-----------------------+|
  2449. +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
  2450. -Wdynamic-exception-spec
  2451. ------------------------
  2452. Some of the diagnostics controlled by this flag are enabled by default.
  2453. Also controls `-Wdeprecated-dynamic-exception-spec`_.
  2454. **Diagnostic text:**
  2455. +--------------------------------------------------------------------------------------------+
  2456. |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
  2457. +--------------------------------------------------------------------------------------------+
  2458. -Weffc++
  2459. --------
  2460. Synonym for `-Wnon-virtual-dtor`_.
  2461. -Wembedded-directive
  2462. --------------------
  2463. **Diagnostic text:**
  2464. +----------------------------------------------------------------------------------------------------------+
  2465. |:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
  2466. +----------------------------------------------------------------------------------------------------------+
  2467. -Wempty-body
  2468. ------------
  2469. This diagnostic is enabled by default.
  2470. **Diagnostic text:**
  2471. +--------------------------------------------------------------+
  2472. |:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
  2473. +--------------------------------------------------------------+
  2474. +------------------------------------------------------------------+
  2475. |:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
  2476. +------------------------------------------------------------------+
  2477. +--------------------------------------------------------------------------+
  2478. |:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
  2479. +--------------------------------------------------------------------------+
  2480. +----------------------------------------------------------------------+
  2481. |:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
  2482. +----------------------------------------------------------------------+
  2483. +----------------------------------------------------------------+
  2484. |:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
  2485. +----------------------------------------------------------------+
  2486. -Wempty-decomposition
  2487. ---------------------
  2488. This diagnostic is enabled by default.
  2489. **Diagnostic text:**
  2490. +-------------------------------------------------------------------------------------------------+
  2491. |:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
  2492. +-------------------------------------------------------------------------------------------------+
  2493. -Wempty-translation-unit
  2494. ------------------------
  2495. **Diagnostic text:**
  2496. +------------------------------------------------------------------------------------------------------------+
  2497. |:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
  2498. +------------------------------------------------------------------------------------------------------------+
  2499. -Wencode-type
  2500. -------------
  2501. This diagnostic is enabled by default.
  2502. **Diagnostic text:**
  2503. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2504. |:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
  2505. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2506. -Wendif-labels
  2507. --------------
  2508. Synonym for `-Wextra-tokens`_.
  2509. -Wenum-compare
  2510. --------------
  2511. This diagnostic is enabled by default.
  2512. Also controls `-Wenum-compare-switch`_.
  2513. **Diagnostic text:**
  2514. +------------------------------------------------------------------------------------------------+
  2515. |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
  2516. +------------------------------------------------------------------------------------------------+
  2517. -Wenum-compare-switch
  2518. ---------------------
  2519. This diagnostic is enabled by default.
  2520. **Diagnostic text:**
  2521. +--------------------------------------------------------------------------------------------------------------------+
  2522. |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
  2523. +--------------------------------------------------------------------------------------------------------------------+
  2524. -Wenum-conversion
  2525. -----------------
  2526. This diagnostic is enabled by default.
  2527. **Diagnostic text:**
  2528. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2529. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
  2530. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2531. -Wenum-too-large
  2532. ----------------
  2533. This diagnostic is enabled by default.
  2534. **Diagnostic text:**
  2535. +-----------------------------------------------------------------------------------------+
  2536. |:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
  2537. +-----------------------------------------------------------------------------------------+
  2538. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2539. |:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
  2540. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2541. -Wexceptions
  2542. ------------
  2543. This diagnostic is enabled by default.
  2544. **Diagnostic text:**
  2545. +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
  2546. |:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
  2547. | ||:diagtext:`constructor`|| |
  2548. | |+-----------------------+| |
  2549. | ||:diagtext:`destructor` || |
  2550. | |+-----------------------+| |
  2551. +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
  2552. +-------------------------------------------------------------------------------------------------------------------------------------+
  2553. |:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
  2554. +-------------------------------------------------------------------------------------------------------------------------------------+
  2555. +-----------------------------------------------------------------------------------------------------------------------------+
  2556. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
  2557. +-----------------------------------------------------------------------------------------------------------------------------+
  2558. -Wexit-time-destructors
  2559. -----------------------
  2560. **Diagnostic text:**
  2561. +-----------------------------------------------------------------------------------+
  2562. |:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
  2563. +-----------------------------------------------------------------------------------+
  2564. -Wexpansion-to-defined
  2565. ----------------------
  2566. Some of the diagnostics controlled by this flag are enabled by default.
  2567. **Diagnostic text:**
  2568. +-------------------------------------------------------------------------------------------------+
  2569. |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
  2570. +-------------------------------------------------------------------------------------------------+
  2571. +-------------------------------------------------------------------------------------------------+
  2572. |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
  2573. +-------------------------------------------------------------------------------------------------+
  2574. -Wexplicit-initialize-call
  2575. --------------------------
  2576. This diagnostic is enabled by default.
  2577. **Diagnostic text:**
  2578. +------------------------------------------------------------------------------------------------------------+
  2579. |:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
  2580. +------------------------------------------------------------------------------------------------------------+
  2581. +----------------------------------------------------------------------------------------------------------------------------+
  2582. |:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
  2583. +----------------------------------------------------------------------------------------------------------------------------+
  2584. -Wexplicit-ownership-type
  2585. -------------------------
  2586. **Diagnostic text:**
  2587. +-------------------------------------------------------------------------------------------------------------------------------------+
  2588. |:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
  2589. +-------------------------------------------------------------------------------------------------------------------------------------+
  2590. -Wextended-offsetof
  2591. -------------------
  2592. **Diagnostic text:**
  2593. +--------------------------------------------------------------------------------------+
  2594. |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
  2595. +--------------------------------------------------------------------------------------+
  2596. -Wextern-c-compat
  2597. -----------------
  2598. This diagnostic is enabled by default.
  2599. **Diagnostic text:**
  2600. +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
  2601. |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
  2602. | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
  2603. | |+-------------------------+|+------------------+| |+-------------------------+| |
  2604. | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
  2605. | |+-------------------------+|+------------------+| |+-------------------------+| |
  2606. +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
  2607. -Wextern-initializer
  2608. --------------------
  2609. This diagnostic is enabled by default.
  2610. **Diagnostic text:**
  2611. +---------------------------------------------------------------------------+
  2612. |:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
  2613. +---------------------------------------------------------------------------+
  2614. -Wextra
  2615. -------
  2616. Some of the diagnostics controlled by this flag are enabled by default.
  2617. Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
  2618. **Diagnostic text:**
  2619. +-----------------------------------------------------------------------------------------------------------------------------+
  2620. |:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
  2621. +-----------------------------------------------------------------------------------------------------------------------------+
  2622. -Wextra-qualification
  2623. ---------------------
  2624. This diagnostic is enabled by default.
  2625. **Diagnostic text:**
  2626. +--------------------------------------------------------------------------------------------+
  2627. |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
  2628. +--------------------------------------------------------------------------------------------+
  2629. -Wextra-semi
  2630. ------------
  2631. Also controls `-Wc++11-extra-semi`_.
  2632. **Diagnostic text:**
  2633. +--------------------------------------------------------+------------------------------------------------+
  2634. |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
  2635. | ||:diagtext:`outside of a function` ||
  2636. | |+----------------------------------------------+|
  2637. | ||+--------------------------------------------+||
  2638. | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
  2639. | ||+--------------------------------------------+||
  2640. | |+----------------------------------------------+|
  2641. | ||:diagtext:`inside instance variable list` ||
  2642. | |+----------------------------------------------+|
  2643. | ||:diagtext:`after member function definition` ||
  2644. | |+----------------------------------------------+|
  2645. +--------------------------------------------------------+------------------------------------------------+
  2646. +---------------------------------------------------------------------------------+
  2647. |:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
  2648. +---------------------------------------------------------------------------------+
  2649. -Wextra-tokens
  2650. --------------
  2651. This diagnostic is enabled by default.
  2652. **Diagnostic text:**
  2653. +------------------------------------------------------------------------------------------------------------+
  2654. |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
  2655. +------------------------------------------------------------------------------------------------------------+
  2656. +-------------------------------------------------------------------------------------------------------------------------------+
  2657. |:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
  2658. +-------------------------------------------------------------------------------------------------------------------------------+
  2659. -Wfallback
  2660. ----------
  2661. This diagnostic is enabled by default.
  2662. **Diagnostic text:**
  2663. +------------------------------------------------------------------------------+
  2664. |:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
  2665. +------------------------------------------------------------------------------+
  2666. -Wflag-enum
  2667. -----------
  2668. This diagnostic is enabled by default.
  2669. **Diagnostic text:**
  2670. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2671. |:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
  2672. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2673. -Wflexible-array-extensions
  2674. ---------------------------
  2675. **Diagnostic text:**
  2676. +-------------------------------------------------------------------------------------------------------------------------------+
  2677. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
  2678. +-------------------------------------------------------------------------------------------------------------------------------+
  2679. +-------------------------------------------------------------------------------------------------------------------------+
  2680. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
  2681. +-------------------------------------------------------------------------------------------------------------------------+
  2682. -Wfloat-conversion
  2683. ------------------
  2684. Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
  2685. **Diagnostic text:**
  2686. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2687. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  2688. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2689. -Wfloat-equal
  2690. -------------
  2691. **Diagnostic text:**
  2692. +---------------------------------------------------------------------------------------+
  2693. |:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
  2694. +---------------------------------------------------------------------------------------+
  2695. -Wfloat-overflow-conversion
  2696. ---------------------------
  2697. **Diagnostic text:**
  2698. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2699. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`|
  2700. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2701. -Wfloat-zero-conversion
  2702. -----------------------
  2703. **Diagnostic text:**
  2704. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2705. |: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`|
  2706. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2707. -Wfor-loop-analysis
  2708. -------------------
  2709. **Diagnostic text:**
  2710. +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
  2711. |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
  2712. | ||:diagtext:`decremented`|| |
  2713. | |+-----------------------+| |
  2714. | ||:diagtext:`incremented`|| |
  2715. | |+-----------------------+| |
  2716. +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
  2717. +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
  2718. |:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
  2719. | ||:diagtext:`s` || |
  2720. | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
  2721. | ||+------------------------+ || |
  2722. | ||| |nbsp| :placeholder:`B`| || |
  2723. | ||+------------------------+ || |
  2724. | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
  2725. | ||+------------------------------------------------------------------------------------+ || |
  2726. | |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
  2727. | ||+------------------------------------------------------------------------------------+ || |
  2728. | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
  2729. | ||+-------------------------------------------------------------------------------------------------------------------+ || |
  2730. | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
  2731. | ||+-------------------------------------------------------------------------------------------------------------------+ || |
  2732. | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
  2733. | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
  2734. | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
  2735. | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
  2736. | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
  2737. +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
  2738. -Wformat
  2739. --------
  2740. This diagnostic is enabled by default.
  2741. Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
  2742. **Diagnostic text:**
  2743. +-------------------------------------------------------------------------------------+
  2744. |:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
  2745. +-------------------------------------------------------------------------------------+
  2746. +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2747. |: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`|
  2748. | ||:diagtext:`values of type` || |
  2749. | |+--------------------------------------------+| |
  2750. | ||:diagtext:`enum values with underlying type`|| |
  2751. | |+--------------------------------------------+| |
  2752. +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2753. +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
  2754. |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
  2755. | ||:diagtext:`type` || |
  2756. | |+---------------------------+| |
  2757. | ||:diagtext:`underlying type`|| |
  2758. | |+---------------------------+| |
  2759. +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
  2760. +----------------------------------------------------------------------------------------------------------------------------------------+
  2761. |:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
  2762. +----------------------------------------------------------------------------------------------------------------------------------------+
  2763. +-----------------------------------------------------------------------------+-----------------------------+
  2764. |:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
  2765. | ||:diagtext:`field width` ||
  2766. | |+---------------------------+|
  2767. | ||:diagtext:`field precision`||
  2768. | |+---------------------------+|
  2769. +-----------------------------------------------------------------------------+-----------------------------+
  2770. +----------------------------------------------------------------------------------------------------------+
  2771. |:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
  2772. +----------------------------------------------------------------------------------------------------------+
  2773. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2774. |:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
  2775. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2776. +--------------------------------------------------------------------------------+
  2777. |:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
  2778. +--------------------------------------------------------------------------------+
  2779. +-------------------------------------------------------------------------------------------------------+
  2780. |:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
  2781. +-------------------------------------------------------------------------------------------------------+
  2782. +------------------------------------------------------------+
  2783. |:warning:`warning:` |nbsp| :diagtext:`format string missing`|
  2784. +------------------------------------------------------------+
  2785. +----------------------------------------------------------------------------------------------------------------------------------+
  2786. |:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
  2787. +----------------------------------------------------------------------------------------------------------------------------------+
  2788. +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
  2789. |:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
  2790. | ||:diagtext:`\*` || ||:diagtext:`width` || |
  2791. | |+---------------+| |+---------------------+| |
  2792. | ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
  2793. | |+---------------+| |+---------------------+| |
  2794. +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
  2795. +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
  2796. |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
  2797. | ||:diagtext:`width` || |
  2798. | |+---------------------+| |
  2799. | ||:diagtext:`precision`|| |
  2800. | |+---------------------+| |
  2801. +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
  2802. +-----------------------------------------------------------------+
  2803. |:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
  2804. +-----------------------------------------------------------------+
  2805. +------------------------------------------------------------------------------------------+
  2806. |:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
  2807. +------------------------------------------------------------------------------------------+
  2808. +---------------------------------------------------------------------------+
  2809. |:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
  2810. +---------------------------------------------------------------------------+
  2811. +-----------------------------------------------------------------------------------------------------------------------------------------+
  2812. |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
  2813. +-----------------------------------------------------------------------------------------------------------------------------------------+
  2814. +------------------------------------------------------------------+
  2815. |:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
  2816. +------------------------------------------------------------------+
  2817. +--------------------------------------------------------------------------------+
  2818. |:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
  2819. +--------------------------------------------------------------------------------+
  2820. +-------------------------------------------------------------------------------------------------------+
  2821. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
  2822. +-------------------------------------------------------------------------------------------------------+
  2823. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2824. |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
  2825. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2826. +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
  2827. |:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
  2828. | ||:diagtext:`field width`|| |
  2829. | |+-----------------------+| |
  2830. | ||:diagtext:`precision` || |
  2831. | |+-----------------------+| |
  2832. +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
  2833. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2834. |:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
  2835. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2836. +----------------------------------------------------------------------------------------+
  2837. |:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
  2838. +----------------------------------------------------------------------------------------+
  2839. +----------------------------------------------------------------------------------------+
  2840. |:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
  2841. +----------------------------------------------------------------------------------------+
  2842. -Wformat-extra-args
  2843. -------------------
  2844. This diagnostic is enabled by default.
  2845. **Diagnostic text:**
  2846. +------------------------------------------------------------------------------+
  2847. |:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
  2848. +------------------------------------------------------------------------------+
  2849. -Wformat-invalid-specifier
  2850. --------------------------
  2851. This diagnostic is enabled by default.
  2852. **Diagnostic text:**
  2853. +--------------------------------------------------------------------------------------------------+
  2854. |:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
  2855. +--------------------------------------------------------------------------------------------------+
  2856. -Wformat-non-iso
  2857. ----------------
  2858. **Diagnostic text:**
  2859. +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
  2860. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
  2861. | ||:diagtext:`length modifier` || |
  2862. | |+--------------------------------+| |
  2863. | ||:diagtext:`conversion specifier`|| |
  2864. | |+--------------------------------+| |
  2865. +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
  2866. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2867. |:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
  2868. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2869. +--------------------------------------------------------------------------------------+
  2870. |:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
  2871. +--------------------------------------------------------------------------------------+
  2872. -Wformat-nonliteral
  2873. -------------------
  2874. **Diagnostic text:**
  2875. +----------------------------------------------------------------------------+
  2876. |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
  2877. +----------------------------------------------------------------------------+
  2878. -Wformat-pedantic
  2879. -----------------
  2880. **Diagnostic text:**
  2881. +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
  2882. |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
  2883. | ||:diagtext:`type` || |
  2884. | |+---------------------------+| |
  2885. | ||:diagtext:`underlying type`|| |
  2886. | |+---------------------------+| |
  2887. +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
  2888. -Wformat-security
  2889. -----------------
  2890. This diagnostic is enabled by default.
  2891. **Diagnostic text:**
  2892. +---------------------------------------------------------------------------------------------------+
  2893. |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
  2894. +---------------------------------------------------------------------------------------------------+
  2895. -Wformat-y2k
  2896. ------------
  2897. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  2898. -Wformat-zero-length
  2899. --------------------
  2900. This diagnostic is enabled by default.
  2901. **Diagnostic text:**
  2902. +-------------------------------------------------------------+
  2903. |:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
  2904. +-------------------------------------------------------------+
  2905. -Wformat=2
  2906. ----------
  2907. Some of the diagnostics controlled by this flag are enabled by default.
  2908. Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
  2909. -Wfour-char-constants
  2910. ---------------------
  2911. **Diagnostic text:**
  2912. +-------------------------------------------------------------------------+
  2913. |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
  2914. +-------------------------------------------------------------------------+
  2915. -Wframe-larger-than=
  2916. --------------------
  2917. This diagnostic is enabled by default.
  2918. **Diagnostic text:**
  2919. The text of this diagnostic is not controlled by Clang.
  2920. +--------------------------------------------------------------------------------------------------------------------------------------+
  2921. |:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
  2922. +--------------------------------------------------------------------------------------------------------------------------------------+
  2923. -Wfunction-def-in-objc-container
  2924. --------------------------------
  2925. This diagnostic is enabled by default.
  2926. **Diagnostic text:**
  2927. +--------------------------------------------------------------------------------------------------------+
  2928. |:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
  2929. +--------------------------------------------------------------------------------------------------------+
  2930. -Wfuture-compat
  2931. ---------------
  2932. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  2933. -Wgcc-compat
  2934. ------------
  2935. Some of the diagnostics controlled by this flag are enabled by default.
  2936. **Diagnostic text:**
  2937. +--------------------------------------------------------------------------+
  2938. |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
  2939. +--------------------------------------------------------------------------+
  2940. +------------------------------------------------------------------------+
  2941. |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
  2942. +------------------------------------------------------------------------+
  2943. +-----------------------------------------------------------------------------------------------+
  2944. |:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
  2945. +-----------------------------------------------------------------------------------------------+
  2946. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  2947. |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
  2948. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  2949. +---------------------------------------------------------------------------------------+
  2950. |:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
  2951. +---------------------------------------------------------------------------------------+
  2952. +----------------------------------------------------------------------------------------------------------------------------------------+
  2953. |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
  2954. +----------------------------------------------------------------------------------------------------------------------------------------+
  2955. +-----------------------------------------------------------------------------------------------------------------+
  2956. |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
  2957. +-----------------------------------------------------------------------------------------------------------------+
  2958. +----------------------------------------------------------------------------------------------------------------------------------+
  2959. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
  2960. +----------------------------------------------------------------------------------------------------------------------------------+
  2961. -Wglobal-constructors
  2962. ---------------------
  2963. **Diagnostic text:**
  2964. +--------------------------------------------------------------------------------+
  2965. |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
  2966. +--------------------------------------------------------------------------------+
  2967. +-------------------------------------------------------------------------------+
  2968. |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
  2969. +-------------------------------------------------------------------------------+
  2970. -Wgnu
  2971. -----
  2972. Some of the diagnostics controlled by this flag are enabled by default.
  2973. Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_.
  2974. -Wgnu-alignof-expression
  2975. ------------------------
  2976. This diagnostic is enabled by default.
  2977. **Diagnostic text:**
  2978. +----------------------------------------------------------------------------------------------------------+
  2979. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
  2980. +----------------------------------------------------------------------------------------------------------+
  2981. -Wgnu-anonymous-struct
  2982. ----------------------
  2983. **Diagnostic text:**
  2984. +----------------------------------------------------------------------------+
  2985. |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
  2986. +----------------------------------------------------------------------------+
  2987. -Wgnu-array-member-paren-init
  2988. -----------------------------
  2989. This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
  2990. **Diagnostic text:**
  2991. +----------------------------------------------------------------------------------------------------+
  2992. |:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
  2993. +----------------------------------------------------------------------------------------------------+
  2994. -Wgnu-auto-type
  2995. ---------------
  2996. **Diagnostic text:**
  2997. +--------------------------------------------------------------------------+
  2998. |:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
  2999. +--------------------------------------------------------------------------+
  3000. -Wgnu-binary-literal
  3001. --------------------
  3002. **Diagnostic text:**
  3003. +----------------------------------------------------------------------------------+
  3004. |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
  3005. +----------------------------------------------------------------------------------+
  3006. -Wgnu-case-range
  3007. ----------------
  3008. **Diagnostic text:**
  3009. +----------------------------------------------------------------------+
  3010. |:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
  3011. +----------------------------------------------------------------------+
  3012. -Wgnu-complex-integer
  3013. ---------------------
  3014. **Diagnostic text:**
  3015. +--------------------------------------------------------------------------------+
  3016. |:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
  3017. +--------------------------------------------------------------------------------+
  3018. -Wgnu-compound-literal-initializer
  3019. ----------------------------------
  3020. **Diagnostic text:**
  3021. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  3022. |:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
  3023. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  3024. -Wgnu-conditional-omitted-operand
  3025. ---------------------------------
  3026. **Diagnostic text:**
  3027. +--------------------------------------------------------------------------------------------------------------+
  3028. |:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
  3029. +--------------------------------------------------------------------------------------------------------------+
  3030. -Wgnu-designator
  3031. ----------------
  3032. Some of the diagnostics controlled by this flag are enabled by default.
  3033. **Diagnostic text:**
  3034. +-----------------------------------------------------------------------+
  3035. |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
  3036. +-----------------------------------------------------------------------+
  3037. +-------------------------------------------------------------------------------------+
  3038. |:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
  3039. +-------------------------------------------------------------------------------------+
  3040. +--------------------------------------------------------------------------------------+
  3041. |:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
  3042. +--------------------------------------------------------------------------------------+
  3043. -Wgnu-empty-initializer
  3044. -----------------------
  3045. **Diagnostic text:**
  3046. +-----------------------------------------------------------------------------+
  3047. |:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
  3048. +-----------------------------------------------------------------------------+
  3049. -Wgnu-empty-struct
  3050. ------------------
  3051. **Diagnostic text:**
  3052. +----------------------------------------------------+--------------------+--------------------------------------+
  3053. |:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
  3054. | ||:diagtext:`struct`|| |
  3055. | |+------------------+| |
  3056. | ||:diagtext:`union` || |
  3057. | |+------------------+| |
  3058. +----------------------------------------------------+--------------------+--------------------------------------+
  3059. +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
  3060. |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
  3061. | ||:diagtext:`struct` || |
  3062. | |+---------------------+| |
  3063. | ||:diagtext:`interface`|| |
  3064. | |+---------------------+| |
  3065. | ||:diagtext:`union` || |
  3066. | |+---------------------+| |
  3067. | ||:diagtext:`class` || |
  3068. | |+---------------------+| |
  3069. | ||:diagtext:`enum` || |
  3070. | |+---------------------+| |
  3071. +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
  3072. +---------------------------+--------------------+------------------------------------------------------------+
  3073. |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
  3074. | ||:diagtext:`struct`|| |
  3075. | |+------------------+| |
  3076. | ||:diagtext:`union` || |
  3077. | |+------------------+| |
  3078. +---------------------------+--------------------+------------------------------------------------------------+
  3079. -Wgnu-flexible-array-initializer
  3080. --------------------------------
  3081. **Diagnostic text:**
  3082. +---------------------------------------------------------------------------------------+
  3083. |:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
  3084. +---------------------------------------------------------------------------------------+
  3085. -Wgnu-flexible-array-union-member
  3086. ---------------------------------
  3087. **Diagnostic text:**
  3088. +-------------------------------------------------------------------------------------------------------------------------------------+
  3089. |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
  3090. +-------------------------------------------------------------------------------------------------------------------------------------+
  3091. -Wgnu-folding-constant
  3092. ----------------------
  3093. **Diagnostic text:**
  3094. +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
  3095. |:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
  3096. | ||:diagtext:`integer` || |
  3097. | |+--------------------+| |
  3098. | ||:diagtext:`integral`|| |
  3099. | |+--------------------+| |
  3100. +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
  3101. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3102. |: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`|
  3103. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3104. +-----------------------------------------------------------------------------------------------------+
  3105. |:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
  3106. +-----------------------------------------------------------------------------------------------------+
  3107. -Wgnu-imaginary-constant
  3108. ------------------------
  3109. **Diagnostic text:**
  3110. +------------------------------------------------------------------------------+
  3111. |:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
  3112. +------------------------------------------------------------------------------+
  3113. -Wgnu-include-next
  3114. ------------------
  3115. **Diagnostic text:**
  3116. +-----------------------------------------------------------------------------+
  3117. |:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
  3118. +-----------------------------------------------------------------------------+
  3119. -Wgnu-label-as-value
  3120. --------------------
  3121. **Diagnostic text:**
  3122. +----------------------------------------------------------------------------+
  3123. |:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
  3124. +----------------------------------------------------------------------------+
  3125. +-------------------------------------------------------------------------+
  3126. |:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
  3127. +-------------------------------------------------------------------------+
  3128. -Wgnu-redeclared-enum
  3129. ---------------------
  3130. **Diagnostic text:**
  3131. +------------------------------------------------------------------------------------------------------------------------------------------+
  3132. |:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
  3133. +------------------------------------------------------------------------------------------------------------------------------------------+
  3134. -Wgnu-statement-expression
  3135. --------------------------
  3136. **Diagnostic text:**
  3137. +--------------------------------------------------------------------------------+
  3138. |:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
  3139. +--------------------------------------------------------------------------------+
  3140. -Wgnu-static-float-init
  3141. -----------------------
  3142. This diagnostic is enabled by default.
  3143. **Diagnostic text:**
  3144. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  3145. |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
  3146. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  3147. -Wgnu-string-literal-operator-template
  3148. --------------------------------------
  3149. This diagnostic is enabled by default.
  3150. **Diagnostic text:**
  3151. +--------------------------------------------------------------------------------------------+
  3152. |:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
  3153. +--------------------------------------------------------------------------------------------+
  3154. -Wgnu-union-cast
  3155. ----------------
  3156. **Diagnostic text:**
  3157. +----------------------------------------------------------------------------+
  3158. |:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
  3159. +----------------------------------------------------------------------------+
  3160. -Wgnu-variable-sized-type-not-at-end
  3161. ------------------------------------
  3162. This diagnostic is enabled by default.
  3163. **Diagnostic text:**
  3164. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3165. |: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`|
  3166. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3167. -Wgnu-zero-line-directive
  3168. -------------------------
  3169. **Diagnostic text:**
  3170. +--------------------------------------------------------------------------------------------+
  3171. |:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
  3172. +--------------------------------------------------------------------------------------------+
  3173. -Wgnu-zero-variadic-macro-arguments
  3174. -----------------------------------
  3175. **Diagnostic text:**
  3176. +---------------------------------------------------------------------------------------------------------------+
  3177. |:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
  3178. +---------------------------------------------------------------------------------------------------------------+
  3179. +---------------------------------------------------------------------------------------------------+
  3180. |:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
  3181. +---------------------------------------------------------------------------------------------------+
  3182. -Wheader-guard
  3183. --------------
  3184. This diagnostic is enabled by default.
  3185. **Diagnostic text:**
  3186. +---------------------------------------------------------------------------------------------------------------------------------------+
  3187. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
  3188. +---------------------------------------------------------------------------------------------------------------------------------------+
  3189. -Wheader-hygiene
  3190. ----------------
  3191. **Diagnostic text:**
  3192. +--------------------------------------------------------------------------------------------+
  3193. |:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
  3194. +--------------------------------------------------------------------------------------------+
  3195. -Widiomatic-parentheses
  3196. -----------------------
  3197. **Diagnostic text:**
  3198. +-----------------------------------------------------------------------------------------------------------+
  3199. |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
  3200. +-----------------------------------------------------------------------------------------------------------+
  3201. -Wignored-attributes
  3202. --------------------
  3203. This diagnostic is enabled by default.
  3204. **Diagnostic text:**
  3205. +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3206. |: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`|
  3207. | ||:diagtext:`alias`|| |
  3208. | |+-----------------+| |
  3209. | ||:diagtext:`ifunc`|| |
  3210. | |+-----------------+| |
  3211. +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3212. +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
  3213. |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
  3214. | ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
  3215. | |+-----------------+| |+--------------------+|
  3216. | ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
  3217. | |+-----------------+| |+--------------------+|
  3218. +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
  3219. +----------------------------------------------------------------------+------------------------+-------------------------------------+
  3220. |:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
  3221. | ||:diagtext:`non-inline`|| |
  3222. | |+----------------------+| |
  3223. | ||:diagtext:`anonymous` || |
  3224. | |+----------------------+| |
  3225. +----------------------------------------------------------------------+------------------------+-------------------------------------+
  3226. +-----------------------------------------------------------------------------------------------------------------------+
  3227. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
  3228. +-----------------------------------------------------------------------------------------------------------------------+
  3229. +--------------------------------------------------------------------------------------------------------------------------------+
  3230. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
  3231. +--------------------------------------------------------------------------------------------------------------------------------+
  3232. +--------------------------------------------------------------------------------+
  3233. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
  3234. +--------------------------------------------------------------------------------+
  3235. +--------------------------------------------------------------------------------------------------------------------------+
  3236. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
  3237. +--------------------------------------------------------------------------------------------------------------------------+
  3238. +---------------------------------------------------------------------------------------------------+
  3239. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
  3240. +---------------------------------------------------------------------------------------------------+
  3241. +-------------------------------------------------------------------------------------------------------------------+
  3242. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
  3243. +-------------------------------------------------------------------------------------------------------------------+
  3244. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3245. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
  3246. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3247. +--------------------------------------------------------------------------------------------------------+
  3248. |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
  3249. +--------------------------------------------------------------------------------------------------------+
  3250. +-----------------------------------------------------------------------------------------------------+
  3251. |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
  3252. +-----------------------------------------------------------------------------------------------------+
  3253. +--------------------------------------------------------------------------------------------------+
  3254. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
  3255. +--------------------------------------------------------------------------------------------------+
  3256. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3257. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
  3258. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3259. +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
  3260. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
  3261. | || || |
  3262. | |+----------------------------+| |
  3263. | || |nbsp| :diagtext:`constant`|| |
  3264. | |+----------------------------+| |
  3265. +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
  3266. +------------------------------------------------------------------------------------+
  3267. |:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
  3268. +------------------------------------------------------------------------------------+
  3269. +------------------------------------------------------------------------------------------------------------------------+
  3270. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
  3271. +------------------------------------------------------------------------------------------------------------------------+
  3272. +--------------------------------------------------------------------------------------------------------------------------------------+
  3273. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
  3274. +--------------------------------------------------------------------------------------------------------------------------------------+
  3275. +------------------------------------------------------------------------------------+
  3276. |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
  3277. +------------------------------------------------------------------------------------+
  3278. +-----------------------------------------------------------------------------------------------+-----------------------+
  3279. |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
  3280. | ||:diagtext:`functions`||
  3281. | |+---------------------+|
  3282. | ||:diagtext:`blocks` ||
  3283. | |+---------------------+|
  3284. +-----------------------------------------------------------------------------------------------+-----------------------+
  3285. +------------------------------------------------------------------------------------------------------------------------+
  3286. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
  3287. +------------------------------------------------------------------------------------------------------------------------+
  3288. +---------------------------------------------------------------------------------+
  3289. |:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
  3290. +---------------------------------------------------------------------------------+
  3291. +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
  3292. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
  3293. | ||:diagtext:`functions` || |
  3294. | |+------------------------------+| |
  3295. | ||:diagtext:`Objective-C method`|| |
  3296. | |+------------------------------+| |
  3297. +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
  3298. +----------------------------------------------------------------------------------------------------+
  3299. |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
  3300. +----------------------------------------------------------------------------------------------------+
  3301. +------------------------------------------------------------------------------------------------------------------------------+
  3302. |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
  3303. +------------------------------------------------------------------------------------------------------------------------------+
  3304. +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
  3305. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
  3306. | ||:diagtext:`functions` ||
  3307. | |+----------------------------------------------------------------------------------------------------------------+|
  3308. | ||:diagtext:`unions` ||
  3309. | |+----------------------------------------------------------------------------------------------------------------+|
  3310. | ||:diagtext:`variables and functions` ||
  3311. | |+----------------------------------------------------------------------------------------------------------------+|
  3312. | ||:diagtext:`functions and global variables` ||
  3313. | |+----------------------------------------------------------------------------------------------------------------+|
  3314. | ||:diagtext:`functions, variables, and Objective-C interfaces` ||
  3315. | |+----------------------------------------------------------------------------------------------------------------+|
  3316. | ||:diagtext:`functions and methods` ||
  3317. | |+----------------------------------------------------------------------------------------------------------------+|
  3318. | ||:diagtext:`parameters` ||
  3319. | |+----------------------------------------------------------------------------------------------------------------+|
  3320. | ||:diagtext:`functions, methods and blocks` ||
  3321. | |+----------------------------------------------------------------------------------------------------------------+|
  3322. | ||:diagtext:`functions, methods, and classes` ||
  3323. | |+----------------------------------------------------------------------------------------------------------------+|
  3324. | ||:diagtext:`functions, methods, and parameters` ||
  3325. | |+----------------------------------------------------------------------------------------------------------------+|
  3326. | ||:diagtext:`functions, methods, and global variables` ||
  3327. | |+----------------------------------------------------------------------------------------------------------------+|
  3328. | ||:diagtext:`classes` ||
  3329. | |+----------------------------------------------------------------------------------------------------------------+|
  3330. | ||:diagtext:`enums` ||
  3331. | |+----------------------------------------------------------------------------------------------------------------+|
  3332. | ||:diagtext:`variables` ||
  3333. | |+----------------------------------------------------------------------------------------------------------------+|
  3334. | ||:diagtext:`methods` ||
  3335. | |+----------------------------------------------------------------------------------------------------------------+|
  3336. | ||:diagtext:`fields and global variables` ||
  3337. | |+----------------------------------------------------------------------------------------------------------------+|
  3338. | ||:diagtext:`structs` ||
  3339. | |+----------------------------------------------------------------------------------------------------------------+|
  3340. | ||:diagtext:`parameters and typedefs` ||
  3341. | |+----------------------------------------------------------------------------------------------------------------+|
  3342. | ||:diagtext:`variables and typedefs` ||
  3343. | |+----------------------------------------------------------------------------------------------------------------+|
  3344. | ||:diagtext:`thread-local variables` ||
  3345. | |+----------------------------------------------------------------------------------------------------------------+|
  3346. | ||:diagtext:`variables and fields` ||
  3347. | |+----------------------------------------------------------------------------------------------------------------+|
  3348. | ||:diagtext:`variables, data members and tag types` ||
  3349. | |+----------------------------------------------------------------------------------------------------------------+|
  3350. | ||:diagtext:`types and namespaces` ||
  3351. | |+----------------------------------------------------------------------------------------------------------------+|
  3352. | ||:diagtext:`Objective-C interfaces` ||
  3353. | |+----------------------------------------------------------------------------------------------------------------+|
  3354. | ||:diagtext:`methods and properties` ||
  3355. | |+----------------------------------------------------------------------------------------------------------------+|
  3356. | ||:diagtext:`functions, methods, and properties` ||
  3357. | |+----------------------------------------------------------------------------------------------------------------+|
  3358. | ||:diagtext:`struct or union` ||
  3359. | |+----------------------------------------------------------------------------------------------------------------+|
  3360. | ||:diagtext:`struct, union or class` ||
  3361. | |+----------------------------------------------------------------------------------------------------------------+|
  3362. | ||:diagtext:`types` ||
  3363. | |+----------------------------------------------------------------------------------------------------------------+|
  3364. | ||:diagtext:`Objective-C instance methods` ||
  3365. | |+----------------------------------------------------------------------------------------------------------------+|
  3366. | ||:diagtext:`init methods of interface or class extension declarations` ||
  3367. | |+----------------------------------------------------------------------------------------------------------------+|
  3368. | ||:diagtext:`variables, functions and classes` ||
  3369. | |+----------------------------------------------------------------------------------------------------------------+|
  3370. | ||:diagtext:`functions, variables, classes, and Objective-C interfaces` ||
  3371. | |+----------------------------------------------------------------------------------------------------------------+|
  3372. | ||:diagtext:`Objective-C protocols` ||
  3373. | |+----------------------------------------------------------------------------------------------------------------+|
  3374. | ||:diagtext:`variables with static or thread storage duration` ||
  3375. | |+----------------------------------------------------------------------------------------------------------------+|
  3376. | ||:diagtext:`functions, methods, properties, and global variables` ||
  3377. | |+----------------------------------------------------------------------------------------------------------------+|
  3378. | ||:diagtext:`structs, unions, and typedefs` ||
  3379. | |+----------------------------------------------------------------------------------------------------------------+|
  3380. | ||:diagtext:`structs and typedefs` ||
  3381. | |+----------------------------------------------------------------------------------------------------------------+|
  3382. | ||:diagtext:`interface or protocol declarations` ||
  3383. | |+----------------------------------------------------------------------------------------------------------------+|
  3384. | ||:diagtext:`kernel functions` ||
  3385. | |+----------------------------------------------------------------------------------------------------------------+|
  3386. | ||:diagtext:`non-K&R-style functions` ||
  3387. | |+----------------------------------------------------------------------------------------------------------------+|
  3388. | ||:diagtext:`variables, enums, fields and typedefs` ||
  3389. | |+----------------------------------------------------------------------------------------------------------------+|
  3390. | ||:diagtext:`functions, methods, enums, and classes` ||
  3391. | |+----------------------------------------------------------------------------------------------------------------+|
  3392. | ||:diagtext:`structs, classes, variables, functions, and inline namespaces` ||
  3393. | |+----------------------------------------------------------------------------------------------------------------+|
  3394. | ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
  3395. | |+----------------------------------------------------------------------------------------------------------------+|
  3396. | ||:diagtext:`classes and enumerations` ||
  3397. | |+----------------------------------------------------------------------------------------------------------------+|
  3398. | ||:diagtext:`named declarations` ||
  3399. | |+----------------------------------------------------------------------------------------------------------------+|
  3400. +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
  3401. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  3402. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
  3403. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  3404. +----------------------------------------------------------------------------------------------------------------------------+
  3405. |:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
  3406. +----------------------------------------------------------------------------------------------------------------------------+
  3407. +-------------------------------------------------------------------------------------------------------------------+
  3408. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
  3409. +-------------------------------------------------------------------------------------------------------------------+
  3410. +--------------------------------------------------------------------------------------------------------------+
  3411. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
  3412. +--------------------------------------------------------------------------------------------------------------+
  3413. +-------------------------------------------------------------------------------------------------------------------------------------------+
  3414. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
  3415. +-------------------------------------------------------------------------------------------------------------------------------------------+
  3416. +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
  3417. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
  3418. | ||:diagtext:`class` || |
  3419. | |+---------------------+| |
  3420. | ||:diagtext:`struct` || |
  3421. | |+---------------------+| |
  3422. | ||:diagtext:`interface`|| |
  3423. | |+---------------------+| |
  3424. | ||:diagtext:`union` || |
  3425. | |+---------------------+| |
  3426. | ||:diagtext:`enum` || |
  3427. | |+---------------------+| |
  3428. +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
  3429. +--------------------------------------------------------------------------------------------+
  3430. |:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
  3431. +--------------------------------------------------------------------------------------------+
  3432. +----------------------------------------------------------------------------------------------------------------------------------------------+
  3433. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
  3434. +----------------------------------------------------------------------------------------------------------------------------------------------+
  3435. +----------------------------------------------------------------------------------------------------------------------------------------+
  3436. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
  3437. +----------------------------------------------------------------------------------------------------------------------------------------+
  3438. +--------------------------------------------------------------------------------------------------------------+
  3439. |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
  3440. +--------------------------------------------------------------------------------------------------------------+
  3441. +------------------------------------------------------------------------------------------------+
  3442. |:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
  3443. +------------------------------------------------------------------------------------------------+
  3444. +-------------------------------------------------------------------------------------------------------------------------+
  3445. |:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
  3446. +-------------------------------------------------------------------------------------------------------------------------+
  3447. +---------------------------------------------------------------------------+------------------------------------+
  3448. |:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
  3449. | ||:diagtext:`primary template` ||
  3450. | |+----------------------------------+|
  3451. | ||:diagtext:`partial specialization`||
  3452. | |+----------------------------------+|
  3453. +---------------------------------------------------------------------------+------------------------------------+
  3454. +--------------------------------------------------------------------------------------------------------------+
  3455. |:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
  3456. +--------------------------------------------------------------------------------------------------------------+
  3457. +--------------------------------------------------------------------------------------------+
  3458. |:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
  3459. +--------------------------------------------------------------------------------------------+
  3460. +-------------------------------------------------------------------------------------------------------------+----------------------------------+
  3461. |:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
  3462. | ||:diagtext:`no parameters` ||
  3463. | |+--------------------------------+|
  3464. | ||:diagtext:`a 'void' return type`||
  3465. | |+--------------------------------+|
  3466. +-------------------------------------------------------------------------------------------------------------+----------------------------------+
  3467. +---------------------------------------------------------------------------------------+
  3468. |:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
  3469. +---------------------------------------------------------------------------------------+
  3470. +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
  3471. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
  3472. | ||:diagtext:`Objective-C object` || |
  3473. | |+---------------------------------+| |
  3474. | ||:diagtext:`pointer` || |
  3475. | |+---------------------------------+| |
  3476. | ||:diagtext:`pointer-to-CF-pointer`|| |
  3477. | |+---------------------------------+| |
  3478. +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
  3479. +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
  3480. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
  3481. | ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` ||
  3482. | |+----------------------+| |+------------------------------------+|
  3483. | ||:diagtext:`methods` || ||:diagtext:`a pointer` ||
  3484. | |+----------------------+| |+------------------------------------+|
  3485. | ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`||
  3486. | |+----------------------+| |+------------------------------------+|
  3487. +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
  3488. +--------------------------------------------------------------------------------------------------------------------------------------------+
  3489. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
  3490. +--------------------------------------------------------------------------------------------------------------------------------------------+
  3491. +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
  3492. |: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`|
  3493. | ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
  3494. | |+---------------------+| |+---------------------+| |
  3495. | ||:diagtext:`size` || ||:diagtext:`size` || |
  3496. | |+---------------------+| |+---------------------+| |
  3497. +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
  3498. +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
  3499. |:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
  3500. | ||:diagtext:`floating point`|| |
  3501. | |+--------------------------+| |
  3502. | ||:diagtext:`vector` || |
  3503. | |+--------------------------+| |
  3504. +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
  3505. +--------------------------------------------------------------------------------------------------------------------------------+
  3506. |:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
  3507. +--------------------------------------------------------------------------------------------------------------------------------+
  3508. +-----------------------------------------------------------------------------------------------------------------------------------------+
  3509. |:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
  3510. +-----------------------------------------------------------------------------------------------------------------------------------------+
  3511. +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
  3512. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
  3513. | ||:diagtext:`function` || |
  3514. | |+-----------------------------------------------+| |
  3515. | ||:diagtext:`pointer` || |
  3516. | |+-----------------------------------------------+| |
  3517. | ||:diagtext:`Objective-C object or block pointer`|| |
  3518. | |+-----------------------------------------------+| |
  3519. +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
  3520. +-------------------------------------------------------------------------------------------------------------------------+
  3521. |:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
  3522. +-------------------------------------------------------------------------------------------------------------------------+
  3523. +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
  3524. |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`|
  3525. | ||:diagtext:`unsupported`||| || |
  3526. | |+-----------------------+|+--------------------------------+| |
  3527. | ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
  3528. | |+-----------------------+|+--------------------------------+| |
  3529. +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
  3530. -Wignored-optimization-argument
  3531. -------------------------------
  3532. This diagnostic is enabled by default.
  3533. **Diagnostic text:**
  3534. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  3535. |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
  3536. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  3537. +--------------------------------------------------------------------------------------------------------+
  3538. |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
  3539. +--------------------------------------------------------------------------------------------------------+
  3540. -Wignored-pragma-intrinsic
  3541. --------------------------
  3542. This diagnostic is enabled by default.
  3543. **Diagnostic text:**
  3544. +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
  3545. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
  3546. | || ||
  3547. | |+----------------------------------------------------------------------------+|
  3548. | ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
  3549. | |+----------------------------------------------------------------------------+|
  3550. +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
  3551. -Wignored-pragmas
  3552. -----------------
  3553. This diagnostic is enabled by default.
  3554. Also controls `-Wignored-pragma-intrinsic`_.
  3555. **Diagnostic text:**
  3556. +------------------------------------------------------------------------------+---------------------------+-----------------------+
  3557. |:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
  3558. | ||:diagtext:`align` || |
  3559. | |+-------------------------+| |
  3560. | ||:diagtext:`options align`|| |
  3561. | |+-------------------------+| |
  3562. +------------------------------------------------------------------------------+---------------------------+-----------------------+
  3563. +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
  3564. |:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
  3565. | ||:diagtext:`align` || |
  3566. | |+-------------------------+| |
  3567. | ||:diagtext:`options align`|| |
  3568. | |+-------------------------+| |
  3569. +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
  3570. +-----------------------------------------------------------------------------------------------------------+
  3571. |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
  3572. +-----------------------------------------------------------------------------------------------------------+
  3573. +----------------------------------------------------------------------------------------------------+
  3574. |:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
  3575. +----------------------------------------------------------------------------------------------------+
  3576. +-------------------------------------------------------------------------------------------------------+
  3577. |:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
  3578. +-------------------------------------------------------------------------------------------------------+
  3579. +----------------------------------------------------------------------------------------------+
  3580. |:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
  3581. +----------------------------------------------------------------------------------------------+
  3582. +------------------------------------------------------------------------------------------------------------------------+
  3583. |:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3584. +------------------------------------------------------------------------------------------------------------------------+
  3585. +--------------------------------------------------------------------------------------------------------------+
  3586. |:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
  3587. +--------------------------------------------------------------------------------------------------------------+
  3588. +---------------------------------------------------------------------------------------------------------------------+
  3589. |:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
  3590. +---------------------------------------------------------------------------------------------------------------------+
  3591. +---------------------------------------------------------------------------------------------------------------------+
  3592. |:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3593. +---------------------------------------------------------------------------------------------------------------------+
  3594. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3595. |:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3596. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3597. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3598. |: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`|
  3599. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3600. +-----------------------------------------------------------------------------------------------------------------+
  3601. |:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
  3602. +-----------------------------------------------------------------------------------------------------------------+
  3603. +------------------------------------------------------------------------------------------------------------------------+
  3604. |:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
  3605. +------------------------------------------------------------------------------------------------------------------------+
  3606. +-------------------------------------------------------+---------------------------------------------------+------------------------------+
  3607. |:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
  3608. | ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| |
  3609. | |+-------------------------------------------------+| |
  3610. | ||:diagtext:`'disable'` || |
  3611. | |+-------------------------------------------------+| |
  3612. +-------------------------------------------------------+---------------------------------------------------+------------------------------+
  3613. +-----------------------------------------------------------------------------------------------------------+
  3614. |:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
  3615. +-----------------------------------------------------------------------------------------------------------+
  3616. +-----------------------------------------------------------------------------------------------------------------+
  3617. |:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
  3618. +-----------------------------------------------------------------------------------------------------------------+
  3619. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3620. |:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3621. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3622. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3623. |:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3624. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3625. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3626. |:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3627. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3628. +---------------------------------------------------------------------------------------------------------------------+
  3629. |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3630. +---------------------------------------------------------------------------------------------------------------------+
  3631. +----------------------------------------------------------------------------------------------------------+
  3632. |:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
  3633. +----------------------------------------------------------------------------------------------------------+
  3634. +-------------------------------------------------------------------------------------------------------------------+
  3635. |:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
  3636. +-------------------------------------------------------------------------------------------------------------------+
  3637. +-----------------------------------------------------------------------------------------------------------------+
  3638. |:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3639. +-----------------------------------------------------------------------------------------------------------------+
  3640. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3641. |:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3642. +------------------------------------------------------------------------------------------------------------------------------------------------+
  3643. +----------------------------------------------------------------------------------------------+
  3644. |:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
  3645. +----------------------------------------------------------------------------------------------+
  3646. +--------------------------------------------------------------------------------------------------+
  3647. |:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
  3648. +--------------------------------------------------------------------------------------------------+
  3649. +---------------------------------------------------------------------------------------------+
  3650. |:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
  3651. +---------------------------------------------------------------------------------------------+
  3652. +--------------------------------------------------------------------------------------------------------+
  3653. |:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
  3654. +--------------------------------------------------------------------------------------------------------+
  3655. +-------------------------------------------------------------------------------------------------+
  3656. |:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
  3657. +-------------------------------------------------------------------------------------------------+
  3658. +----------------------------------------------------------------------------------------------------------------------------+
  3659. |:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
  3660. +----------------------------------------------------------------------------------------------------------------------------+
  3661. +------------------------------------------------------------------------------------------------------------------------------+
  3662. |:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
  3663. +------------------------------------------------------------------------------------------------------------------------------+
  3664. +---------------------------------------------------------------------------------------------------------------------+
  3665. |:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
  3666. +---------------------------------------------------------------------------------------------------------------------+
  3667. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3668. |:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
  3669. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3670. +-------------------------------------------------------------------------------------------------------------------------+
  3671. |:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
  3672. +-------------------------------------------------------------------------------------------------------------------------+
  3673. +-----------------------------------------------------------------------------------------------+
  3674. |:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
  3675. +-----------------------------------------------------------------------------------------------+
  3676. +------------------------------------------------------------------------------------------+
  3677. |:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
  3678. +------------------------------------------------------------------------------------------+
  3679. +----------------------------------------------------------------------------------------------------------------------------------------------+
  3680. |:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
  3681. +----------------------------------------------------------------------------------------------------------------------------------------------+
  3682. -Wignored-qualifiers
  3683. --------------------
  3684. Some of the diagnostics controlled by this flag are enabled by default.
  3685. **Diagnostic text:**
  3686. +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
  3687. |:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
  3688. | ||:diagtext:`unused` || |
  3689. | |+----------------------------------+| |
  3690. | ||:diagtext:`\_\_unsafe\_unretained`|| |
  3691. | |+----------------------------------+| |
  3692. | ||:diagtext:`\_\_strong` || |
  3693. | |+----------------------------------+| |
  3694. | ||:diagtext:`\_\_weak` || |
  3695. | |+----------------------------------+| |
  3696. | ||:diagtext:`\_\_autoreleasing` || |
  3697. | |+----------------------------------+| |
  3698. +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
  3699. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3700. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
  3701. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3702. +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
  3703. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
  3704. | || || ||:diagtext:`:has` || |
  3705. | |+-------------+| |+-----------------+| |
  3706. | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
  3707. | |+-------------+| |+-----------------+| |
  3708. +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
  3709. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  3710. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
  3711. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  3712. +----------------------------------------------------------------------------------------------------------------------------------------------------------+
  3713. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
  3714. +----------------------------------------------------------------------------------------------------------------------------------------------------------+
  3715. -Wimplicit
  3716. ----------
  3717. Some of the diagnostics controlled by this flag are enabled by default.
  3718. Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
  3719. -Wimplicit-atomic-properties
  3720. ----------------------------
  3721. **Diagnostic text:**
  3722. +-----------------------------------------------------------------------------------------------------+
  3723. |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
  3724. +-----------------------------------------------------------------------------------------------------+
  3725. +----------------------------------------------------------------------------+
  3726. |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
  3727. +----------------------------------------------------------------------------+
  3728. -Wimplicit-conversion-floating-point-to-bool
  3729. --------------------------------------------
  3730. This diagnostic is enabled by default.
  3731. **Diagnostic text:**
  3732. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3733. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  3734. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3735. -Wimplicit-exception-spec-mismatch
  3736. ----------------------------------
  3737. This diagnostic is enabled by default.
  3738. **Diagnostic text:**
  3739. +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
  3740. |:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
  3741. | ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| |
  3742. | |+--------------------+| |+--------------------+| |
  3743. | ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| |
  3744. | |+--------------------+| |+--------------------+| |
  3745. +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
  3746. -Wimplicit-fallthrough
  3747. ----------------------
  3748. Also controls `-Wimplicit-fallthrough-per-function`_.
  3749. **Diagnostic text:**
  3750. +---------------------------------------------------------------------------------+
  3751. |:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
  3752. +---------------------------------------------------------------------------------+
  3753. +-------------------------------------------------------------------------------------+
  3754. |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
  3755. +-------------------------------------------------------------------------------------+
  3756. -Wimplicit-fallthrough-per-function
  3757. -----------------------------------
  3758. **Diagnostic text:**
  3759. +------------------------------------------------------------------------------------------------------------------+
  3760. |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
  3761. +------------------------------------------------------------------------------------------------------------------+
  3762. -Wimplicit-function-declaration
  3763. -------------------------------
  3764. Some of the diagnostics controlled by this flag are enabled by default.
  3765. **Diagnostic text:**
  3766. +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
  3767. |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+|
  3768. | ||:diagtext:`C99` ||
  3769. | |+------------------+|
  3770. | ||:diagtext:`OpenCL`||
  3771. | |+------------------+|
  3772. +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
  3773. +---------------------------------------------------------------------------------------------------------------------------------------------+
  3774. |:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
  3775. +---------------------------------------------------------------------------------------------------------------------------------------------+
  3776. +---------------------------------------------------------------------------------+
  3777. |:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
  3778. +---------------------------------------------------------------------------------+
  3779. +-----------------------------------------------------------------------------------------------+
  3780. |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
  3781. +-----------------------------------------------------------------------------------------------+
  3782. -Wimplicit-int
  3783. --------------
  3784. This diagnostic is enabled by default.
  3785. **Diagnostic text:**
  3786. +--------------------------------------------------------------------------------+
  3787. |:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
  3788. +--------------------------------------------------------------------------------+
  3789. -Wimplicit-retain-self
  3790. ----------------------
  3791. **Diagnostic text:**
  3792. +---------------------------------------------------------------------------------------------------------------------------------------+
  3793. |:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
  3794. +---------------------------------------------------------------------------------------------------------------------------------------+
  3795. -Wimplicitly-unsigned-literal
  3796. -----------------------------
  3797. This diagnostic is enabled by default.
  3798. **Diagnostic text:**
  3799. +----------------------------------------------------------------------------------------------------------------------------------------+
  3800. |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
  3801. +----------------------------------------------------------------------------------------------------------------------------------------+
  3802. -Wimport
  3803. --------
  3804. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  3805. -Wimport-preprocessor-directive-pedantic
  3806. ----------------------------------------
  3807. **Diagnostic text:**
  3808. +----------------------------------------------------------------------+
  3809. |:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
  3810. +----------------------------------------------------------------------+
  3811. -Winaccessible-base
  3812. -------------------
  3813. This diagnostic is enabled by default.
  3814. **Diagnostic text:**
  3815. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  3816. |:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
  3817. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  3818. -Winclude-next-absolute-path
  3819. ----------------------------
  3820. This diagnostic is enabled by default.
  3821. **Diagnostic text:**
  3822. +------------------------------------------------------------------------+
  3823. |:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
  3824. +------------------------------------------------------------------------+
  3825. -Winclude-next-outside-header
  3826. -----------------------------
  3827. This diagnostic is enabled by default.
  3828. **Diagnostic text:**
  3829. +----------------------------------------------------------------------------+
  3830. |:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
  3831. +----------------------------------------------------------------------------+
  3832. -Wincompatible-exception-spec
  3833. -----------------------------
  3834. This diagnostic is enabled by default.
  3835. **Diagnostic text:**
  3836. +--------------------------------------------------------------------------+----------------------+--------------------------------+
  3837. |:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
  3838. | ||:diagtext:`return` || |
  3839. | |+--------------------+| |
  3840. | ||:diagtext:`argument`|| |
  3841. | |+--------------------+| |
  3842. +--------------------------------------------------------------------------+----------------------+--------------------------------+
  3843. +-----------------------------------------------------------------------------------------------+
  3844. |:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
  3845. +-----------------------------------------------------------------------------------------------+
  3846. -Wincompatible-function-pointer-types
  3847. -------------------------------------
  3848. This diagnostic is enabled by default.
  3849. **Diagnostic text:**
  3850. +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  3851. |:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
  3852. | ||:diagtext:`assigning to different types` ||| ||
  3853. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3854. | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
  3855. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3856. | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
  3857. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3858. | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
  3859. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3860. | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
  3861. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3862. | ||:diagtext:`sending to parameter of different type` || |
  3863. | |+--------------------------------------------------------------+| |
  3864. | ||:diagtext:`casting between types` || |
  3865. | |+--------------------------------------------------------------+| |
  3866. +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  3867. -Wincompatible-library-redeclaration
  3868. ------------------------------------
  3869. This diagnostic is enabled by default.
  3870. **Diagnostic text:**
  3871. +-------------------------------------------------------------------------------------------------------------+
  3872. |:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
  3873. +-------------------------------------------------------------------------------------------------------------+
  3874. -Wincompatible-ms-struct
  3875. ------------------------
  3876. This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
  3877. **Diagnostic text:**
  3878. +---------------------------------------------------------------------------------------------------------------------------------------------+
  3879. |:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
  3880. +---------------------------------------------------------------------------------------------------------------------------------------------+
  3881. -Wincompatible-pointer-types
  3882. ----------------------------
  3883. This diagnostic is enabled by default.
  3884. Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
  3885. **Diagnostic text:**
  3886. +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  3887. |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
  3888. | ||:diagtext:`assigning to different types` ||| ||
  3889. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3890. | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
  3891. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3892. | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
  3893. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3894. | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
  3895. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3896. | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
  3897. | |+--------------------------------------------------------------+|+-------------------------------------+|
  3898. | ||:diagtext:`sending to parameter of different type` || |
  3899. | |+--------------------------------------------------------------+| |
  3900. | ||:diagtext:`casting between types` || |
  3901. | |+--------------------------------------------------------------+| |
  3902. +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  3903. -Wincompatible-pointer-types-discards-qualifiers
  3904. ------------------------------------------------
  3905. This diagnostic is enabled by default.
  3906. **Diagnostic text:**
  3907. +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
  3908. |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
  3909. | ||:diagtext:`assigning to different types` || |
  3910. | |+--------------------------------------------------------------+| |
  3911. | ||:diagtext:`passing to parameter of different type` || |
  3912. | |+--------------------------------------------------------------+| |
  3913. | ||:diagtext:`returning from function with different return type`|| |
  3914. | |+--------------------------------------------------------------+| |
  3915. | ||:diagtext:`converting between types` || |
  3916. | |+--------------------------------------------------------------+| |
  3917. | ||:diagtext:`initializing with expression of different type` || |
  3918. | |+--------------------------------------------------------------+| |
  3919. | ||:diagtext:`sending to parameter of different type` || |
  3920. | |+--------------------------------------------------------------+| |
  3921. | ||:diagtext:`casting between types` || |
  3922. | |+--------------------------------------------------------------+| |
  3923. +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
  3924. +---------------------------+----------------------------------------------------------------+---------------------------------------+
  3925. |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
  3926. | ||:diagtext:`assigning to different types` || |
  3927. | |+--------------------------------------------------------------+| |
  3928. | ||:diagtext:`passing to parameter of different type` || |
  3929. | |+--------------------------------------------------------------+| |
  3930. | ||:diagtext:`returning from function with different return type`|| |
  3931. | |+--------------------------------------------------------------+| |
  3932. | ||:diagtext:`converting between types` || |
  3933. | |+--------------------------------------------------------------+| |
  3934. | ||:diagtext:`initializing with expression of different type` || |
  3935. | |+--------------------------------------------------------------+| |
  3936. | ||:diagtext:`sending to parameter of different type` || |
  3937. | |+--------------------------------------------------------------+| |
  3938. | ||:diagtext:`casting between types` || |
  3939. | |+--------------------------------------------------------------+| |
  3940. +---------------------------+----------------------------------------------------------------+---------------------------------------+
  3941. -Wincompatible-property-type
  3942. ----------------------------
  3943. This diagnostic is enabled by default.
  3944. **Diagnostic text:**
  3945. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3946. |: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`|
  3947. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3948. -Wincompatible-sysroot
  3949. ----------------------
  3950. This diagnostic is enabled by default.
  3951. **Diagnostic text:**
  3952. +------------------------------------------------------------------------------------------------------------------------------------+
  3953. |:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
  3954. +------------------------------------------------------------------------------------------------------------------------------------+
  3955. -Wincomplete-implementation
  3956. ---------------------------
  3957. This diagnostic is enabled by default.
  3958. **Diagnostic text:**
  3959. +-----------------------------------------------------------------------------------------------------------------+
  3960. |:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
  3961. +-----------------------------------------------------------------------------------------------------------------+
  3962. -Wincomplete-module
  3963. -------------------
  3964. Some of the diagnostics controlled by this flag are enabled by default.
  3965. Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
  3966. -Wincomplete-umbrella
  3967. ---------------------
  3968. This diagnostic is enabled by default.
  3969. **Diagnostic text:**
  3970. +---------------------------------------------------------------------------------------+
  3971. |:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
  3972. +---------------------------------------------------------------------------------------+
  3973. +--------------------------------------------------------------------------------------------------+
  3974. |:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
  3975. +--------------------------------------------------------------------------------------------------+
  3976. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  3977. |:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
  3978. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  3979. -Winconsistent-dllimport
  3980. ------------------------
  3981. This diagnostic is enabled by default.
  3982. **Diagnostic text:**
  3983. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3984. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
  3985. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3986. +------------------------------------------------------------------------------------------------------------------------------------+
  3987. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
  3988. +------------------------------------------------------------------------------------------------------------------------------------+
  3989. -Winconsistent-missing-destructor-override
  3990. ------------------------------------------
  3991. **Diagnostic text:**
  3992. +------------------------------------------------------------------------------------------------------------------+
  3993. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
  3994. +------------------------------------------------------------------------------------------------------------------+
  3995. -Winconsistent-missing-override
  3996. -------------------------------
  3997. This diagnostic is enabled by default.
  3998. **Diagnostic text:**
  3999. +-----------------------------------------------------------------------------------------------------------------------+
  4000. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
  4001. +-----------------------------------------------------------------------------------------------------------------------+
  4002. -Wincrement-bool
  4003. ----------------
  4004. This diagnostic is enabled by default.
  4005. Also controls `-Wdeprecated-increment-bool`_.
  4006. **Diagnostic text:**
  4007. +------------------------------------------------------------------------------------------------+
  4008. |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
  4009. +------------------------------------------------------------------------------------------------+
  4010. -Winfinite-recursion
  4011. --------------------
  4012. **Diagnostic text:**
  4013. +---------------------------------------------------------------------------------------+
  4014. |:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
  4015. +---------------------------------------------------------------------------------------+
  4016. -Winit-self
  4017. -----------
  4018. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4019. -Winitializer-overrides
  4020. -----------------------
  4021. This diagnostic is enabled by default.
  4022. **Diagnostic text:**
  4023. +---------------------------------------------------------------------------------------------------+
  4024. |:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
  4025. +---------------------------------------------------------------------------------------------------+
  4026. +---------------------------------------------------------------------------------------------------------------------------------------+
  4027. |:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
  4028. +---------------------------------------------------------------------------------------------------------------------------------------+
  4029. -Winjected-class-name
  4030. ---------------------
  4031. This diagnostic is enabled by default.
  4032. **Diagnostic text:**
  4033. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
  4034. |: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`|
  4035. | ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| |
  4036. | |+-------------------------+| |+----------------------+| |
  4037. | ||:diagtext:`type` || ||:diagtext:`'template'`|| |
  4038. | |+-------------------------+| |+----------------------+| |
  4039. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
  4040. -Winline
  4041. --------
  4042. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4043. -Winline-asm
  4044. ------------
  4045. This diagnostic is enabled by default.
  4046. **Diagnostic text:**
  4047. The text of this diagnostic is not controlled by Clang.
  4048. -Winline-new-delete
  4049. -------------------
  4050. This diagnostic is enabled by default.
  4051. **Diagnostic text:**
  4052. +----------------------------------------------------------------------------------------------------------------------------------+
  4053. |:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
  4054. +----------------------------------------------------------------------------------------------------------------------------------+
  4055. -Winstantiation-after-specialization
  4056. ------------------------------------
  4057. This diagnostic is enabled by default.
  4058. **Diagnostic text:**
  4059. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4060. |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
  4061. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4062. -Wint-conversion
  4063. ----------------
  4064. This diagnostic is enabled by default.
  4065. **Diagnostic text:**
  4066. +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  4067. |:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
  4068. | ||:diagtext:`assigning to different types` ||| ||
  4069. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4070. | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
  4071. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4072. | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
  4073. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4074. | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
  4075. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4076. | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
  4077. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4078. | ||:diagtext:`sending to parameter of different type` || |
  4079. | |+--------------------------------------------------------------+| |
  4080. | ||:diagtext:`casting between types` || |
  4081. | |+--------------------------------------------------------------+| |
  4082. +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  4083. +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  4084. |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
  4085. | ||:diagtext:`assigning to different types` ||| ||
  4086. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4087. | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
  4088. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4089. | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
  4090. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4091. | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
  4092. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4093. | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
  4094. | |+--------------------------------------------------------------+|+-------------------------------------+|
  4095. | ||:diagtext:`sending to parameter of different type` || |
  4096. | |+--------------------------------------------------------------+| |
  4097. | ||:diagtext:`casting between types` || |
  4098. | |+--------------------------------------------------------------+| |
  4099. +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
  4100. -Wint-conversions
  4101. -----------------
  4102. Synonym for `-Wint-conversion`_.
  4103. -Wint-to-pointer-cast
  4104. ---------------------
  4105. This diagnostic is enabled by default.
  4106. Also controls `-Wint-to-void-pointer-cast`_.
  4107. **Diagnostic text:**
  4108. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4109. |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
  4110. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4111. -Wint-to-void-pointer-cast
  4112. --------------------------
  4113. This diagnostic is enabled by default.
  4114. **Diagnostic text:**
  4115. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4116. |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
  4117. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4118. -Winteger-overflow
  4119. ------------------
  4120. This diagnostic is enabled by default.
  4121. **Diagnostic text:**
  4122. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  4123. |:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
  4124. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  4125. -Winvalid-command-line-argument
  4126. -------------------------------
  4127. This diagnostic is enabled by default.
  4128. Also controls `-Wignored-optimization-argument`_.
  4129. **Diagnostic text:**
  4130. +-----------------------------------------------------------------------------------------------------------------------------------------+
  4131. |:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
  4132. +-----------------------------------------------------------------------------------------------------------------------------------------+
  4133. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4134. |:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
  4135. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4136. -Winvalid-constexpr
  4137. -------------------
  4138. This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
  4139. **Diagnostic text:**
  4140. +----------------------------------------------------+-------------------------+--------------------------------------------------------+
  4141. |:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
  4142. | ||:diagtext:`function` || |
  4143. | |+-----------------------+| |
  4144. | ||:diagtext:`constructor`|| |
  4145. | |+-----------------------+| |
  4146. +----------------------------------------------------+-------------------------+--------------------------------------------------------+
  4147. -Winvalid-iboutlet
  4148. ------------------
  4149. This diagnostic is enabled by default.
  4150. **Diagnostic text:**
  4151. +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
  4152. |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
  4153. | ||:diagtext:`instance variable`|| |
  4154. | |+-----------------------------+| |
  4155. | ||:diagtext:`property` || |
  4156. | |+-----------------------------+| |
  4157. +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
  4158. +---------------------------------------------------------------------------------------------------------+
  4159. |:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
  4160. +---------------------------------------------------------------------------------------------------------+
  4161. -Winvalid-initializer-from-system-header
  4162. ----------------------------------------
  4163. This diagnostic is enabled by default.
  4164. **Diagnostic text:**
  4165. +--------------------------------------------------------------------------------------------------------------+
  4166. |:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
  4167. +--------------------------------------------------------------------------------------------------------------+
  4168. -Winvalid-ios-deployment-target
  4169. -------------------------------
  4170. This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
  4171. **Diagnostic text:**
  4172. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4173. |:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
  4174. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4175. -Winvalid-noreturn
  4176. ------------------
  4177. This diagnostic is enabled by default.
  4178. **Diagnostic text:**
  4179. +-------------------------------------------------------------------------------------+
  4180. |:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
  4181. +-------------------------------------------------------------------------------------+
  4182. +--------------------------------------------------------------------------------------------------------------------------------+
  4183. |:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
  4184. +--------------------------------------------------------------------------------------------------------------------------------+
  4185. -Winvalid-offsetof
  4186. ------------------
  4187. This diagnostic is enabled by default.
  4188. **Diagnostic text:**
  4189. +----------------------------------------------------------------------------------------+
  4190. |:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
  4191. +----------------------------------------------------------------------------------------+
  4192. +----------------------------------------------------------------------------------------------------+
  4193. |:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
  4194. +----------------------------------------------------------------------------------------------------+
  4195. -Winvalid-or-nonexistent-directory
  4196. ----------------------------------
  4197. Some of the diagnostics controlled by this flag are enabled by default.
  4198. **Diagnostic text:**
  4199. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4200. |:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
  4201. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4202. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4203. |:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
  4204. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4205. -Winvalid-partial-specialization
  4206. --------------------------------
  4207. This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
  4208. **Diagnostic text:**
  4209. +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
  4210. |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
  4211. | ||:diagtext:`class` || |
  4212. | |+--------------------+| |
  4213. | ||:diagtext:`variable`|| |
  4214. | |+--------------------+| |
  4215. +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
  4216. -Winvalid-pch
  4217. -------------
  4218. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4219. -Winvalid-pp-token
  4220. ------------------
  4221. This diagnostic is enabled by default.
  4222. **Diagnostic text:**
  4223. +---------------------------------------------------------------+
  4224. |:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
  4225. +---------------------------------------------------------------+
  4226. +------------------------------------------------------------------+-----------------+-----------------------------+
  4227. |:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
  4228. | ||:diagtext:`'` || |
  4229. | |+---------------+| |
  4230. | ||:diagtext:`'"'`|| |
  4231. | |+---------------+| |
  4232. +------------------------------------------------------------------+-----------------+-----------------------------+
  4233. -Winvalid-source-encoding
  4234. -------------------------
  4235. This diagnostic is enabled by default.
  4236. **Diagnostic text:**
  4237. +--------------------------------------------------------------------------------------+
  4238. |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
  4239. +--------------------------------------------------------------------------------------+
  4240. +-----------------------------------------------------------------------------------+
  4241. |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
  4242. +-----------------------------------------------------------------------------------+
  4243. -Winvalid-token-paste
  4244. ---------------------
  4245. This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
  4246. **Diagnostic text:**
  4247. +----------------------------------------------------------------------------------------------------------------+
  4248. |:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
  4249. +----------------------------------------------------------------------------------------------------------------+
  4250. -Wjump-seh-finally
  4251. ------------------
  4252. This diagnostic is enabled by default.
  4253. **Diagnostic text:**
  4254. +-------------------------------------------------------------------------------------------+
  4255. |:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
  4256. +-------------------------------------------------------------------------------------------+
  4257. -Wkeyword-compat
  4258. ----------------
  4259. This diagnostic is enabled by default.
  4260. **Diagnostic text:**
  4261. +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
  4262. |:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
  4263. | ||:diagtext:`here` ||
  4264. | |+-----------------------------------------------------+|
  4265. | ||:diagtext:`for the remainder of the translation unit`||
  4266. | |+-----------------------------------------------------+|
  4267. +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
  4268. -Wkeyword-macro
  4269. ---------------
  4270. **Diagnostic text:**
  4271. +----------------------------------------------------------------------------+
  4272. |:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
  4273. +----------------------------------------------------------------------------+
  4274. -Wknr-promoted-parameter
  4275. ------------------------
  4276. This diagnostic is enabled by default.
  4277. **Diagnostic text:**
  4278. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4279. |:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
  4280. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4281. -Wlanguage-extension-token
  4282. --------------------------
  4283. **Diagnostic text:**
  4284. +-----------------------------------------------------+
  4285. |:warning:`warning:` |nbsp| :diagtext:`extension used`|
  4286. +-----------------------------------------------------+
  4287. -Wlarge-by-value-copy
  4288. ---------------------
  4289. This diagnostic is enabled by default.
  4290. **Diagnostic text:**
  4291. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4292. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
  4293. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4294. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4295. |: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 ?`|
  4296. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4297. -Wliblto
  4298. --------
  4299. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4300. -Wliteral-conversion
  4301. --------------------
  4302. This diagnostic is enabled by default.
  4303. **Diagnostic text:**
  4304. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4305. |: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`|
  4306. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4307. -Wliteral-range
  4308. ---------------
  4309. This diagnostic is enabled by default.
  4310. **Diagnostic text:**
  4311. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4312. |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
  4313. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4314. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4315. |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
  4316. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4317. -Wlocal-type-template-args
  4318. --------------------------
  4319. Some of the diagnostics controlled by this flag are enabled by default.
  4320. Also controls `-Wc++98-compat-local-type-template-args`_.
  4321. **Diagnostic text:**
  4322. +------------------------------------------------------------------------------------------------+
  4323. |:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
  4324. +------------------------------------------------------------------------------------------------+
  4325. -Wlogical-not-parentheses
  4326. -------------------------
  4327. This diagnostic is enabled by default.
  4328. **Diagnostic text:**
  4329. +--------------------------------------------------------------------------------------------------------+------------------------------+
  4330. |:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
  4331. | ||:diagtext:`comparison` ||
  4332. | |+----------------------------+|
  4333. | ||:diagtext:`bitwise operator`||
  4334. | |+----------------------------+|
  4335. +--------------------------------------------------------------------------------------------------------+------------------------------+
  4336. -Wlogical-op-parentheses
  4337. ------------------------
  4338. This diagnostic is enabled by default.
  4339. **Diagnostic text:**
  4340. +---------------------------------------------------------+
  4341. |:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
  4342. +---------------------------------------------------------+
  4343. -Wlong-long
  4344. -----------
  4345. Also controls `-Wc++11-long-long`_.
  4346. **Diagnostic text:**
  4347. +-----------------------------------------------------------------------------------------------+
  4348. |:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
  4349. +-----------------------------------------------------------------------------------------------+
  4350. -Wloop-analysis
  4351. ---------------
  4352. Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
  4353. -Wmacro-redefined
  4354. -----------------
  4355. This diagnostic is enabled by default.
  4356. **Diagnostic text:**
  4357. +------------------------------------------------------------------------------+
  4358. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
  4359. +------------------------------------------------------------------------------+
  4360. -Wmain
  4361. ------
  4362. Some of the diagnostics controlled by this flag are enabled by default.
  4363. **Diagnostic text:**
  4364. +--------------------------------------------------------------------------------------------+
  4365. |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
  4366. +--------------------------------------------------------------------------------------------+
  4367. +--------------------------------------------------------------------------------------+
  4368. |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
  4369. +--------------------------------------------------------------------------------------+
  4370. +------------------------------------------------------------------------------------+
  4371. |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
  4372. +------------------------------------------------------------------------------------+
  4373. +-------------------------------------------------------------------------------+
  4374. |:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
  4375. +-------------------------------------------------------------------------------+
  4376. +---------------------------------------------------------------------------------------------------------+
  4377. |:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
  4378. +---------------------------------------------------------------------------------------------------------+
  4379. +------------------------------------------------------------------------+
  4380. |:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
  4381. +------------------------------------------------------------------------+
  4382. +---------------------------------------------------------------------------+
  4383. |:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
  4384. +---------------------------------------------------------------------------+
  4385. -Wmain-return-type
  4386. ------------------
  4387. This diagnostic is enabled by default.
  4388. **Diagnostic text:**
  4389. +-------------------------------------------------------------------------+
  4390. |:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
  4391. +-------------------------------------------------------------------------+
  4392. -Wmalformed-warning-check
  4393. -------------------------
  4394. This diagnostic is enabled by default.
  4395. **Diagnostic text:**
  4396. +---------------------------------------------------------------------------------------------+
  4397. |:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
  4398. +---------------------------------------------------------------------------------------------+
  4399. -Wmany-braces-around-scalar-init
  4400. --------------------------------
  4401. This diagnostic is enabled by default.
  4402. **Diagnostic text:**
  4403. +--------------------------------------------------------------------------------+
  4404. |:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
  4405. +--------------------------------------------------------------------------------+
  4406. -Wmax-unsigned-zero
  4407. -------------------
  4408. This diagnostic is enabled by default.
  4409. **Diagnostic text:**
  4410. +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
  4411. |:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
  4412. | ||:diagtext:`a value and unsigned zero`|| |
  4413. | |+-------------------------------------+| |
  4414. | ||:diagtext:`unsigned zero and a value`|| |
  4415. | |+-------------------------------------+| |
  4416. +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
  4417. -Wmemsize-comparison
  4418. --------------------
  4419. This diagnostic is enabled by default.
  4420. **Diagnostic text:**
  4421. +-----------------------------------------------------------------------------------------------------------------------+
  4422. |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
  4423. +-----------------------------------------------------------------------------------------------------------------------+
  4424. -Wmethod-signatures
  4425. -------------------
  4426. **Diagnostic text:**
  4427. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4428. |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
  4429. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4430. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4431. |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
  4432. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4433. -Wmicrosoft
  4434. -----------
  4435. Some of the diagnostics controlled by this flag are enabled by default.
  4436. Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_.
  4437. -Wmicrosoft-anon-tag
  4438. --------------------
  4439. Some of the diagnostics controlled by this flag are enabled by default.
  4440. **Diagnostic text:**
  4441. +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
  4442. |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
  4443. | ||:diagtext:`struct`|| |
  4444. | |+------------------+| |
  4445. | ||:diagtext:`union` || |
  4446. | |+------------------+| |
  4447. +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
  4448. +--------------------------------------------------------+---------------------+---------------------------------------------+
  4449. |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
  4450. | ||:diagtext:`structs`|| |
  4451. | |+-------------------+| |
  4452. | ||:diagtext:`unions` || |
  4453. | |+-------------------+| |
  4454. +--------------------------------------------------------+---------------------+---------------------------------------------+
  4455. -Wmicrosoft-cast
  4456. ----------------
  4457. This diagnostic is enabled by default.
  4458. **Diagnostic text:**
  4459. +------------------------------------------------------------------------------------------------------------------------------+
  4460. |:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
  4461. +------------------------------------------------------------------------------------------------------------------------------+
  4462. +-------------------------------------------------------------------------------------------------------------------------------------+
  4463. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
  4464. +-------------------------------------------------------------------------------------------------------------------------------------+
  4465. -Wmicrosoft-charize
  4466. -------------------
  4467. **Diagnostic text:**
  4468. +-------------------------------------------------------------------------------------+
  4469. |:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
  4470. +-------------------------------------------------------------------------------------+
  4471. -Wmicrosoft-comment-paste
  4472. -------------------------
  4473. **Diagnostic text:**
  4474. +----------------------------------------------------------------------------------------------------------+
  4475. |:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
  4476. +----------------------------------------------------------------------------------------------------------+
  4477. -Wmicrosoft-const-init
  4478. ----------------------
  4479. This diagnostic is enabled by default.
  4480. **Diagnostic text:**
  4481. +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
  4482. |:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
  4483. | || || |
  4484. | |+---------------------------------------------------------------+| |
  4485. | || |nbsp| :diagtext:`without a user-provided default constructor`|| |
  4486. | |+---------------------------------------------------------------+| |
  4487. +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
  4488. -Wmicrosoft-cpp-macro
  4489. ---------------------
  4490. **Diagnostic text:**
  4491. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4492. |:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
  4493. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4494. -Wmicrosoft-default-arg-redefinition
  4495. ------------------------------------
  4496. This diagnostic is enabled by default.
  4497. **Diagnostic text:**
  4498. +-----------------------------------------------------------------------+
  4499. |:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
  4500. +-----------------------------------------------------------------------+
  4501. -Wmicrosoft-end-of-file
  4502. -----------------------
  4503. **Diagnostic text:**
  4504. +----------------------------------------------------------------------------------------------+
  4505. |:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
  4506. +----------------------------------------------------------------------------------------------+
  4507. -Wmicrosoft-enum-forward-reference
  4508. ----------------------------------
  4509. This diagnostic is enabled by default.
  4510. **Diagnostic text:**
  4511. +---------------------------------------------------------------------------------------------------+
  4512. |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
  4513. +---------------------------------------------------------------------------------------------------+
  4514. -Wmicrosoft-enum-value
  4515. ----------------------
  4516. **Diagnostic text:**
  4517. +---------------------------------------------------------------------------------------------------------------------------+
  4518. |:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
  4519. +---------------------------------------------------------------------------------------------------------------------------+
  4520. -Wmicrosoft-exception-spec
  4521. --------------------------
  4522. Some of the diagnostics controlled by this flag are enabled by default.
  4523. **Diagnostic text:**
  4524. +------------------------------------------------------------------------------------------------+
  4525. |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
  4526. +------------------------------------------------------------------------------------------------+
  4527. +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
  4528. |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
  4529. | || || |
  4530. | |+--------------------------------+| |
  4531. | ||:diagtext:`pointer to` |nbsp| || |
  4532. | |+--------------------------------+| |
  4533. | ||:diagtext:`reference to` |nbsp| || |
  4534. | |+--------------------------------+| |
  4535. +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
  4536. +-----------------------------------------------------------------------------------------------------------------+
  4537. |:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
  4538. +-----------------------------------------------------------------------------------------------------------------+
  4539. +------------------------------------------------------------------------------------------------------------------------+
  4540. |:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
  4541. +------------------------------------------------------------------------------------------------------------------------+
  4542. +--------------------------------------------------------------------------------------------------------------------------------+
  4543. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
  4544. +--------------------------------------------------------------------------------------------------------------------------------+
  4545. +-------------------------------------------------------------------------------------------------------------------+
  4546. |:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
  4547. +-------------------------------------------------------------------------------------------------------------------+
  4548. -Wmicrosoft-exists
  4549. ------------------
  4550. This diagnostic is enabled by default.
  4551. **Diagnostic text:**
  4552. +--------------------------------------------------------+---------------------------------+--------------------------------------------+
  4553. |:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
  4554. | ||:diagtext:`\_\_if\_not\_exists`|| |
  4555. | |+-------------------------------+| |
  4556. | ||:diagtext:`\_\_if\_exists` || |
  4557. | |+-------------------------------+| |
  4558. +--------------------------------------------------------+---------------------------------+--------------------------------------------+
  4559. -Wmicrosoft-explicit-constructor-call
  4560. -------------------------------------
  4561. This diagnostic is enabled by default.
  4562. **Diagnostic text:**
  4563. +-------------------------------------------------------------------------------------------+
  4564. |:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
  4565. +-------------------------------------------------------------------------------------------+
  4566. -Wmicrosoft-extra-qualification
  4567. -------------------------------
  4568. This diagnostic is enabled by default.
  4569. **Diagnostic text:**
  4570. +--------------------------------------------------------------------------------------------+
  4571. |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
  4572. +--------------------------------------------------------------------------------------------+
  4573. -Wmicrosoft-fixed-enum
  4574. ----------------------
  4575. **Diagnostic text:**
  4576. +---------------------------------------------------------------------------------------------------------------+
  4577. |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
  4578. +---------------------------------------------------------------------------------------------------------------+
  4579. -Wmicrosoft-flexible-array
  4580. --------------------------
  4581. **Diagnostic text:**
  4582. +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
  4583. |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
  4584. | ||:diagtext:`struct` || |
  4585. | |+---------------------+| |
  4586. | ||:diagtext:`interface`|| |
  4587. | |+---------------------+| |
  4588. | ||:diagtext:`union` || |
  4589. | |+---------------------+| |
  4590. | ||:diagtext:`class` || |
  4591. | |+---------------------+| |
  4592. | ||:diagtext:`enum` || |
  4593. | |+---------------------+| |
  4594. +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
  4595. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4596. |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
  4597. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4598. -Wmicrosoft-goto
  4599. ----------------
  4600. This diagnostic is enabled by default.
  4601. **Diagnostic text:**
  4602. +----------------------------------------------------------------------------------------------------------+
  4603. |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
  4604. +----------------------------------------------------------------------------------------------------------+
  4605. -Wmicrosoft-include
  4606. -------------------
  4607. This diagnostic is enabled by default.
  4608. **Diagnostic text:**
  4609. +------------------------------------------------------------------------------------------------------------------------------+
  4610. |:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
  4611. +------------------------------------------------------------------------------------------------------------------------------+
  4612. -Wmicrosoft-mutable-reference
  4613. -----------------------------
  4614. This diagnostic is enabled by default.
  4615. **Diagnostic text:**
  4616. +---------------------------------------------------------------------------------------------+
  4617. |:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
  4618. +---------------------------------------------------------------------------------------------+
  4619. -Wmicrosoft-pure-definition
  4620. ---------------------------
  4621. This diagnostic is enabled by default.
  4622. **Diagnostic text:**
  4623. +-------------------------------------------------------------------------------------------------------+
  4624. |:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
  4625. +-------------------------------------------------------------------------------------------------------+
  4626. -Wmicrosoft-redeclare-static
  4627. ----------------------------
  4628. **Diagnostic text:**
  4629. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4630. |:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
  4631. +-------------------------------------------------------------------------------------------------------------------------------------------+
  4632. -Wmicrosoft-sealed
  4633. ------------------
  4634. This diagnostic is enabled by default.
  4635. **Diagnostic text:**
  4636. +--------------------------------------------------------------------------------+
  4637. |:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
  4638. +--------------------------------------------------------------------------------+
  4639. -Wmicrosoft-template
  4640. --------------------
  4641. This diagnostic is enabled by default.
  4642. **Diagnostic text:**
  4643. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  4644. |:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
  4645. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  4646. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4647. |: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`|
  4648. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4649. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  4650. |:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
  4651. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  4652. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4653. |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
  4654. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4655. +-----------------------------------------------------------------------------------------------------------------------------+
  4656. |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
  4657. +-----------------------------------------------------------------------------------------------------------------------------+
  4658. +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4659. |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
  4660. | ||:diagtext:`class template` || |
  4661. | |+-------------------------------------+| |
  4662. | ||:diagtext:`class template partial` || |
  4663. | |+-------------------------------------+| |
  4664. | ||:diagtext:`variable template` || |
  4665. | |+-------------------------------------+| |
  4666. | ||:diagtext:`variable template partial`|| |
  4667. | |+-------------------------------------+| |
  4668. | ||:diagtext:`function template` || |
  4669. | |+-------------------------------------+| |
  4670. | ||:diagtext:`member function` || |
  4671. | |+-------------------------------------+| |
  4672. | ||:diagtext:`static data member` || |
  4673. | |+-------------------------------------+| |
  4674. | ||:diagtext:`member class` || |
  4675. | |+-------------------------------------+| |
  4676. | ||:diagtext:`member enumeration` || |
  4677. | |+-------------------------------------+| |
  4678. +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4679. +------------------------------------------------------------------------------------------------------------------------------------------------+
  4680. |:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
  4681. +------------------------------------------------------------------------------------------------------------------------------------------------+
  4682. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4683. |: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`|
  4684. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4685. -Wmicrosoft-union-member-reference
  4686. ----------------------------------
  4687. This diagnostic is enabled by default.
  4688. **Diagnostic text:**
  4689. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4690. |:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
  4691. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4692. -Wmicrosoft-unqualified-friend
  4693. ------------------------------
  4694. This diagnostic is enabled by default.
  4695. **Diagnostic text:**
  4696. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4697. |: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`|
  4698. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4699. -Wmicrosoft-using-decl
  4700. ----------------------
  4701. This diagnostic is enabled by default.
  4702. **Diagnostic text:**
  4703. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4704. |: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`|
  4705. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4706. -Wmicrosoft-void-pseudo-dtor
  4707. ----------------------------
  4708. This diagnostic is enabled by default.
  4709. **Diagnostic text:**
  4710. +------------------------------------------------------------------------------------------------+
  4711. |:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
  4712. +------------------------------------------------------------------------------------------------+
  4713. -Wmismatched-new-delete
  4714. -----------------------
  4715. This diagnostic is enabled by default.
  4716. **Diagnostic text:**
  4717. +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
  4718. |:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
  4719. | || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| |
  4720. | |+----------------+| |+----------------+| |+----------------+| |
  4721. | ||:diagtext:`\[\]`|| || || || || |
  4722. | |+----------------+| |+----------------+| |+----------------+| |
  4723. +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
  4724. -Wmismatched-parameter-types
  4725. ----------------------------
  4726. This diagnostic is enabled by default.
  4727. **Diagnostic text:**
  4728. +---------------------------------------------------------------------------------------------------------------+
  4729. |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
  4730. +---------------------------------------------------------------------------------------------------------------+
  4731. -Wmismatched-return-types
  4732. -------------------------
  4733. This diagnostic is enabled by default.
  4734. **Diagnostic text:**
  4735. +-----------------------------------------------------------------------------------------------------------+
  4736. |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
  4737. +-----------------------------------------------------------------------------------------------------------+
  4738. -Wmismatched-tags
  4739. -----------------
  4740. **Diagnostic text:**
  4741. +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
  4742. |:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
  4743. | ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| ||
  4744. | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
  4745. | ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
  4746. | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
  4747. | ||:diagtext:`a class` || | ||:diagtext:`a class` || |
  4748. | |+------------------------+| | |+------------------------+| |
  4749. +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
  4750. +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
  4751. |:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
  4752. | ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| ||
  4753. | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
  4754. | ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
  4755. | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
  4756. | ||:diagtext:`class` || | ||:diagtext:`class` || |
  4757. | |+---------------------+| | |+---------------------+| |
  4758. +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
  4759. -Wmissing-braces
  4760. ----------------
  4761. **Diagnostic text:**
  4762. +----------------------------------------------------------------------------------------+
  4763. |:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
  4764. +----------------------------------------------------------------------------------------+
  4765. -Wmissing-declarations
  4766. ----------------------
  4767. This diagnostic is enabled by default.
  4768. **Diagnostic text:**
  4769. +----------------------------------------------------------------------------+
  4770. |:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
  4771. +----------------------------------------------------------------------------+
  4772. +-----------------------------------------------------------------------------------------------------------------+
  4773. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
  4774. +-----------------------------------------------------------------------------------------------------------------+
  4775. +--------------------------------------------------------------+
  4776. |:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
  4777. +--------------------------------------------------------------+
  4778. +-------------------------------------------------------------------------------------------------+
  4779. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
  4780. +-------------------------------------------------------------------------------------------------+
  4781. -Wmissing-exception-spec
  4782. ------------------------
  4783. This diagnostic is enabled by default.
  4784. **Diagnostic text:**
  4785. +--------------------------------------------------------------------------------------------------------------------------------+
  4786. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
  4787. +--------------------------------------------------------------------------------------------------------------------------------+
  4788. -Wmissing-field-initializers
  4789. ----------------------------
  4790. **Diagnostic text:**
  4791. +-----------------------------------------------------------------------------------------------------------+
  4792. |:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
  4793. +-----------------------------------------------------------------------------------------------------------+
  4794. -Wmissing-format-attribute
  4795. --------------------------
  4796. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4797. -Wmissing-include-dirs
  4798. ----------------------
  4799. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4800. -Wmissing-method-return-type
  4801. ----------------------------
  4802. **Diagnostic text:**
  4803. +--------------------------------------------------------------------------------------------+
  4804. |:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
  4805. +--------------------------------------------------------------------------------------------+
  4806. -Wmissing-noescape
  4807. ------------------
  4808. This diagnostic is enabled by default.
  4809. **Diagnostic text:**
  4810. +----------------------------------------------------------------------------------------------------------------------------+
  4811. |:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
  4812. +----------------------------------------------------------------------------------------------------------------------------+
  4813. -Wmissing-noreturn
  4814. ------------------
  4815. **Diagnostic text:**
  4816. +----------------------------------------------------------------------------------------+
  4817. |:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
  4818. +----------------------------------------------------------------------------------------+
  4819. +---------------------------+----------------------+---------------------------------------------------------------------------------------+
  4820. |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
  4821. | ||:diagtext:`function`|| |
  4822. | |+--------------------+| |
  4823. | ||:diagtext:`method` || |
  4824. | |+--------------------+| |
  4825. +---------------------------+----------------------+---------------------------------------------------------------------------------------+
  4826. -Wmissing-prototype-for-cc
  4827. --------------------------
  4828. This diagnostic is enabled by default.
  4829. **Diagnostic text:**
  4830. +----------------------------------------------------------------------------------------------------------------------------------------------+
  4831. |:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
  4832. +----------------------------------------------------------------------------------------------------------------------------------------------+
  4833. -Wmissing-prototypes
  4834. --------------------
  4835. **Diagnostic text:**
  4836. +-------------------------------------------------------------------------------------------------+
  4837. |:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
  4838. +-------------------------------------------------------------------------------------------------+
  4839. -Wmissing-selector-name
  4840. -----------------------
  4841. This diagnostic is enabled by default.
  4842. **Diagnostic text:**
  4843. +---------------------------------------------------------------------------------------------------------------------------------------------+
  4844. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
  4845. +---------------------------------------------------------------------------------------------------------------------------------------------+
  4846. -Wmissing-sysroot
  4847. -----------------
  4848. This diagnostic is enabled by default.
  4849. **Diagnostic text:**
  4850. +------------------------------------------------------------------------------------------------+
  4851. |:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
  4852. +------------------------------------------------------------------------------------------------+
  4853. -Wmissing-variable-declarations
  4854. -------------------------------
  4855. **Diagnostic text:**
  4856. +---------------------------------------------------------------------------------------------------------------------+
  4857. |:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
  4858. +---------------------------------------------------------------------------------------------------------------------+
  4859. -Rmodule-build
  4860. --------------
  4861. **Diagnostic text:**
  4862. +---------------------------------------------------------------------------------------------------------------------+
  4863. |:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
  4864. +---------------------------------------------------------------------------------------------------------------------+
  4865. +--------------------------------------------------------------------------------------------+
  4866. |:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
  4867. +--------------------------------------------------------------------------------------------+
  4868. +-----------------------------------------------------------------------------------------------------------------------------------+
  4869. |:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
  4870. +-----------------------------------------------------------------------------------------------------------------------------------+
  4871. +---------------------------------------------------------------------------------------------------------------------+
  4872. |:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
  4873. +---------------------------------------------------------------------------------------------------------------------+
  4874. -Wmodule-conflict
  4875. -----------------
  4876. This diagnostic is enabled by default.
  4877. **Diagnostic text:**
  4878. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4879. |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
  4880. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4881. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4882. |: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`|
  4883. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4884. -Wmodule-file-config-mismatch
  4885. -----------------------------
  4886. This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
  4887. **Diagnostic text:**
  4888. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4889. |:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
  4890. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4891. -Wmodule-file-extension
  4892. -----------------------
  4893. This diagnostic is enabled by default.
  4894. **Diagnostic text:**
  4895. +----------------------------------------------------------------------------------------------------------------+
  4896. |:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
  4897. +----------------------------------------------------------------------------------------------------------------+
  4898. -Wmodule-import-in-extern-c
  4899. ---------------------------
  4900. This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
  4901. **Diagnostic text:**
  4902. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  4903. |:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
  4904. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  4905. -Wmodules-ambiguous-internal-linkage
  4906. ------------------------------------
  4907. This diagnostic is enabled by default.
  4908. **Diagnostic text:**
  4909. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  4910. |:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
  4911. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  4912. -Wmodules-import-nested-redundant
  4913. ---------------------------------
  4914. This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
  4915. **Diagnostic text:**
  4916. +-------------------------------------------------------------------------------------------------------------------------------------+
  4917. |:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
  4918. +-------------------------------------------------------------------------------------------------------------------------------------+
  4919. -Wmost
  4920. ------
  4921. Some of the diagnostics controlled by this flag are enabled by default.
  4922. Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_.
  4923. -Wmove
  4924. ------
  4925. Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
  4926. -Wmsvc-include
  4927. --------------
  4928. Synonym for `-Wmicrosoft-include`_.
  4929. -Wmsvc-not-found
  4930. ----------------
  4931. This diagnostic is enabled by default.
  4932. **Diagnostic text:**
  4933. +-------------------------------------------------------------------------------------------------------------------------------------+
  4934. |:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
  4935. +-------------------------------------------------------------------------------------------------------------------------------------+
  4936. -Wmultichar
  4937. -----------
  4938. This diagnostic is enabled by default.
  4939. **Diagnostic text:**
  4940. +-------------------------------------------------------------------------+
  4941. |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
  4942. +-------------------------------------------------------------------------+
  4943. -Wmultiple-move-vbase
  4944. ---------------------
  4945. This diagnostic is enabled by default.
  4946. **Diagnostic text:**
  4947. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4948. |: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`|
  4949. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4950. -Wnarrowing
  4951. -----------
  4952. Synonym for `-Wc++11-narrowing`_.
  4953. -Wnested-anon-types
  4954. -------------------
  4955. **Diagnostic text:**
  4956. +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
  4957. |:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
  4958. | ||:diagtext:`struct`|| |
  4959. | |+------------------+| |
  4960. | ||:diagtext:`union` || |
  4961. | |+------------------+| |
  4962. +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
  4963. -Wnested-externs
  4964. ----------------
  4965. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  4966. -Wnew-returns-null
  4967. ------------------
  4968. This diagnostic is enabled by default.
  4969. **Diagnostic text:**
  4970. +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
  4971. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
  4972. | || ||
  4973. | |+---------------------------------+|
  4974. | || |nbsp| :diagtext:`or 'noexcept'`||
  4975. | |+---------------------------------+|
  4976. +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
  4977. -Wnewline-eof
  4978. -------------
  4979. **Diagnostic text:**
  4980. +----------------------------------------------------------------+
  4981. |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
  4982. +----------------------------------------------------------------+
  4983. +----------------------------------------------------------------+
  4984. |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
  4985. +----------------------------------------------------------------+
  4986. -Wnoexcept-type
  4987. ---------------
  4988. Synonym for `-Wc++17-compat-mangling`_.
  4989. -Wnon-gcc
  4990. ---------
  4991. Some of the diagnostics controlled by this flag are enabled by default.
  4992. Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
  4993. -Wnon-literal-null-conversion
  4994. -----------------------------
  4995. This diagnostic is enabled by default.
  4996. **Diagnostic text:**
  4997. +--------------------------------------------------------------------------------------------------------------------------------------------+
  4998. |:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
  4999. +--------------------------------------------------------------------------------------------------------------------------------------------+
  5000. -Wnon-modular-include-in-framework-module
  5001. -----------------------------------------
  5002. **Diagnostic text:**
  5003. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  5004. |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
  5005. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  5006. -Wnon-modular-include-in-module
  5007. -------------------------------
  5008. Also controls `-Wnon-modular-include-in-framework-module`_.
  5009. **Diagnostic text:**
  5010. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  5011. |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
  5012. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  5013. -Wnon-pod-varargs
  5014. -----------------
  5015. This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
  5016. **Diagnostic text:**
  5017. +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  5018. |: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`|
  5019. | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
  5020. | |+-----------------------+| |+-----------------------+| |
  5021. | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
  5022. | |+-----------------------+| |+-----------------------+| |
  5023. | | | ||:diagtext:`method` || |
  5024. | | | |+-----------------------+| |
  5025. | | | ||:diagtext:`constructor`|| |
  5026. | | | |+-----------------------+| |
  5027. +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
  5028. +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
  5029. |: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`|
  5030. | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
  5031. | |+-----------------------+| |+-----------------------+| |
  5032. | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
  5033. | |+-----------------------+| |+-----------------------+| |
  5034. | | | ||:diagtext:`method` || |
  5035. | | | |+-----------------------+| |
  5036. | | | ||:diagtext:`constructor`|| |
  5037. | | | |+-----------------------+| |
  5038. +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
  5039. +----------------------------------------------------------------------------------------------------------+
  5040. |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
  5041. +----------------------------------------------------------------------------------------------------------+
  5042. +--------------------------------------------------------------------------------------------------------------------------+
  5043. |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
  5044. +--------------------------------------------------------------------------------------------------------------------------+
  5045. -Wnon-virtual-dtor
  5046. ------------------
  5047. **Diagnostic text:**
  5048. +---------------------------------------------------------------------------------------------------------------+
  5049. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
  5050. +---------------------------------------------------------------------------------------------------------------+
  5051. -Wnonnull
  5052. ---------
  5053. This diagnostic is enabled by default.
  5054. **Diagnostic text:**
  5055. +------------------------------------------------------------------------------------------------+
  5056. |:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
  5057. +------------------------------------------------------------------------------------------------+
  5058. +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
  5059. |:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
  5060. | ||:diagtext:`function`|| |
  5061. | |+--------------------+| |
  5062. | ||:diagtext:`method` || |
  5063. | |+--------------------+| |
  5064. +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
  5065. -Wnonportable-cfstrings
  5066. -----------------------
  5067. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  5068. -Wnonportable-include-path
  5069. --------------------------
  5070. This diagnostic is enabled by default.
  5071. **Diagnostic text:**
  5072. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  5073. |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
  5074. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  5075. -Wnonportable-system-include-path
  5076. ---------------------------------
  5077. **Diagnostic text:**
  5078. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  5079. |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
  5080. +------------------------------------------------------------------------------------------------------------------------------------------------------+
  5081. -Wnonportable-vector-initialization
  5082. -----------------------------------
  5083. This diagnostic is enabled by default.
  5084. **Diagnostic text:**
  5085. +---------------------------------------------------------------------------------------------------------------------+
  5086. |:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
  5087. +---------------------------------------------------------------------------------------------------------------------+
  5088. -Wnsconsumed-mismatch
  5089. ---------------------
  5090. This diagnostic is enabled by default.
  5091. **Diagnostic text:**
  5092. +---------------------------------------------------------------------------------------------------------------+
  5093. |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
  5094. +---------------------------------------------------------------------------------------------------------------+
  5095. -Wnsreturns-mismatch
  5096. --------------------
  5097. This diagnostic is enabled by default.
  5098. **Diagnostic text:**
  5099. +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
  5100. |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
  5101. | ||:diagtext:`not\_retained`|| |
  5102. | |+-------------------------+| |
  5103. | ||:diagtext:`retained` || |
  5104. | |+-------------------------+| |
  5105. +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
  5106. -Wnull-arithmetic
  5107. -----------------
  5108. This diagnostic is enabled by default.
  5109. **Diagnostic text:**
  5110. +--------------------------------------------------------------------------+
  5111. |:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
  5112. +--------------------------------------------------------------------------+
  5113. +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
  5114. |:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
  5115. | ||+----------------------------------------------------------+||
  5116. | |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
  5117. | ||+----------------------------------------------------------+||
  5118. | |+------------------------------------------------------------+|
  5119. | ||+----------------------------------------------------------+||
  5120. | |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
  5121. | ||+----------------------------------------------------------+||
  5122. | |+------------------------------------------------------------+|
  5123. +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
  5124. -Wnull-character
  5125. ----------------
  5126. This diagnostic is enabled by default.
  5127. **Diagnostic text:**
  5128. +-----------------------------------------------------------------------------+--------------------+---------------------------+
  5129. |:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
  5130. | ||:diagtext:`char` || |
  5131. | |+------------------+| |
  5132. | ||:diagtext:`string`|| |
  5133. | |+------------------+| |
  5134. +-----------------------------------------------------------------------------+--------------------+---------------------------+
  5135. +-------------------------------------------------------------+
  5136. |:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
  5137. +-------------------------------------------------------------+
  5138. -Wnull-conversion
  5139. -----------------
  5140. This diagnostic is enabled by default.
  5141. **Diagnostic text:**
  5142. +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
  5143. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
  5144. | ||:diagtext:`NULL` || |
  5145. | |+-------------------+| |
  5146. | ||:diagtext:`nullptr`|| |
  5147. | |+-------------------+| |
  5148. +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
  5149. -Wnull-dereference
  5150. ------------------
  5151. This diagnostic is enabled by default.
  5152. **Diagnostic text:**
  5153. +------------------------------------------------------------------------------------------------------------+
  5154. |:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
  5155. +------------------------------------------------------------------------------------------------------------+
  5156. +---------------------------------------------------------------------------------------------------------+
  5157. |:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
  5158. +---------------------------------------------------------------------------------------------------------+
  5159. -Wnull-pointer-arithmetic
  5160. -------------------------
  5161. **Diagnostic text:**
  5162. +--------------------------------------------------------------------------------------------------------------------------------+
  5163. |:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
  5164. +--------------------------------------------------------------------------------------------------------------------------------+
  5165. +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
  5166. |:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
  5167. | || ||
  5168. | |+--------------------------------------------+|
  5169. | || |nbsp| :diagtext:`if the offset is nonzero`||
  5170. | |+--------------------------------------------+|
  5171. +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
  5172. -Wnullability
  5173. -------------
  5174. This diagnostic is enabled by default.
  5175. **Diagnostic text:**
  5176. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5177. |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
  5178. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5179. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5180. |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
  5181. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5182. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5183. |:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
  5184. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5185. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5186. |:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
  5187. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5188. +----------------------------------------------------------------------------------------------+
  5189. |:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
  5190. +----------------------------------------------------------------------------------------------+
  5191. -Wnullability-completeness
  5192. --------------------------
  5193. This diagnostic is enabled by default.
  5194. Also controls `-Wnullability-completeness-on-arrays`_.
  5195. **Diagnostic text:**
  5196. +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
  5197. |:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
  5198. | ||:diagtext:`pointer` || |
  5199. | |+--------------------------+| |
  5200. | ||:diagtext:`block pointer` || |
  5201. | |+--------------------------+| |
  5202. | ||:diagtext:`member pointer`|| |
  5203. | |+--------------------------+| |
  5204. +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
  5205. -Wnullability-completeness-on-arrays
  5206. ------------------------------------
  5207. This diagnostic is enabled by default.
  5208. **Diagnostic text:**
  5209. +----------------------------------------------------------------------------------------------------------------------------------------------+
  5210. |:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
  5211. +----------------------------------------------------------------------------------------------------------------------------------------------+
  5212. -Wnullability-declspec
  5213. ----------------------
  5214. This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
  5215. **Diagnostic text:**
  5216. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
  5217. |: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:`?`|
  5218. | ||:diagtext:`pointer` || |
  5219. | |+-----------------------------------+| |
  5220. | ||:diagtext:`block pointer` || |
  5221. | |+-----------------------------------+| |
  5222. | ||:diagtext:`member pointer` || |
  5223. | |+-----------------------------------+| |
  5224. | ||:diagtext:`function pointer` || |
  5225. | |+-----------------------------------+| |
  5226. | ||:diagtext:`member function pointer`|| |
  5227. | |+-----------------------------------+| |
  5228. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
  5229. -Wnullability-extension
  5230. -----------------------
  5231. **Diagnostic text:**
  5232. +---------------------------------------------------------------------------------------------------------------------------------+
  5233. |:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
  5234. +---------------------------------------------------------------------------------------------------------------------------------+
  5235. -Wnullability-inferred-on-nested-type
  5236. -------------------------------------
  5237. This diagnostic is enabled by default.
  5238. **Diagnostic text:**
  5239. +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
  5240. |:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
  5241. | ||:diagtext:`array` || |
  5242. | |+---------------------+| |
  5243. | ||:diagtext:`reference`|| |
  5244. | |+---------------------+| |
  5245. +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
  5246. -Wnullable-to-nonnull-conversion
  5247. --------------------------------
  5248. **Diagnostic text:**
  5249. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5250. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
  5251. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5252. -Wobjc-autosynthesis-property-ivar-name-match
  5253. ---------------------------------------------
  5254. This diagnostic is enabled by default.
  5255. **Diagnostic text:**
  5256. +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
  5257. |: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`|
  5258. | || || |
  5259. | |+-----------------------+| |
  5260. | ||:diagtext:`synthesized`|| |
  5261. | |+-----------------------+| |
  5262. +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
  5263. -Wobjc-circular-container
  5264. -------------------------
  5265. This diagnostic is enabled by default.
  5266. **Diagnostic text:**
  5267. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  5268. |:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
  5269. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  5270. -Wobjc-cocoa-api
  5271. ----------------
  5272. Synonym for `-Wobjc-redundant-api-use`_.
  5273. -Wobjc-designated-initializers
  5274. ------------------------------
  5275. This diagnostic is enabled by default.
  5276. **Diagnostic text:**
  5277. +-----------------------------------------------------------------------------------------------------------------------------------+
  5278. |:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
  5279. +-----------------------------------------------------------------------------------------------------------------------------------+
  5280. +--------------------------------------------------------------------------------------------------+
  5281. |:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
  5282. +--------------------------------------------------------------------------------------------------+
  5283. +--------------------------------------------------------------------------------------------------------------------+
  5284. |:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
  5285. +--------------------------------------------------------------------------------------------------------------------+
  5286. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5287. |:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
  5288. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5289. +-----------------------------------------------------------------------------------------------------------+
  5290. |:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
  5291. +-----------------------------------------------------------------------------------------------------------+
  5292. +----------------------------------------------------------------------------------------------------------+
  5293. |:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
  5294. +----------------------------------------------------------------------------------------------------------+
  5295. -Wobjc-flexible-array
  5296. ---------------------
  5297. This diagnostic is enabled by default.
  5298. **Diagnostic text:**
  5299. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5300. |: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`|
  5301. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5302. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5303. |: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`|
  5304. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5305. -Wobjc-forward-class-redefinition
  5306. ---------------------------------
  5307. This diagnostic is enabled by default.
  5308. **Diagnostic text:**
  5309. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5310. |:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
  5311. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5312. -Wobjc-interface-ivars
  5313. ----------------------
  5314. **Diagnostic text:**
  5315. +-------------------------------------------------------------------------------------------------------+
  5316. |:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
  5317. +-------------------------------------------------------------------------------------------------------+
  5318. -Wobjc-literal-compare
  5319. ----------------------
  5320. This diagnostic is enabled by default.
  5321. Also controls `-Wobjc-string-compare`_.
  5322. **Diagnostic text:**
  5323. +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
  5324. |:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
  5325. | ||:diagtext:`an array literal` || |
  5326. | |+--------------------------------+| |
  5327. | ||:diagtext:`a dictionary literal`|| |
  5328. | |+--------------------------------+| |
  5329. | ||:diagtext:`a numeric literal` || |
  5330. | |+--------------------------------+| |
  5331. | ||:diagtext:`a boxed expression` || |
  5332. | |+--------------------------------+| |
  5333. | || || |
  5334. | |+--------------------------------+| |
  5335. +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
  5336. -Wobjc-literal-conversion
  5337. -------------------------
  5338. This diagnostic is enabled by default.
  5339. **Diagnostic text:**
  5340. +-------------------------------------------------------------------------------------------------------------------------+
  5341. |:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
  5342. +-------------------------------------------------------------------------------------------------------------------------+
  5343. +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
  5344. |:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
  5345. | ||:diagtext:`array element type` || |
  5346. | |+---------------------------------+| |
  5347. | ||:diagtext:`dictionary key type` || |
  5348. | |+---------------------------------+| |
  5349. | ||:diagtext:`dictionary value type`|| |
  5350. | |+---------------------------------+| |
  5351. +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
  5352. -Wobjc-macro-redefinition
  5353. -------------------------
  5354. This diagnostic is enabled by default.
  5355. **Diagnostic text:**
  5356. +-------------------------------------------------------------------------------------------+
  5357. |:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
  5358. +-------------------------------------------------------------------------------------------+
  5359. -Wobjc-messaging-id
  5360. -------------------
  5361. **Diagnostic text:**
  5362. +---------------------------------------------------------------+
  5363. |:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
  5364. +---------------------------------------------------------------+
  5365. -Wobjc-method-access
  5366. --------------------
  5367. This diagnostic is enabled by default.
  5368. **Diagnostic text:**
  5369. +---------------------------------------------------------------------------------------------------------------------------------------+
  5370. |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
  5371. +---------------------------------------------------------------------------------------------------------------------------------------+
  5372. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5373. |: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:`?`|
  5374. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5375. +------------------------------------------------------------------------------------------------------------------------------------------+
  5376. |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
  5377. +------------------------------------------------------------------------------------------------------------------------------------------+
  5378. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5379. |: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:`?`|
  5380. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5381. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  5382. |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
  5383. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  5384. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  5385. |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
  5386. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  5387. -Wobjc-missing-property-synthesis
  5388. ---------------------------------
  5389. **Diagnostic text:**
  5390. +------------------------------------------------------------------------------------------------------------------+
  5391. |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
  5392. +------------------------------------------------------------------------------------------------------------------+
  5393. -Wobjc-missing-super-calls
  5394. --------------------------
  5395. This diagnostic is enabled by default.
  5396. **Diagnostic text:**
  5397. +-------------------------------------------------------------------------------------------------------------------+
  5398. |:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
  5399. +-------------------------------------------------------------------------------------------------------------------+
  5400. -Wobjc-multiple-method-names
  5401. ----------------------------
  5402. This diagnostic is enabled by default.
  5403. **Diagnostic text:**
  5404. +--------------------------------------------------------------------------------------------------------------+
  5405. |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
  5406. +--------------------------------------------------------------------------------------------------------------+
  5407. -Wobjc-noncopy-retain-block-property
  5408. ------------------------------------
  5409. This diagnostic is enabled by default.
  5410. **Diagnostic text:**
  5411. +--------------------------------------------------------------------------------------------------------------------+
  5412. |:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
  5413. +--------------------------------------------------------------------------------------------------------------------+
  5414. -Wobjc-nonunified-exceptions
  5415. ----------------------------
  5416. This diagnostic is enabled by default.
  5417. **Diagnostic text:**
  5418. +-----------------------------------------------------------------------------------------------------------------------------+
  5419. |:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
  5420. +-----------------------------------------------------------------------------------------------------------------------------+
  5421. -Wobjc-property-implementation
  5422. ------------------------------
  5423. This diagnostic is enabled by default.
  5424. **Diagnostic text:**
  5425. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5426. |: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`|
  5427. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5428. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5429. |: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`|
  5430. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5431. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5432. |: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`|
  5433. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5434. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5435. |: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`|
  5436. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5437. -Wobjc-property-implicit-mismatch
  5438. ---------------------------------
  5439. This diagnostic is enabled by default.
  5440. **Diagnostic text:**
  5441. +---------------------------------------------------------------------------------------------------------------------------------------+
  5442. |:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
  5443. +---------------------------------------------------------------------------------------------------------------------------------------+
  5444. -Wobjc-property-matches-cocoa-ownership-rule
  5445. --------------------------------------------
  5446. This diagnostic is enabled by default.
  5447. **Diagnostic text:**
  5448. +-------------------------------------------------------------------------------------------------------------+
  5449. |:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
  5450. +-------------------------------------------------------------------------------------------------------------+
  5451. -Wobjc-property-no-attribute
  5452. ----------------------------
  5453. This diagnostic is enabled by default.
  5454. **Diagnostic text:**
  5455. +-----------------------------------------------------------------------------------------------------+
  5456. |:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
  5457. +-----------------------------------------------------------------------------------------------------+
  5458. +--------------------------------------------------------------------------------------------------------------------+
  5459. |:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
  5460. +--------------------------------------------------------------------------------------------------------------------+
  5461. -Wobjc-property-synthesis
  5462. -------------------------
  5463. This diagnostic is enabled by default.
  5464. **Diagnostic text:**
  5465. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5466. |: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`|
  5467. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5468. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5469. |: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`|
  5470. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5471. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5472. |: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`|
  5473. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5474. -Wobjc-protocol-method-implementation
  5475. -------------------------------------
  5476. This diagnostic is enabled by default.
  5477. **Diagnostic text:**
  5478. +----------------------------------------------------------------------------------------------------------------------------+
  5479. |:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
  5480. +----------------------------------------------------------------------------------------------------------------------------+
  5481. -Wobjc-protocol-property-synthesis
  5482. ----------------------------------
  5483. This diagnostic is enabled by default.
  5484. **Diagnostic text:**
  5485. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5486. |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
  5487. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5488. -Wobjc-protocol-qualifiers
  5489. --------------------------
  5490. This diagnostic is enabled by default.
  5491. **Diagnostic text:**
  5492. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5493. |:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
  5494. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5495. -Wobjc-readonly-with-setter-property
  5496. ------------------------------------
  5497. This diagnostic is enabled by default.
  5498. **Diagnostic text:**
  5499. +-----------------------------------------------------------------------------------------+
  5500. |:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
  5501. +-----------------------------------------------------------------------------------------+
  5502. -Wobjc-redundant-api-use
  5503. ------------------------
  5504. Synonym for `-Wobjc-redundant-literal-use`_.
  5505. -Wobjc-redundant-literal-use
  5506. ----------------------------
  5507. This diagnostic is enabled by default.
  5508. **Diagnostic text:**
  5509. +-------------------------------------------------------------------------------------------------------------------+
  5510. |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
  5511. +-------------------------------------------------------------------------------------------------------------------+
  5512. -Wobjc-root-class
  5513. -----------------
  5514. This diagnostic is enabled by default.
  5515. **Diagnostic text:**
  5516. +-------------------------------------------------------------------------------------------------------------------------------+
  5517. |:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
  5518. +-------------------------------------------------------------------------------------------------------------------------------+
  5519. -Wobjc-string-compare
  5520. ---------------------
  5521. This diagnostic is enabled by default.
  5522. **Diagnostic text:**
  5523. +---------------------------------------------------------------------------------------------------+
  5524. |:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
  5525. +---------------------------------------------------------------------------------------------------+
  5526. -Wobjc-string-concatenation
  5527. ---------------------------
  5528. This diagnostic is enabled by default.
  5529. **Diagnostic text:**
  5530. +-------------------------------------------------------------------------------------------------------------------------+
  5531. |:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
  5532. +-------------------------------------------------------------------------------------------------------------------------+
  5533. -Wobjc-unsafe-perform-selector
  5534. ------------------------------
  5535. This diagnostic is enabled by default.
  5536. **Diagnostic text:**
  5537. +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
  5538. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
  5539. | ||:diagtext:`struct`|| |
  5540. | |+------------------+| |
  5541. | ||:diagtext:`union` || |
  5542. | |+------------------+| |
  5543. | ||:diagtext:`vector`|| |
  5544. | |+------------------+| |
  5545. +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
  5546. -Wodr
  5547. -----
  5548. This diagnostic is enabled by default.
  5549. **Diagnostic text:**
  5550. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  5551. |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
  5552. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  5553. -Wold-style-cast
  5554. ----------------
  5555. **Diagnostic text:**
  5556. +------------------------------------------------------------+
  5557. |:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
  5558. +------------------------------------------------------------+
  5559. -Wold-style-definition
  5560. ----------------------
  5561. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  5562. -Wopencl-unsupported-rgba
  5563. -------------------------
  5564. This diagnostic is enabled by default.
  5565. **Diagnostic text:**
  5566. +----------------------------------------------------------------------------------------------------------------------------+
  5567. |:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
  5568. +----------------------------------------------------------------------------------------------------------------------------+
  5569. -Wopenmp-clauses
  5570. ----------------
  5571. This diagnostic is enabled by default.
  5572. **Diagnostic text:**
  5573. +-------------------------------------------------------------------------------------------------------------------------+
  5574. |:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
  5575. +-------------------------------------------------------------------------------------------------------------------------+
  5576. +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
  5577. |:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
  5578. | || || |
  5579. | |+-------------------------------------------------+| |
  5580. | ||:diagtext:`and other variables in clause` |nbsp| || |
  5581. | |+-------------------------------------------------+| |
  5582. +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
  5583. -Wopenmp-loop-form
  5584. ------------------
  5585. This diagnostic is enabled by default.
  5586. **Diagnostic text:**
  5587. +-----------------------------------------------------------------------------------------------------------------------------------------+
  5588. |:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
  5589. +-----------------------------------------------------------------------------------------------------------------------------------------+
  5590. +-----------------------------------------------------------------------------------------------------------------------------+
  5591. |:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
  5592. +-----------------------------------------------------------------------------------------------------------------------------+
  5593. -Wopenmp-target
  5594. ---------------
  5595. This diagnostic is enabled by default.
  5596. **Diagnostic text:**
  5597. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5598. |:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
  5599. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5600. +-----------------------------------------------------------------------------------------------+
  5601. |:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
  5602. +-----------------------------------------------------------------------------------------------+
  5603. -Woption-ignored
  5604. ----------------
  5605. This diagnostic is enabled by default.
  5606. **Diagnostic text:**
  5607. +------------------------------------------------------------------------------------------------------------------------------------------+
  5608. |:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
  5609. +------------------------------------------------------------------------------------------------------------------------------------------+
  5610. +----------------------------------------------------------------------------------------------------------------------------+
  5611. |:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
  5612. +----------------------------------------------------------------------------------------------------------------------------+
  5613. +-------------------------------------------------------------------------------------------------------------------------------------------+
  5614. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`|
  5615. +-------------------------------------------------------------------------------------------------------------------------------------------+
  5616. +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
  5617. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
  5618. | || || |
  5619. | |+-----------------------------------------+| |
  5620. | ||:diagtext:`the implicit usage of` |nbsp| || |
  5621. | |+-----------------------------------------+| |
  5622. +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
  5623. -Wout-of-line-declaration
  5624. -------------------------
  5625. This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
  5626. **Diagnostic text:**
  5627. +-------------------------------------------------------------------------------------------+
  5628. |:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
  5629. +-------------------------------------------------------------------------------------------+
  5630. -Wout-of-scope-function
  5631. -----------------------
  5632. This diagnostic is enabled by default.
  5633. **Diagnostic text:**
  5634. +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
  5635. |:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
  5636. | || ||
  5637. | |+-------------------------------------------------------------------------------------+|
  5638. | || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
  5639. | |+-------------------------------------------------------------------------------------+|
  5640. +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
  5641. -Wover-aligned
  5642. --------------
  5643. **Diagnostic text:**
  5644. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5645. |: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`|
  5646. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5647. -Woverflow
  5648. ----------
  5649. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  5650. -Woverlength-strings
  5651. --------------------
  5652. **Diagnostic text:**
  5653. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
  5654. |: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`|
  5655. | ||:diagtext:`C90` || |
  5656. | |+-------------------+| |
  5657. | ||:diagtext:`ISO C99`|| |
  5658. | |+-------------------+| |
  5659. | ||:diagtext:`C++` || |
  5660. | |+-------------------+| |
  5661. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
  5662. -Woverloaded-shift-op-parentheses
  5663. ---------------------------------
  5664. This diagnostic is enabled by default.
  5665. **Diagnostic text:**
  5666. +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
  5667. |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
  5668. | ||:diagtext:`>>`|| |
  5669. | |+--------------+| |
  5670. | ||:diagtext:`<<`|| |
  5671. | |+--------------+| |
  5672. +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
  5673. -Woverloaded-virtual
  5674. --------------------
  5675. **Diagnostic text:**
  5676. +-----------------------------------------------------------------------------------------------+-----------------------+
  5677. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
  5678. | ||:diagtext:`function` ||
  5679. | |+---------------------+|
  5680. | ||:diagtext:`functions`||
  5681. | |+---------------------+|
  5682. +-----------------------------------------------------------------------------------------------+-----------------------+
  5683. -Woverride-init
  5684. ---------------
  5685. Synonym for `-Winitializer-overrides`_.
  5686. -Woverride-module
  5687. -----------------
  5688. This diagnostic is enabled by default.
  5689. **Diagnostic text:**
  5690. +-------------------------------------------------------------------------------------------------------+
  5691. |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
  5692. +-------------------------------------------------------------------------------------------------------+
  5693. -Woverriding-method-mismatch
  5694. ----------------------------
  5695. **Diagnostic text:**
  5696. +-------------------------------------------------------------------------------------------------------------------------------------------+
  5697. |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
  5698. +-------------------------------------------------------------------------------------------------------------------------------------------+
  5699. +------------------------------------------------------------------------------------------------------------+
  5700. |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
  5701. +------------------------------------------------------------------------------------------------------------+
  5702. +----------------------------------------------------------------------------------------------------------------------------------------+
  5703. |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
  5704. +----------------------------------------------------------------------------------------------------------------------------------------+
  5705. +--------------------------------------------------------------------------------------------------------+
  5706. |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
  5707. +--------------------------------------------------------------------------------------------------------+
  5708. +--------------------------------------------------------------------------------------------------------+
  5709. |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
  5710. +--------------------------------------------------------------------------------------------------------+
  5711. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5712. |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
  5713. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5714. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5715. |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
  5716. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5717. -Woverriding-t-option
  5718. ---------------------
  5719. This diagnostic is enabled by default.
  5720. **Diagnostic text:**
  5721. +---------------------------------------------------------------------------------------------------------------------------+
  5722. |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
  5723. +---------------------------------------------------------------------------------------------------------------------------+
  5724. -Wpacked
  5725. --------
  5726. **Diagnostic text:**
  5727. +--------------------------------------------------------------------------------------------------+
  5728. |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
  5729. +--------------------------------------------------------------------------------------------------+
  5730. -Wpadded
  5731. --------
  5732. **Diagnostic text:**
  5733. +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
  5734. |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
  5735. | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
  5736. | |+---------------------+| |+----------------+|+-------------+| |
  5737. | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
  5738. | |+---------------------+| |+----------------+|+-------------+| |
  5739. | ||:diagtext:`class` || | | | |
  5740. | |+---------------------+| | | | |
  5741. +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
  5742. +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
  5743. |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
  5744. | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
  5745. | |+---------------------+| |+----------------+|+-------------+| |
  5746. | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
  5747. | |+---------------------+| |+----------------+|+-------------+| |
  5748. | ||:diagtext:`class` || | | | |
  5749. | |+---------------------+| | | | |
  5750. +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
  5751. +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
  5752. |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
  5753. | ||:diagtext:`byte`||| || |
  5754. | |+----------------+|+-------------+| |
  5755. | ||:diagtext:`bit` |||:diagtext:`s`|| |
  5756. | |+----------------+|+-------------+| |
  5757. +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
  5758. -Wparentheses
  5759. -------------
  5760. This diagnostic is enabled by default.
  5761. Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
  5762. **Diagnostic text:**
  5763. +-----------------------------------------------------------------------------------------------------------+
  5764. |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
  5765. +-----------------------------------------------------------------------------------------------------------+
  5766. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5767. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
  5768. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5769. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5770. |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
  5771. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5772. -Wparentheses-equality
  5773. ----------------------
  5774. This diagnostic is enabled by default.
  5775. **Diagnostic text:**
  5776. +--------------------------------------------------------------------------------------+
  5777. |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
  5778. +--------------------------------------------------------------------------------------+
  5779. -Wpartial-availability
  5780. ----------------------
  5781. Synonym for `-Wunguarded-availability`_.
  5782. -Rpass
  5783. ------
  5784. **Diagnostic text:**
  5785. The text of this diagnostic is not controlled by Clang.
  5786. -Rpass-analysis
  5787. ---------------
  5788. **Diagnostic text:**
  5789. The text of this diagnostic is not controlled by Clang.
  5790. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5791. |: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!`|
  5792. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5793. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5794. |: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'.`|
  5795. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5796. -Wpass-failed
  5797. -------------
  5798. This diagnostic is enabled by default.
  5799. **Diagnostic text:**
  5800. The text of this diagnostic is not controlled by Clang.
  5801. -Rpass-missed
  5802. -------------
  5803. **Diagnostic text:**
  5804. The text of this diagnostic is not controlled by Clang.
  5805. -Wpch-date-time
  5806. ---------------
  5807. This diagnostic is enabled by default.
  5808. **Diagnostic text:**
  5809. +---------------------------+--------------------------------+-----------------------------------------------------+
  5810. |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
  5811. | ||:diagtext:`precompiled header`|| |
  5812. | |+------------------------------+| |
  5813. | ||:diagtext:`module` || |
  5814. | |+------------------------------+| |
  5815. +---------------------------+--------------------------------+-----------------------------------------------------+
  5816. -Wpedantic
  5817. ----------
  5818. Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_.
  5819. **Diagnostic text:**
  5820. +------------------------------------------------------------------------+
  5821. |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
  5822. +------------------------------------------------------------------------+
  5823. +--------------------------------------------------------------------------+
  5824. |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
  5825. +--------------------------------------------------------------------------+
  5826. +--------------------------------------------------------------------------------+
  5827. |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
  5828. +--------------------------------------------------------------------------------+
  5829. +--------------------------------------------------------------------------------------------+
  5830. |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
  5831. +--------------------------------------------------------------------------------------------+
  5832. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
  5833. |: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| |+---------------------+|
  5834. | ||:diagtext:`private` ||
  5835. | |+---------------------+|
  5836. | ||:diagtext:`protected`||
  5837. | |+---------------------+|
  5838. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
  5839. +--------------------------------------------------------+--------------------+------------------------------------------------------------+
  5840. |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
  5841. | ||:diagtext:`struct`|| |
  5842. | |+------------------+| |
  5843. | ||:diagtext:`union` || |
  5844. | |+------------------+| |
  5845. +--------------------------------------------------------+--------------------+------------------------------------------------------------+
  5846. +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
  5847. |: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`|
  5848. | ||:diagtext:`copying variable` || |
  5849. | |+---------------------------------------+| |
  5850. | ||:diagtext:`copying parameter` || |
  5851. | |+---------------------------------------+| |
  5852. | ||:diagtext:`returning object` || |
  5853. | |+---------------------------------------+| |
  5854. | ||:diagtext:`throwing object` || |
  5855. | |+---------------------------------------+| |
  5856. | ||:diagtext:`copying member subobject` || |
  5857. | |+---------------------------------------+| |
  5858. | ||:diagtext:`copying array element` || |
  5859. | |+---------------------------------------+| |
  5860. | ||:diagtext:`allocating object` || |
  5861. | |+---------------------------------------+| |
  5862. | ||:diagtext:`copying temporary` || |
  5863. | |+---------------------------------------+| |
  5864. | ||:diagtext:`initializing base subobject`|| |
  5865. | |+---------------------------------------+| |
  5866. | ||:diagtext:`initializing vector element`|| |
  5867. | |+---------------------------------------+| |
  5868. | ||:diagtext:`capturing value` || |
  5869. | |+---------------------------------------+| |
  5870. +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
  5871. +--------------------------------------------------------------------------------------------------------------------------------------+
  5872. |:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
  5873. +--------------------------------------------------------------------------------------------------------------------------------------+
  5874. +--------------------------------------------------------------------------------------------------------------------------+
  5875. |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
  5876. +--------------------------------------------------------------------------------------------------------------------------+
  5877. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5878. |:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
  5879. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5880. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  5881. |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
  5882. | ||:diagtext:`function`|| |
  5883. | |+--------------------+| |
  5884. | ||:diagtext:`variable`|| |
  5885. | |+--------------------+| |
  5886. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  5887. +---------------------------------------------------------------------------------------+
  5888. |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
  5889. +---------------------------------------------------------------------------------------+
  5890. +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
  5891. |:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
  5892. | ||:diagtext:`small`|| |
  5893. | |+-----------------+| |
  5894. | ||:diagtext:`large`|| |
  5895. | |+-----------------+| |
  5896. +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
  5897. +--------------------------------------------------------------------------------------------------+
  5898. |:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
  5899. +--------------------------------------------------------------------------------------------------+
  5900. +-----------------------------------------------------------------------------------------------+
  5901. |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
  5902. +-----------------------------------------------------------------------------------------------+
  5903. +-------------------------------------------------------------------------------+
  5904. |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
  5905. +-------------------------------------------------------------------------------+
  5906. +---------------------------------------------------------------+-----------------------+--------------------------------+
  5907. |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
  5908. | ||:diagtext:`sizeof` || |
  5909. | |+---------------------+| |
  5910. | ||:diagtext:`alignof` || |
  5911. | |+---------------------+| |
  5912. | ||:diagtext:`vec\_step`|| |
  5913. | |+---------------------+| |
  5914. +---------------------------------------------------------------+-----------------------+--------------------------------+
  5915. +---------------------------------------------------------------+-----------------------+----------------------------+
  5916. |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
  5917. | ||:diagtext:`sizeof` || |
  5918. | |+---------------------+| |
  5919. | ||:diagtext:`alignof` || |
  5920. | |+---------------------+| |
  5921. | ||:diagtext:`vec\_step`|| |
  5922. | |+---------------------+| |
  5923. +---------------------------------------------------------------+-----------------------+----------------------------+
  5924. +-------------------------------------------------------------------------------------------+
  5925. |:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
  5926. +-------------------------------------------------------------------------------------------+
  5927. +----------------------------------------------------------------------------------------+
  5928. |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
  5929. +----------------------------------------------------------------------------------------+
  5930. +-------------------------------------------------------------------------------------------------------+
  5931. |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
  5932. +-------------------------------------------------------------------------------------------------------+
  5933. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5934. |:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
  5935. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5936. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5937. |:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
  5938. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5939. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
  5940. |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
  5941. | || |nbsp| :diagtext:`a`|| || || |
  5942. | |+---------------------+| |+-------------+| |
  5943. | || || ||:diagtext:`s`|| |
  5944. | |+---------------------+| |+-------------+| |
  5945. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
  5946. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
  5947. |: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`|
  5948. | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
  5949. | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
  5950. | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
  5951. | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
  5952. | | | | | | | | | ||+-----------------------------------------------+|| |
  5953. | | | | | | | | | |+-------------------------------------------------+| |
  5954. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
  5955. +-----------------------------------------------------------------------------------------------------------------------+
  5956. |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
  5957. +-----------------------------------------------------------------------------------------------------------------------+
  5958. +--------------------------------------------------------------------------------------------------------------------+
  5959. |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
  5960. +--------------------------------------------------------------------------------------------------------------------+
  5961. +------------------------------------------------------------------------------------------------------------+
  5962. |:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
  5963. +------------------------------------------------------------------------------------------------------------+
  5964. +-------------------------------------------------------------------------------------------------------------+
  5965. |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
  5966. +-------------------------------------------------------------------------------------------------------------+
  5967. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
  5968. |: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`|
  5969. | ||:diagtext:`integral` || |
  5970. | |+-----------------------+| |
  5971. | ||:diagtext:`enumeration`|| |
  5972. | |+-----------------------+| |
  5973. +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
  5974. +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
  5975. |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
  5976. | ||:diagtext:`assigning to different types` || |
  5977. | |+--------------------------------------------------------------+| |
  5978. | ||:diagtext:`passing to parameter of different type` || |
  5979. | |+--------------------------------------------------------------+| |
  5980. | ||:diagtext:`returning from function with different return type`|| |
  5981. | |+--------------------------------------------------------------+| |
  5982. | ||:diagtext:`converting between types` || |
  5983. | |+--------------------------------------------------------------+| |
  5984. | ||:diagtext:`initializing with expression of different type` || |
  5985. | |+--------------------------------------------------------------+| |
  5986. | ||:diagtext:`sending to parameter of different type` || |
  5987. | |+--------------------------------------------------------------+| |
  5988. | ||:diagtext:`casting between types` || |
  5989. | |+--------------------------------------------------------------+| |
  5990. +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
  5991. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  5992. |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
  5993. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  5994. +--------------------------------------------------------------------------------------------------+
  5995. |:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
  5996. +--------------------------------------------------------------------------------------------------+
  5997. +-------------------------------------------------------------------------------------------------------------------------------------+
  5998. |:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
  5999. +-------------------------------------------------------------------------------------------------------------------------------------+
  6000. +---------------------------------------------------------------------------------------------------------------------------+
  6001. |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
  6002. +---------------------------------------------------------------------------------------------------------------------------+
  6003. +---------------------------------------------------------------------------------------------------------------------------+
  6004. |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
  6005. +---------------------------------------------------------------------------------------------------------------------------+
  6006. +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
  6007. |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
  6008. | ||:diagtext:`struct`|| |
  6009. | |+------------------+| |
  6010. | ||:diagtext:`union` || |
  6011. | |+------------------+| |
  6012. +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
  6013. +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
  6014. |:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
  6015. | ||:diagtext:`function`|| |
  6016. | |+--------------------+| |
  6017. | ||:diagtext:`method` || |
  6018. | |+--------------------+| |
  6019. | ||:diagtext:`block` || |
  6020. | |+--------------------+| |
  6021. +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
  6022. +--------------------------------------------------------------------------------------------------+
  6023. |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
  6024. +--------------------------------------------------------------------------------------------------+
  6025. +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
  6026. |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
  6027. | ||:diagtext:`qualifier in` |nbsp| || || || |
  6028. | |+--------------------------------+| |+---------------------+| |
  6029. | ||:diagtext:`static` |nbsp| || || || |
  6030. | |+--------------------------------+| |+---------------------+| |
  6031. | || || ||:diagtext:`'\[\*\] '`|| |
  6032. | |+--------------------------------+| |+---------------------+| |
  6033. +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
  6034. +--------------------------------------------------------+------------------------------------------------+
  6035. |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
  6036. | ||:diagtext:`outside of a function` ||
  6037. | |+----------------------------------------------+|
  6038. | ||+--------------------------------------------+||
  6039. | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
  6040. | ||+--------------------------------------------+||
  6041. | |+----------------------------------------------+|
  6042. | ||:diagtext:`inside instance variable list` ||
  6043. | |+----------------------------------------------+|
  6044. | ||:diagtext:`after member function definition` ||
  6045. | |+----------------------------------------------+|
  6046. +--------------------------------------------------------+------------------------------------------------+
  6047. +-----------------------------------------------------------------------------------------+
  6048. |:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
  6049. +-----------------------------------------------------------------------------------------+
  6050. +----------------------------------------------------------------------------------------+
  6051. |:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
  6052. +----------------------------------------------------------------------------------------+
  6053. +-------------------------------------------------------------------------------------------------+
  6054. |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
  6055. +-------------------------------------------------------------------------------------------------+
  6056. +-----------------------------------------------------------------------------------+
  6057. |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
  6058. +-----------------------------------------------------------------------------------+
  6059. +-------------------------------------------------------------------------------------------------------+
  6060. |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
  6061. +-------------------------------------------------------------------------------------------------------+
  6062. +--------------------------------------------------------------------------------------------------+
  6063. |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
  6064. +--------------------------------------------------------------------------------------------------+
  6065. +-----------------------------------------------------------------------------------------------------------+
  6066. |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
  6067. +-----------------------------------------------------------------------------------------------------------+
  6068. +-----------------------------------------------------------------------+
  6069. |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
  6070. +-----------------------------------------------------------------------+
  6071. +------------------------------------------------------------------------------------------------+
  6072. |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
  6073. +------------------------------------------------------------------------------------------------+
  6074. +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
  6075. |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
  6076. | ||:diagtext:`a namespace` || |
  6077. | |+-------------------------+| |
  6078. | ||:diagtext:`an enumerator`|| |
  6079. | |+-------------------------+| |
  6080. +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
  6081. +-----------------------------------------------------------------------------+
  6082. |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
  6083. +-----------------------------------------------------------------------------+
  6084. +------------------------------------------------------------+
  6085. |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
  6086. +------------------------------------------------------------+
  6087. +-----------------------------------------------------------------------------------+
  6088. |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
  6089. +-----------------------------------------------------------------------------------+
  6090. +----------------------------------------------------------------+
  6091. |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
  6092. +----------------------------------------------------------------+
  6093. +------------------------------------------------------------------------------------------------------------+
  6094. |:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
  6095. +------------------------------------------------------------------------------------------------------------+
  6096. +---------------------------------------------------------------------------------------+
  6097. |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
  6098. +---------------------------------------------------------------------------------------+
  6099. +----------------------------------------------------------------------------------------+
  6100. |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
  6101. +----------------------------------------------------------------------------------------+
  6102. +---------------------------------------------------------------------+
  6103. |:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
  6104. +---------------------------------------------------------------------+
  6105. +-----------------------------------------------------------------------+
  6106. |:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
  6107. +-----------------------------------------------------------------------+
  6108. +-----------------------------------------------------------------------+
  6109. |:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
  6110. +-----------------------------------------------------------------------+
  6111. +----------------------------------------------------------------------------------------------------------------+
  6112. |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
  6113. +----------------------------------------------------------------------------------------------------------------+
  6114. +------------------------------------------------------------------------+
  6115. |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
  6116. +------------------------------------------------------------------------+
  6117. +--------------------------------------------------------------------------------+
  6118. |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
  6119. +--------------------------------------------------------------------------------+
  6120. +------------------------------------------------------------------------------+
  6121. |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
  6122. +------------------------------------------------------------------------------+
  6123. +----------------------------------------------------------------------------------------------------------------------------------------+
  6124. |:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
  6125. +----------------------------------------------------------------------------------------------------------------------------------------+
  6126. +-------------------------------------------------------------------------------------------------+
  6127. |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
  6128. +-------------------------------------------------------------------------------------------------+
  6129. -Wpedantic-core-features
  6130. ------------------------
  6131. **Diagnostic text:**
  6132. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6133. |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
  6134. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6135. -Wpessimizing-move
  6136. ------------------
  6137. **Diagnostic text:**
  6138. +--------------------------------------------------------------------------------------+
  6139. |:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
  6140. +--------------------------------------------------------------------------------------+
  6141. +--------------------------------------------------------------------------------------------------------+
  6142. |:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
  6143. +--------------------------------------------------------------------------------------------------------+
  6144. -Wpointer-arith
  6145. ---------------
  6146. Some of the diagnostics controlled by this flag are enabled by default.
  6147. **Diagnostic text:**
  6148. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
  6149. |: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`|
  6150. | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
  6151. | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
  6152. | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
  6153. | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
  6154. | | | | | | | | | ||+-----------------------------------------------+|| |
  6155. | | | | | | | | | |+-------------------------------------------------+| |
  6156. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
  6157. +----------------------------------------------------------------------------------------+
  6158. |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
  6159. +----------------------------------------------------------------------------------------+
  6160. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
  6161. |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
  6162. | || |nbsp| :diagtext:`a`|| || || |
  6163. | |+---------------------+| |+-------------+| |
  6164. | || || ||:diagtext:`s`|| |
  6165. | |+---------------------+| |+-------------+| |
  6166. +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
  6167. +---------------------------------------------------------------+-----------------------+--------------------------------+
  6168. |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
  6169. | ||:diagtext:`sizeof` || |
  6170. | |+---------------------+| |
  6171. | ||:diagtext:`alignof` || |
  6172. | |+---------------------+| |
  6173. | ||:diagtext:`vec\_step`|| |
  6174. | |+---------------------+| |
  6175. +---------------------------------------------------------------+-----------------------+--------------------------------+
  6176. +---------------------------------------------------------------+-----------------------+----------------------------+
  6177. |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
  6178. | ||:diagtext:`sizeof` || |
  6179. | |+---------------------+| |
  6180. | ||:diagtext:`alignof` || |
  6181. | |+---------------------+| |
  6182. | ||:diagtext:`vec\_step`|| |
  6183. | |+---------------------+| |
  6184. +---------------------------------------------------------------+-----------------------+----------------------------+
  6185. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  6186. |:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
  6187. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  6188. -Wpointer-bool-conversion
  6189. -------------------------
  6190. This diagnostic is enabled by default.
  6191. **Diagnostic text:**
  6192. +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
  6193. |:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
  6194. | ||:diagtext:`function call`|| |
  6195. | |+-------------------------+| |
  6196. | ||:diagtext:`parameter` || |
  6197. | |+-------------------------+| |
  6198. +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
  6199. +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
  6200. |:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
  6201. | || || |
  6202. | |+----------------------------+| |
  6203. | || |nbsp| :diagtext:`function`|| |
  6204. | |+----------------------------+| |
  6205. | || |nbsp| :diagtext:`array` || |
  6206. | |+----------------------------+| |
  6207. +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
  6208. -Wpointer-sign
  6209. --------------
  6210. This diagnostic is enabled by default.
  6211. **Diagnostic text:**
  6212. +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
  6213. |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
  6214. | ||:diagtext:`assigning to different types` || |
  6215. | |+--------------------------------------------------------------+| |
  6216. | ||:diagtext:`passing to parameter of different type` || |
  6217. | |+--------------------------------------------------------------+| |
  6218. | ||:diagtext:`returning from function with different return type`|| |
  6219. | |+--------------------------------------------------------------+| |
  6220. | ||:diagtext:`converting between types` || |
  6221. | |+--------------------------------------------------------------+| |
  6222. | ||:diagtext:`initializing with expression of different type` || |
  6223. | |+--------------------------------------------------------------+| |
  6224. | ||:diagtext:`sending to parameter of different type` || |
  6225. | |+--------------------------------------------------------------+| |
  6226. | ||:diagtext:`casting between types` || |
  6227. | |+--------------------------------------------------------------+| |
  6228. +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
  6229. -Wpointer-to-int-cast
  6230. ---------------------
  6231. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  6232. -Wpointer-type-mismatch
  6233. -----------------------
  6234. This diagnostic is enabled by default.
  6235. **Diagnostic text:**
  6236. +------------------------------------------------------------+
  6237. |:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
  6238. +------------------------------------------------------------+
  6239. -Wpotentially-evaluated-expression
  6240. ----------------------------------
  6241. This diagnostic is enabled by default.
  6242. **Diagnostic text:**
  6243. +----------------------------------------------------------------------------------------------------------------------------------+
  6244. |:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
  6245. +----------------------------------------------------------------------------------------------------------------------------------+
  6246. -Wpragma-clang-attribute
  6247. ------------------------
  6248. This diagnostic is enabled by default.
  6249. **Diagnostic text:**
  6250. +-------------------------------------------------------------------------------------------------------------------------------------------+
  6251. |:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
  6252. +-------------------------------------------------------------------------------------------------------------------------------------------+
  6253. -Wpragma-once-outside-header
  6254. ----------------------------
  6255. This diagnostic is enabled by default.
  6256. **Diagnostic text:**
  6257. +----------------------------------------------------------------+
  6258. |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
  6259. +----------------------------------------------------------------+
  6260. -Wpragma-pack
  6261. -------------
  6262. Some of the diagnostics controlled by this flag are enabled by default.
  6263. Also controls `-Wpragma-pack-suspicious-include`_.
  6264. **Diagnostic text:**
  6265. +----------------------------------------------------------------------------------------------------------------+
  6266. |:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
  6267. +----------------------------------------------------------------------------------------------------------------+
  6268. +---------------------------------------------------------------------------------------------+
  6269. |:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
  6270. +---------------------------------------------------------------------------------------------+
  6271. -Wpragma-pack-suspicious-include
  6272. --------------------------------
  6273. **Diagnostic text:**
  6274. +-------------------------------------------------------------------------------------------------------------------------------------------+
  6275. |:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
  6276. +-------------------------------------------------------------------------------------------------------------------------------------------+
  6277. -Wpragma-system-header-outside-header
  6278. -------------------------------------
  6279. This diagnostic is enabled by default.
  6280. **Diagnostic text:**
  6281. +----------------------------------------------------------------------------------+
  6282. |:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
  6283. +----------------------------------------------------------------------------------+
  6284. -Wpragmas
  6285. ---------
  6286. Some of the diagnostics controlled by this flag are enabled by default.
  6287. Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
  6288. **Diagnostic text:**
  6289. +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
  6290. |:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
  6291. | ||:diagtext:`function`|| |
  6292. | |+--------------------+| |
  6293. | ||:diagtext:`variable`|| |
  6294. | |+--------------------+| |
  6295. +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
  6296. -Wpredefined-identifier-outside-function
  6297. ----------------------------------------
  6298. This diagnostic is enabled by default.
  6299. **Diagnostic text:**
  6300. +------------------------------------------------------------------------------------------+
  6301. |:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
  6302. +------------------------------------------------------------------------------------------+
  6303. -Wprivate-extern
  6304. ----------------
  6305. This diagnostic is enabled by default.
  6306. **Diagnostic text:**
  6307. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6308. |:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
  6309. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6310. -Wprivate-header
  6311. ----------------
  6312. This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
  6313. **Diagnostic text:**
  6314. +----------------------------------------------------------------------------------------------------------------+
  6315. |:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
  6316. +----------------------------------------------------------------------------------------------------------------+
  6317. -Wprivate-module
  6318. ----------------
  6319. This diagnostic is enabled by default.
  6320. **Diagnostic text:**
  6321. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6322. |:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`|
  6323. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6324. +----------------------------------------------------------------------------------------------------------------------------------+
  6325. |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
  6326. +----------------------------------------------------------------------------------------------------------------------------------+
  6327. -Wprofile-instr-missing
  6328. -----------------------
  6329. **Diagnostic text:**
  6330. +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
  6331. |: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`|
  6332. | || || ||:diagtext:`:has` || |
  6333. | |+-------------+| |+-----------------+| |
  6334. | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
  6335. | |+-------------+| |+-----------------+| |
  6336. +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
  6337. -Wprofile-instr-out-of-date
  6338. ---------------------------
  6339. This diagnostic is enabled by default.
  6340. **Diagnostic text:**
  6341. +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
  6342. |: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`|
  6343. | || || ||:diagtext:`:has` || |
  6344. | |+-------------+| |+-----------------+| |
  6345. | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
  6346. | |+-------------+| |+-----------------+| |
  6347. +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
  6348. -Wprofile-instr-unprofiled
  6349. --------------------------
  6350. This diagnostic is enabled by default.
  6351. **Diagnostic text:**
  6352. +--------------------------------------------------------------------------------------------------------+
  6353. |:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
  6354. +--------------------------------------------------------------------------------------------------------+
  6355. -Wproperty-access-dot-syntax
  6356. ----------------------------
  6357. This diagnostic is enabled by default.
  6358. **Diagnostic text:**
  6359. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6360. |: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:`?`|
  6361. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6362. -Wproperty-attribute-mismatch
  6363. -----------------------------
  6364. This diagnostic is enabled by default.
  6365. **Diagnostic text:**
  6366. +-------------------------------------------------------------------------------------------------------------+
  6367. |:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
  6368. +-------------------------------------------------------------------------------------------------------------+
  6369. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6370. |: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`|
  6371. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6372. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6373. |:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
  6374. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6375. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6376. |:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
  6377. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6378. -Wprotocol
  6379. ----------
  6380. This diagnostic is enabled by default.
  6381. **Diagnostic text:**
  6382. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6383. |:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
  6384. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6385. -Wprotocol-property-synthesis-ambiguity
  6386. ---------------------------------------
  6387. This diagnostic is enabled by default.
  6388. **Diagnostic text:**
  6389. +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
  6390. |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
  6391. | ||+-------------------------------------------+ || |
  6392. | |||:diagtext:`of type` |nbsp| :placeholder:`B`| || |
  6393. | ||+-------------------------------------------+ || |
  6394. | |+--------------------------------------------------------------+| |
  6395. | ||+---------------------------------------------------------+ || |
  6396. | |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || |
  6397. | ||+---------------------------------------------------------+ || |
  6398. | |+--------------------------------------------------------------+| |
  6399. | ||+------------------------------------------------------------+|| |
  6400. | |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| |
  6401. | ||+------------------------------------------------------------+|| |
  6402. | |+--------------------------------------------------------------+| |
  6403. | ||+-----------------------------------------------+ || |
  6404. | |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || |
  6405. | ||+-----------------------------------------------+ || |
  6406. | |+--------------------------------------------------------------+| |
  6407. | ||+-----------------------------------------------+ || |
  6408. | |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || |
  6409. | ||+-----------------------------------------------+ || |
  6410. | |+--------------------------------------------------------------+| |
  6411. +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
  6412. -Wqualified-void-return-type
  6413. ----------------------------
  6414. This diagnostic is enabled by default.
  6415. **Diagnostic text:**
  6416. +---------------------------------------------------------------------------------------------------------+
  6417. |:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
  6418. +---------------------------------------------------------------------------------------------------------+
  6419. -Wrange-loop-analysis
  6420. ---------------------
  6421. **Diagnostic text:**
  6422. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6423. |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`|
  6424. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6425. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6426. |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`|
  6427. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6428. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6429. |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`|
  6430. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6431. -Wreadonly-iboutlet-property
  6432. ----------------------------
  6433. This diagnostic is enabled by default.
  6434. **Diagnostic text:**
  6435. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6436. |:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
  6437. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6438. -Wreceiver-expr
  6439. ---------------
  6440. This diagnostic is enabled by default.
  6441. **Diagnostic text:**
  6442. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6443. |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
  6444. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6445. -Wreceiver-forward-class
  6446. ------------------------
  6447. Some of the diagnostics controlled by this flag are enabled by default.
  6448. **Diagnostic text:**
  6449. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  6450. |:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
  6451. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  6452. +---------------------------------------------------------------------------------------------------------------------------------------------+
  6453. |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
  6454. +---------------------------------------------------------------------------------------------------------------------------------------------+
  6455. -Wredeclared-class-member
  6456. -------------------------
  6457. This diagnostic is enabled by default.
  6458. **Diagnostic text:**
  6459. +------------------------------------------------------------------------+
  6460. |:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
  6461. +------------------------------------------------------------------------+
  6462. -Wredundant-decls
  6463. -----------------
  6464. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  6465. -Wredundant-move
  6466. ----------------
  6467. **Diagnostic text:**
  6468. +-------------------------------------------------------------------------+
  6469. |:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
  6470. +-------------------------------------------------------------------------+
  6471. -Wredundant-parens
  6472. ------------------
  6473. **Diagnostic text:**
  6474. +-----------------------------------------------------------------------------------+
  6475. |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
  6476. +-----------------------------------------------------------------------------------+
  6477. -Wregister
  6478. ----------
  6479. This diagnostic is enabled by default.
  6480. Also controls `-Wdeprecated-register`_.
  6481. **Diagnostic text:**
  6482. +----------------------------------------------------------------------------------------------+
  6483. |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
  6484. +----------------------------------------------------------------------------------------------+
  6485. -Wreinterpret-base-class
  6486. ------------------------
  6487. This diagnostic is enabled by default.
  6488. **Diagnostic text:**
  6489. +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
  6490. |: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'`|
  6491. | ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
  6492. | |+----------------+| |+----------------+| |+-----------------------------------+| |
  6493. | ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
  6494. | |+----------------+| |+----------------+| |+-----------------------------------+| |
  6495. +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
  6496. -Rremark-backend-plugin
  6497. -----------------------
  6498. **Diagnostic text:**
  6499. The text of this diagnostic is not controlled by Clang.
  6500. -Wreorder
  6501. ---------
  6502. **Diagnostic text:**
  6503. +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
  6504. |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
  6505. | ||:diagtext:`field` || ||:diagtext:`field`|| |
  6506. | |+----------------------+| |+-----------------+| |
  6507. | ||:diagtext:`base class`|| ||:diagtext:`base` || |
  6508. | |+----------------------+| |+-----------------+| |
  6509. +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
  6510. -Wrequires-super-attribute
  6511. --------------------------
  6512. This diagnostic is enabled by default.
  6513. **Diagnostic text:**
  6514. +-----------------------------------------------------------------------------------------------------+----------------------------------+
  6515. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
  6516. | ||:diagtext:`methods in protocols`||
  6517. | |+--------------------------------+|
  6518. | ||:diagtext:`dealloc` ||
  6519. | |+--------------------------------+|
  6520. +-----------------------------------------------------------------------------------------------------+----------------------------------+
  6521. -Wreserved-id-macro
  6522. -------------------
  6523. **Diagnostic text:**
  6524. +--------------------------------------------------------------------------+
  6525. |:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
  6526. +--------------------------------------------------------------------------+
  6527. -Wreserved-user-defined-literal
  6528. -------------------------------
  6529. Some of the diagnostics controlled by this flag are enabled by default.
  6530. Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
  6531. **Diagnostic text:**
  6532. +-----------------------------------------------------------------------------------------------------------------------+
  6533. |:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
  6534. +-----------------------------------------------------------------------------------------------------------------------+
  6535. +-------------------------------------------------------------------------------------------------------------------+
  6536. |:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
  6537. +-------------------------------------------------------------------------------------------------------------------+
  6538. -Wretained-language-linkage
  6539. ---------------------------
  6540. **Diagnostic text:**
  6541. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  6542. |:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
  6543. +-----------------------------------------------------------------------------------------------------------------------------------------------------+
  6544. -Wreturn-stack-address
  6545. ----------------------
  6546. This diagnostic is enabled by default.
  6547. **Diagnostic text:**
  6548. +---------------------------------------------------------------------------------+
  6549. |:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
  6550. +---------------------------------------------------------------------------------+
  6551. +--------------------------------------------------------+--------------------------+------------------------------------------+
  6552. |:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
  6553. | ||:diagtext:`address of` || |
  6554. | |+------------------------+| |
  6555. | ||:diagtext:`reference to`|| |
  6556. | |+------------------------+| |
  6557. +--------------------------------------------------------+--------------------------+------------------------------------------+
  6558. +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
  6559. |:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
  6560. | ||:diagtext:`address of` || |
  6561. | |+------------------------+| |
  6562. | ||:diagtext:`reference to`|| |
  6563. | |+------------------------+| |
  6564. +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
  6565. -Wreturn-type
  6566. -------------
  6567. This diagnostic is enabled by default.
  6568. Also controls `-Wreturn-type-c-linkage`_.
  6569. **Diagnostic text:**
  6570. +-----------------------+---------------------------+---------------------------------------------------------------------+
  6571. |:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
  6572. | ||:diagtext:`void function`|| |
  6573. | |+-------------------------+| |
  6574. | ||:diagtext:`void method` || |
  6575. | |+-------------------------+| |
  6576. | ||:diagtext:`constructor` || |
  6577. | |+-------------------------+| |
  6578. | ||:diagtext:`destructor` || |
  6579. | |+-------------------------+| |
  6580. +-----------------------+---------------------------+---------------------------------------------------------------------+
  6581. +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
  6582. |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
  6583. | ||:diagtext:`function`|| |
  6584. | |+--------------------+| |
  6585. | ||:diagtext:`method` || |
  6586. | |+--------------------+| |
  6587. +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
  6588. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6589. |:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
  6590. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6591. +-------------------------------------------------------------------------------+
  6592. |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
  6593. +-------------------------------------------------------------------------------+
  6594. +-----------------------------------------------------------------------------+
  6595. |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
  6596. +-----------------------------------------------------------------------------+
  6597. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6598. |:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`|
  6599. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6600. +---------------------------------------------------------------------------------+
  6601. |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
  6602. +---------------------------------------------------------------------------------+
  6603. +-------------------------------------------------------------------------------+
  6604. |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
  6605. +-------------------------------------------------------------------------------+
  6606. +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
  6607. |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
  6608. | ||:diagtext:`function`|| |
  6609. | |+--------------------+| |
  6610. | ||:diagtext:`method` || |
  6611. | |+--------------------+| |
  6612. +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
  6613. -Wreturn-type-c-linkage
  6614. -----------------------
  6615. This diagnostic is enabled by default.
  6616. **Diagnostic text:**
  6617. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6618. |: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`|
  6619. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6620. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6621. |: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`|
  6622. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6623. -Wrtti-for-exceptions
  6624. ---------------------
  6625. This diagnostic is enabled by default.
  6626. **Diagnostic text:**
  6627. +--------------------------------------------------------------------------------------+
  6628. |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
  6629. +--------------------------------------------------------------------------------------+
  6630. -Rsanitize-address
  6631. ------------------
  6632. **Diagnostic text:**
  6633. +--------------------------------------------------------------------------------------------------------+
  6634. |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
  6635. +--------------------------------------------------------------------------------------------------------+
  6636. +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
  6637. |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
  6638. | ||:diagtext:`is not C++` ||
  6639. | |+------------------------------------+|
  6640. | ||:diagtext:`is packed` ||
  6641. | |+------------------------------------+|
  6642. | ||:diagtext:`is a union` ||
  6643. | |+------------------------------------+|
  6644. | ||:diagtext:`is trivially copyable` ||
  6645. | |+------------------------------------+|
  6646. | ||:diagtext:`has trivial destructor` ||
  6647. | |+------------------------------------+|
  6648. | ||:diagtext:`is standard layout` ||
  6649. | |+------------------------------------+|
  6650. | ||:diagtext:`is in a blacklisted file`||
  6651. | |+------------------------------------+|
  6652. | ||:diagtext:`is blacklisted` ||
  6653. | |+------------------------------------+|
  6654. +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
  6655. -Wsection
  6656. ---------
  6657. This diagnostic is enabled by default.
  6658. **Diagnostic text:**
  6659. +--------------------------------------------------------------------------------------------+
  6660. |:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
  6661. +--------------------------------------------------------------------------------------------+
  6662. +----------------------------------------------------------------------------------+
  6663. |:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
  6664. +----------------------------------------------------------------------------------+
  6665. -Wselector
  6666. ----------
  6667. Also controls `-Wselector-type-mismatch`_.
  6668. **Diagnostic text:**
  6669. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  6670. |:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
  6671. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  6672. -Wselector-type-mismatch
  6673. ------------------------
  6674. **Diagnostic text:**
  6675. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6676. |:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
  6677. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6678. -Wself-assign
  6679. -------------
  6680. Some of the diagnostics controlled by this flag are enabled by default.
  6681. Also controls `-Wself-assign-field`_.
  6682. **Diagnostic text:**
  6683. +------------------------------------------------------------------------------------------------------------------------------------------+
  6684. |:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
  6685. +------------------------------------------------------------------------------------------------------------------------------------------+
  6686. -Wself-assign-field
  6687. -------------------
  6688. This diagnostic is enabled by default.
  6689. **Diagnostic text:**
  6690. +--------------------------------------------------------+-------------------------------+-----------------------------+
  6691. |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
  6692. | ||:diagtext:`field` || |
  6693. | |+-----------------------------+| |
  6694. | ||:diagtext:`instance variable`|| |
  6695. | |+-----------------------------+| |
  6696. +--------------------------------------------------------+-------------------------------+-----------------------------+
  6697. -Wself-move
  6698. -----------
  6699. **Diagnostic text:**
  6700. +------------------------------------------------------------------------------------------------------------------------------+
  6701. |:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
  6702. +------------------------------------------------------------------------------------------------------------------------------+
  6703. -Wsemicolon-before-method-body
  6704. ------------------------------
  6705. **Diagnostic text:**
  6706. +------------------------------------------------------------------------------+
  6707. |:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
  6708. +------------------------------------------------------------------------------+
  6709. -Wsentinel
  6710. ----------
  6711. This diagnostic is enabled by default.
  6712. **Diagnostic text:**
  6713. +------------------------------------------------------------------+-----------------------------+
  6714. |:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
  6715. | ||:diagtext:`function call` ||
  6716. | |+---------------------------+|
  6717. | ||:diagtext:`method dispatch`||
  6718. | |+---------------------------+|
  6719. | ||:diagtext:`block call` ||
  6720. | |+---------------------------+|
  6721. +------------------------------------------------------------------+-----------------------------+
  6722. +------------------------------------------------------------------------------------------------------------------------------------------------+
  6723. |:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
  6724. +------------------------------------------------------------------------------------------------------------------------------------------------+
  6725. -Wsequence-point
  6726. ----------------
  6727. Synonym for `-Wunsequenced`_.
  6728. -Wserialized-diagnostics
  6729. ------------------------
  6730. This diagnostic is enabled by default.
  6731. **Diagnostic text:**
  6732. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6733. |:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
  6734. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6735. +--------------------------------------------------------------------------------------------+
  6736. |:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
  6737. +--------------------------------------------------------------------------------------------+
  6738. -Wshadow
  6739. --------
  6740. Some of the diagnostics controlled by this flag are enabled by default.
  6741. Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
  6742. **Diagnostic text:**
  6743. +--------------------------------------------------------------------+-------------------------------------------------------------+
  6744. |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
  6745. | ||:diagtext:`local variable` ||
  6746. | |+-----------------------------------------------------------+|
  6747. | ||+-----------------------------------------------+ ||
  6748. | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
  6749. | ||+-----------------------------------------------+ ||
  6750. | |+-----------------------------------------------------------+|
  6751. | ||+---------------------------------------------------------+||
  6752. | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
  6753. | ||+---------------------------------------------------------+||
  6754. | |+-----------------------------------------------------------+|
  6755. | ||+--------------------------------------------+ ||
  6756. | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
  6757. | ||+--------------------------------------------+ ||
  6758. | |+-----------------------------------------------------------+|
  6759. | ||+----------------------------------------------+ ||
  6760. | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
  6761. | ||+----------------------------------------------+ ||
  6762. | |+-----------------------------------------------------------+|
  6763. | ||+-------------------------------------------------+ ||
  6764. | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
  6765. | ||+-------------------------------------------------+ ||
  6766. | |+-----------------------------------------------------------+|
  6767. +--------------------------------------------------------------------+-------------------------------------------------------------+
  6768. -Wshadow-all
  6769. ------------
  6770. Some of the diagnostics controlled by this flag are enabled by default.
  6771. Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
  6772. -Wshadow-field
  6773. --------------
  6774. **Diagnostic text:**
  6775. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6776. |:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`|
  6777. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6778. -Wshadow-field-in-constructor
  6779. -----------------------------
  6780. Also controls `-Wshadow-field-in-constructor-modified`_.
  6781. **Diagnostic text:**
  6782. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6783. |:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
  6784. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6785. -Wshadow-field-in-constructor-modified
  6786. --------------------------------------
  6787. **Diagnostic text:**
  6788. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6789. |:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
  6790. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6791. -Wshadow-ivar
  6792. -------------
  6793. This diagnostic is enabled by default.
  6794. **Diagnostic text:**
  6795. +------------------------------------------------------------------------------------------------------------------------------+
  6796. |:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
  6797. +------------------------------------------------------------------------------------------------------------------------------+
  6798. -Wshadow-uncaptured-local
  6799. -------------------------
  6800. **Diagnostic text:**
  6801. +--------------------------------------------------------------------+-------------------------------------------------------------+
  6802. |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
  6803. | ||:diagtext:`local variable` ||
  6804. | |+-----------------------------------------------------------+|
  6805. | ||+-----------------------------------------------+ ||
  6806. | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
  6807. | ||+-----------------------------------------------+ ||
  6808. | |+-----------------------------------------------------------+|
  6809. | ||+---------------------------------------------------------+||
  6810. | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
  6811. | ||+---------------------------------------------------------+||
  6812. | |+-----------------------------------------------------------+|
  6813. | ||+--------------------------------------------+ ||
  6814. | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
  6815. | ||+--------------------------------------------+ ||
  6816. | |+-----------------------------------------------------------+|
  6817. | ||+----------------------------------------------+ ||
  6818. | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
  6819. | ||+----------------------------------------------+ ||
  6820. | |+-----------------------------------------------------------+|
  6821. | ||+-------------------------------------------------+ ||
  6822. | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
  6823. | ||+-------------------------------------------------+ ||
  6824. | |+-----------------------------------------------------------+|
  6825. +--------------------------------------------------------------------+-------------------------------------------------------------+
  6826. -Wshift-count-negative
  6827. ----------------------
  6828. This diagnostic is enabled by default.
  6829. **Diagnostic text:**
  6830. +--------------------------------------------------------------+
  6831. |:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
  6832. +--------------------------------------------------------------+
  6833. -Wshift-count-overflow
  6834. ----------------------
  6835. This diagnostic is enabled by default.
  6836. **Diagnostic text:**
  6837. +-------------------------------------------------------------------+
  6838. |:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
  6839. +-------------------------------------------------------------------+
  6840. -Wshift-negative-value
  6841. ----------------------
  6842. This diagnostic is enabled by default.
  6843. **Diagnostic text:**
  6844. +------------------------------------------------------------------------------------+
  6845. |:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
  6846. +------------------------------------------------------------------------------------+
  6847. -Wshift-op-parentheses
  6848. ----------------------
  6849. This diagnostic is enabled by default.
  6850. **Diagnostic text:**
  6851. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6852. |:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
  6853. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6854. -Wshift-overflow
  6855. ----------------
  6856. This diagnostic is enabled by default.
  6857. **Diagnostic text:**
  6858. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6859. |: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`|
  6860. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6861. -Wshift-sign-overflow
  6862. ---------------------
  6863. **Diagnostic text:**
  6864. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6865. |: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`|
  6866. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6867. -Wshorten-64-to-32
  6868. ------------------
  6869. **Diagnostic text:**
  6870. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  6871. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  6872. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  6873. -Wsign-compare
  6874. --------------
  6875. **Diagnostic text:**
  6876. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  6877. |:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
  6878. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  6879. -Wsign-conversion
  6880. -----------------
  6881. **Diagnostic text:**
  6882. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  6883. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  6884. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  6885. +---------------------------------------------------------------------------------------------------------------------------------------------+
  6886. |:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  6887. +---------------------------------------------------------------------------------------------------------------------------------------------+
  6888. -Wsign-promo
  6889. ------------
  6890. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  6891. -Wsigned-enum-bitfield
  6892. ----------------------
  6893. **Diagnostic text:**
  6894. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6895. |: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`|
  6896. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6897. -Wsizeof-array-argument
  6898. -----------------------
  6899. This diagnostic is enabled by default.
  6900. **Diagnostic text:**
  6901. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6902. |:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
  6903. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6904. -Wsizeof-array-decay
  6905. --------------------
  6906. This diagnostic is enabled by default.
  6907. **Diagnostic text:**
  6908. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6909. |:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
  6910. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6911. -Wsizeof-pointer-memaccess
  6912. --------------------------
  6913. This diagnostic is enabled by default.
  6914. **Diagnostic text:**
  6915. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6916. |: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`|
  6917. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6918. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
  6919. |: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`|
  6920. | ||:diagtext:`destination`|| |
  6921. | |+-----------------------+| |
  6922. | ||:diagtext:`source` || |
  6923. | |+-----------------------+| |
  6924. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
  6925. -Wslash-u-filename
  6926. ------------------
  6927. This diagnostic is enabled by default.
  6928. **Diagnostic text:**
  6929. +--------------------------------------------------------------------------------------------------+
  6930. |:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
  6931. +--------------------------------------------------------------------------------------------------+
  6932. -Wsometimes-uninitialized
  6933. -------------------------
  6934. **Diagnostic text:**
  6935. +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
  6936. |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
  6937. | ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ ||
  6938. | |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| ||
  6939. | ||:diagtext:`captured`|| ||| ||:diagtext:`true` || ||
  6940. | |+--------------------+| ||| |+-----------------+| ||
  6941. | | | ||| ||:diagtext:`false`|| ||
  6942. | | | ||| |+-----------------+| ||
  6943. | | | ||+---------------------------------------------------------------+-------------------+ ||
  6944. | | | |+------------------------------------------------------------------------------------------------------------+|
  6945. | | | ||+-------------------------------------------------------+--------------------------------------------------+||
  6946. | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
  6947. | | | ||| ||:diagtext:`is entered` ||||
  6948. | | | ||| |+------------------------------------------------+|||
  6949. | | | ||| ||:diagtext:`exits because its condition is false`||||
  6950. | | | ||| |+------------------------------------------------+|||
  6951. | | | ||+-------------------------------------------------------+--------------------------------------------------+||
  6952. | | | |+------------------------------------------------------------------------------------------------------------+|
  6953. | | | ||+-------------------------------------------------------+--------------------------------------------------+||
  6954. | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
  6955. | | | ||| ||:diagtext:`condition is true` ||||
  6956. | | | ||| |+------------------------------------------------+|||
  6957. | | | ||| ||:diagtext:`exits because its condition is false`||||
  6958. | | | ||| |+------------------------------------------------+|||
  6959. | | | ||+-------------------------------------------------------+--------------------------------------------------+||
  6960. | | | |+------------------------------------------------------------------------------------------------------------+|
  6961. | | | ||+----------------------------------------------------------------------+ ||
  6962. | | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| ||
  6963. | | | ||+----------------------------------------------------------------------+ ||
  6964. | | | |+------------------------------------------------------------------------------------------------------------+|
  6965. | | | ||:diagtext:`its declaration is reached` ||
  6966. | | | |+------------------------------------------------------------------------------------------------------------+|
  6967. | | | ||+---------------------------------------------+ ||
  6968. | | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| ||
  6969. | | | ||+---------------------------------------------+ ||
  6970. | | | |+------------------------------------------------------------------------------------------------------------+|
  6971. +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
  6972. -Wsource-uses-openmp
  6973. --------------------
  6974. Some of the diagnostics controlled by this flag are enabled by default.
  6975. **Diagnostic text:**
  6976. +------------------------------------------------------------------------------------------------------------------------------+
  6977. |:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
  6978. +------------------------------------------------------------------------------------------------------------------------------+
  6979. +------------------------------------------------------------------------------+
  6980. |:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
  6981. +------------------------------------------------------------------------------+
  6982. -Wspir-compat
  6983. -------------
  6984. **Diagnostic text:**
  6985. +----------------------------------------------------------------------------------------------------------------------+
  6986. |:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
  6987. +----------------------------------------------------------------------------------------------------------------------+
  6988. -Wstack-protector
  6989. -----------------
  6990. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  6991. -Wstatic-float-init
  6992. -------------------
  6993. This diagnostic is enabled by default.
  6994. Also controls `-Wgnu-static-float-init`_.
  6995. **Diagnostic text:**
  6996. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6997. |:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
  6998. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6999. -Wstatic-in-inline
  7000. ------------------
  7001. Some of the diagnostics controlled by this flag are enabled by default.
  7002. **Diagnostic text:**
  7003. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  7004. |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
  7005. | ||:diagtext:`function`|| |
  7006. | |+--------------------+| |
  7007. | ||:diagtext:`variable`|| |
  7008. | |+--------------------+| |
  7009. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  7010. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  7011. |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
  7012. | ||:diagtext:`function`|| |
  7013. | |+--------------------+| |
  7014. | ||:diagtext:`variable`|| |
  7015. | |+--------------------+| |
  7016. +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
  7017. -Wstatic-inline-explicit-instantiation
  7018. --------------------------------------
  7019. This diagnostic is enabled by default.
  7020. **Diagnostic text:**
  7021. +-------------------------------------------------+--------------------+--------------------------------------------------------+
  7022. |:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
  7023. | ||:diagtext:`static`|| |
  7024. | |+------------------+| |
  7025. | ||:diagtext:`inline`|| |
  7026. | |+------------------+| |
  7027. +-------------------------------------------------+--------------------+--------------------------------------------------------+
  7028. -Wstatic-local-in-inline
  7029. ------------------------
  7030. This diagnostic is enabled by default.
  7031. **Diagnostic text:**
  7032. +--------------------------------------------------------------------------------------------------------------------------------+
  7033. |:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
  7034. +--------------------------------------------------------------------------------------------------------------------------------+
  7035. -Wstatic-self-init
  7036. ------------------
  7037. This diagnostic is enabled by default.
  7038. **Diagnostic text:**
  7039. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  7040. |:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
  7041. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  7042. -Wstrict-aliasing
  7043. -----------------
  7044. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7045. -Wstrict-aliasing=0
  7046. -------------------
  7047. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7048. -Wstrict-aliasing=1
  7049. -------------------
  7050. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7051. -Wstrict-aliasing=2
  7052. -------------------
  7053. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7054. -Wstrict-overflow
  7055. -----------------
  7056. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7057. -Wstrict-overflow=0
  7058. -------------------
  7059. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7060. -Wstrict-overflow=1
  7061. -------------------
  7062. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7063. -Wstrict-overflow=2
  7064. -------------------
  7065. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7066. -Wstrict-overflow=3
  7067. -------------------
  7068. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7069. -Wstrict-overflow=4
  7070. -------------------
  7071. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7072. -Wstrict-overflow=5
  7073. -------------------
  7074. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7075. -Wstrict-prototypes
  7076. -------------------
  7077. **Diagnostic text:**
  7078. +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
  7079. |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
  7080. | ||:diagtext:`function declaration is not` || |
  7081. | |+------------------------------------------------------------+| |
  7082. | ||:diagtext:`block declaration is not` || |
  7083. | |+------------------------------------------------------------+| |
  7084. | ||:diagtext:`old-style function definition is not preceded by`|| |
  7085. | |+------------------------------------------------------------+| |
  7086. +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
  7087. -Wstrict-prototypes
  7088. -------------------
  7089. **Diagnostic text:**
  7090. +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
  7091. |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
  7092. | ||:diagtext:`function declaration is not` || |
  7093. | |+------------------------------------------------------------+| |
  7094. | ||:diagtext:`block declaration is not` || |
  7095. | |+------------------------------------------------------------+| |
  7096. | ||:diagtext:`old-style function definition is not preceded by`|| |
  7097. | |+------------------------------------------------------------+| |
  7098. +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
  7099. -Wstrict-selector-match
  7100. -----------------------
  7101. **Diagnostic text:**
  7102. +--------------------------------------------------------------------------------------------------------------+
  7103. |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
  7104. +--------------------------------------------------------------------------------------------------------------+
  7105. -Wstring-compare
  7106. ----------------
  7107. This diagnostic is enabled by default.
  7108. **Diagnostic text:**
  7109. +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
  7110. |:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
  7111. | ||:diagtext:`a string literal`|| |
  7112. | |+----------------------------+| |
  7113. | ||:diagtext:`@encode` || |
  7114. | |+----------------------------+| |
  7115. +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
  7116. -Wstring-conversion
  7117. -------------------
  7118. **Diagnostic text:**
  7119. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7120. |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
  7121. +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7122. -Wstring-plus-char
  7123. ------------------
  7124. This diagnostic is enabled by default.
  7125. **Diagnostic text:**
  7126. +------------------------------------------------------------------------------------------------------------------------------------------+
  7127. |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
  7128. +------------------------------------------------------------------------------------------------------------------------------------------+
  7129. -Wstring-plus-int
  7130. -----------------
  7131. This diagnostic is enabled by default.
  7132. **Diagnostic text:**
  7133. +----------------------------------------------------------------------------------------------------------------------------------+
  7134. |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
  7135. +----------------------------------------------------------------------------------------------------------------------------------+
  7136. -Wstrlcpy-strlcat-size
  7137. ----------------------
  7138. This diagnostic is enabled by default.
  7139. **Diagnostic text:**
  7140. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7141. |: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`|
  7142. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7143. -Wstrncat-size
  7144. --------------
  7145. This diagnostic is enabled by default.
  7146. **Diagnostic text:**
  7147. +--------------------------------------------------------------------------------------------------------------------------------+
  7148. |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
  7149. +--------------------------------------------------------------------------------------------------------------------------------+
  7150. +-------------------------------------------------------------------------------------------------------+
  7151. |:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
  7152. +-------------------------------------------------------------------------------------------------------+
  7153. +-------------------------------------------------------------------------------------------+
  7154. |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
  7155. +-------------------------------------------------------------------------------------------+
  7156. -Wsuper-class-method-mismatch
  7157. -----------------------------
  7158. **Diagnostic text:**
  7159. +--------------------------------------------------------------------------------------------------------------------------------+
  7160. |:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
  7161. +--------------------------------------------------------------------------------------------------------------------------------+
  7162. -Wswitch
  7163. --------
  7164. This diagnostic is enabled by default.
  7165. **Diagnostic text:**
  7166. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7167. |:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
  7168. +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7169. +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7170. |:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7171. | ||+-----------------------------------------------------------------------------------------------+ ||
  7172. | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
  7173. | ||+-----------------------------------------------------------------------------------------------+ ||
  7174. | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7175. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7176. | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
  7177. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7178. | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7179. | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7180. | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
  7181. | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7182. | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7183. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
  7184. | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
  7185. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
  7186. | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7187. +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7188. +------------------------------------------------------------------------------------------------+
  7189. |:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
  7190. +------------------------------------------------------------------------------------------------+
  7191. -Wswitch-bool
  7192. -------------
  7193. This diagnostic is enabled by default.
  7194. **Diagnostic text:**
  7195. +-------------------------------------------------------------------------+
  7196. |:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
  7197. +-------------------------------------------------------------------------+
  7198. -Wswitch-default
  7199. ----------------
  7200. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7201. -Wswitch-enum
  7202. -------------
  7203. **Diagnostic text:**
  7204. +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7205. |:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7206. | ||+----------------------------------------------------------------------------------------------------------+ ||
  7207. | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
  7208. | ||+----------------------------------------------------------------------------------------------------------+ ||
  7209. | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7210. | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7211. | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
  7212. | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7213. | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7214. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7215. | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
  7216. | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
  7217. | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7218. | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
  7219. | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
  7220. | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
  7221. | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
  7222. +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7223. -Wsync-fetch-and-nand-semantics-changed
  7224. ---------------------------------------
  7225. This diagnostic is enabled by default.
  7226. **Diagnostic text:**
  7227. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7228. |:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
  7229. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7230. -Wsynth
  7231. -------
  7232. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7233. -Wtautological-compare
  7234. ----------------------
  7235. Some of the diagnostics controlled by this flag are enabled by default.
  7236. Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
  7237. **Diagnostic text:**
  7238. +---------------------------+---------------------------+--------------------------------------------------+------------------------+
  7239. |:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
  7240. | ||:diagtext:`self-` || ||:diagtext:`false` ||
  7241. | |+-------------------------+| |+----------------------+|
  7242. | ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
  7243. | |+-------------------------+| |+----------------------+|
  7244. | | | ||:diagtext:`a constant`||
  7245. | | | |+----------------------+|
  7246. +---------------------------+---------------------------+--------------------------------------------------+------------------------+
  7247. +-------------------------------------------------------------------------------------+-------------------+
  7248. |:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
  7249. | ||:diagtext:`false`||
  7250. | |+-----------------+|
  7251. | ||:diagtext:`true` ||
  7252. | |+-----------------+|
  7253. +-------------------------------------------------------------------------------------+-------------------+
  7254. -Wtautological-constant-compare
  7255. -------------------------------
  7256. This diagnostic is enabled by default.
  7257. Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
  7258. **Diagnostic text:**
  7259. +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
  7260. |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
  7261. | ||:placeholder:`D`|| ||:placeholder:`B`|| ||:diagtext:`false`||
  7262. | |+----------------+| |+----------------+| |+-----------------+|
  7263. | ||:placeholder:`B`|| ||:placeholder:`D`|| ||:diagtext:`true` ||
  7264. | |+----------------+| |+----------------+| |+-----------------+|
  7265. +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
  7266. -Wtautological-constant-out-of-range-compare
  7267. --------------------------------------------
  7268. This diagnostic is enabled by default.
  7269. **Diagnostic text:**
  7270. +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
  7271. |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
  7272. | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`||
  7273. | |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+|
  7274. | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` ||
  7275. | |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+|
  7276. | ||:diagtext:`true` || ||:diagtext:`boolean expression` || | |
  7277. | |+----------------------------------------------+| |+--------------------------------------------------------+| | |
  7278. | ||:diagtext:`false` || | | | |
  7279. | |+----------------------------------------------+| | | | |
  7280. +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
  7281. -Wtautological-overlap-compare
  7282. ------------------------------
  7283. **Diagnostic text:**
  7284. +-----------------------------------------------------------------------------------------+-------------------+
  7285. |:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
  7286. | ||:diagtext:`false`||
  7287. | |+-----------------+|
  7288. | ||:diagtext:`true` ||
  7289. | |+-----------------+|
  7290. +-----------------------------------------------------------------------------------------+-------------------+
  7291. -Wtautological-pointer-compare
  7292. ------------------------------
  7293. This diagnostic is enabled by default.
  7294. **Diagnostic text:**
  7295. +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
  7296. |: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`|
  7297. | ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
  7298. | |+-------------------------+| |+-----------------------+| |+-----------------+| |
  7299. | ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
  7300. | |+-------------------------+| |+-----------------------+| |+-----------------+| |
  7301. +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
  7302. +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
  7303. |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
  7304. | ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
  7305. | |+----------------------+| |+-----------------------+| |+-----------------+|
  7306. | ||:diagtext:`function` || || || ||:diagtext:`false`||
  7307. | |+----------------------+| |+-----------------------+| |+-----------------+|
  7308. | ||:diagtext:`array` || | | | |
  7309. | |+----------------------+| | | | |
  7310. +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
  7311. -Wtautological-undefined-compare
  7312. --------------------------------
  7313. This diagnostic is enabled by default.
  7314. **Diagnostic text:**
  7315. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
  7316. |: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| |+-----------------+|
  7317. | ||:diagtext:`true` ||
  7318. | |+-----------------+|
  7319. | ||:diagtext:`false`||
  7320. | |+-----------------+|
  7321. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
  7322. +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
  7323. |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
  7324. | ||:diagtext:`true` ||
  7325. | |+-----------------+|
  7326. | ||:diagtext:`false`||
  7327. | |+-----------------+|
  7328. +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
  7329. -Wtautological-unsigned-enum-zero-compare
  7330. -----------------------------------------
  7331. This diagnostic is enabled by default.
  7332. **Diagnostic text:**
  7333. +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
  7334. |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
  7335. | ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| ||:diagtext:`false`||
  7336. | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
  7337. | ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
  7338. | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
  7339. +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
  7340. -Wtautological-unsigned-zero-compare
  7341. ------------------------------------
  7342. This diagnostic is enabled by default.
  7343. **Diagnostic text:**
  7344. +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
  7345. |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
  7346. | ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| ||:diagtext:`false`||
  7347. | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
  7348. | ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
  7349. | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
  7350. +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
  7351. -Wtentative-definition-incomplete-type
  7352. --------------------------------------
  7353. This diagnostic is enabled by default.
  7354. **Diagnostic text:**
  7355. +---------------------------------------------------------------------------------------------------------------------------------------------------+
  7356. |:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
  7357. +---------------------------------------------------------------------------------------------------------------------------------------------------+
  7358. -Wthread-safety
  7359. ---------------
  7360. Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
  7361. -Wthread-safety-analysis
  7362. ------------------------
  7363. **Diagnostic text:**
  7364. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  7365. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
  7366. +----------------------------------------------------------------------------------------------------------------------------------------------------+
  7367. +---------------------------------------------------------------------------------------------------------------------------------+
  7368. |:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
  7369. +---------------------------------------------------------------------------------------------------------------------------------+
  7370. +---------------------------------------------------------------------+
  7371. |:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
  7372. +---------------------------------------------------------------------+
  7373. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7374. |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
  7375. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7376. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  7377. |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
  7378. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  7379. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7380. |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
  7381. +------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7382. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7383. |:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
  7384. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7385. +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7386. |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7387. | ||+------------------------------------------+ ||
  7388. | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7389. | ||+------------------------------------------+ ||
  7390. | |+--------------------------------------------------------+|
  7391. | ||+------------------------------------------------------+||
  7392. | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7393. | ||+------------------------------------------------------+||
  7394. | |+--------------------------------------------------------+|
  7395. +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7396. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  7397. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
  7398. +--------------------------------------------------------------------------------------------------------------------------------------------------+
  7399. +------------------------------------------------------------------------------------------------------------------------------------+
  7400. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
  7401. +------------------------------------------------------------------------------------------------------------------------------------+
  7402. +----------------------------------------------------------------------------------------------------------------------------------+
  7403. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
  7404. +----------------------------------------------------------------------------------------------------------------------------------+
  7405. +--------------------------------------------------------------------------------------------------------------------------------------------+
  7406. |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
  7407. +--------------------------------------------------------------------------------------------------------------------------------------------+
  7408. +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
  7409. |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
  7410. | ||:diagtext:`shared` || ||:diagtext:`shared` || |
  7411. | |+---------------------+| |+---------------------+| |
  7412. | ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
  7413. | |+---------------------+| |+---------------------+| |
  7414. +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
  7415. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
  7416. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
  7417. | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
  7418. | |+-------------------+| |+---------------------------------+|
  7419. | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
  7420. | |+-------------------+| |+---------------------------------+|
  7421. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
  7422. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7423. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7424. | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
  7425. | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7426. | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
  7427. | |+-------------------+| |+--------------------------------------------------------+|
  7428. | | | ||+------------------------------------------------------+||
  7429. | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7430. | | | ||+------------------------------------------------------+||
  7431. | | | |+--------------------------------------------------------+|
  7432. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7433. +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
  7434. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
  7435. | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
  7436. | |+-------------------+| |+---------------------------------+|
  7437. | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
  7438. | |+-------------------+| |+---------------------------------+|
  7439. +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
  7440. +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7441. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7442. | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
  7443. | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7444. | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
  7445. | |+-------------------+| |+--------------------------------------------------------+|
  7446. | | | ||+------------------------------------------------------+||
  7447. | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7448. | | | ||+------------------------------------------------------+||
  7449. | | | |+--------------------------------------------------------+|
  7450. +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7451. -Wthread-safety-attributes
  7452. --------------------------
  7453. **Diagnostic text:**
  7454. +----------------------------------------------------------------------------------------------------------------------------------------+
  7455. |:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
  7456. +----------------------------------------------------------------------------------------------------------------------------------------+
  7457. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7458. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
  7459. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7460. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  7461. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
  7462. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  7463. +----------------------------------------------------------------------------------------------------------------------------------+
  7464. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
  7465. +----------------------------------------------------------------------------------------------------------------------------------+
  7466. +------------------------------------------------------------------------------------------------------------------------------------+
  7467. |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
  7468. +------------------------------------------------------------------------------------------------------------------------------------+
  7469. -Wthread-safety-beta
  7470. --------------------
  7471. **Diagnostic text:**
  7472. +------------------------------------------------------------------+
  7473. |:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
  7474. +------------------------------------------------------------------+
  7475. -Wthread-safety-negative
  7476. ------------------------
  7477. **Diagnostic text:**
  7478. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7479. |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
  7480. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7481. -Wthread-safety-precise
  7482. -----------------------
  7483. **Diagnostic text:**
  7484. +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7485. |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7486. | ||+------------------------------------------+ ||
  7487. | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7488. | ||+------------------------------------------+ ||
  7489. | |+--------------------------------------------------------+|
  7490. | ||+------------------------------------------------------+||
  7491. | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7492. | ||+------------------------------------------------------+||
  7493. | |+--------------------------------------------------------+|
  7494. +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7495. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7496. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7497. | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
  7498. | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7499. | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
  7500. | |+-------------------+| |+--------------------------------------------------------+|
  7501. | | | ||+------------------------------------------------------+||
  7502. | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7503. | | | ||+------------------------------------------------------+||
  7504. | | | |+--------------------------------------------------------+|
  7505. +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7506. +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7507. |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7508. | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
  7509. | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7510. | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
  7511. | |+-------------------+| |+--------------------------------------------------------+|
  7512. | | | ||+------------------------------------------------------+||
  7513. | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7514. | | | ||+------------------------------------------------------+||
  7515. | | | |+--------------------------------------------------------+|
  7516. +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7517. -Wthread-safety-reference
  7518. -------------------------
  7519. **Diagnostic text:**
  7520. +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7521. |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7522. | ||+------------------------------------------+ ||
  7523. | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7524. | ||+------------------------------------------+ ||
  7525. | |+--------------------------------------------------------+|
  7526. | ||+------------------------------------------------------+||
  7527. | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7528. | ||+------------------------------------------------------+||
  7529. | |+--------------------------------------------------------+|
  7530. +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7531. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7532. |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
  7533. | ||+------------------------------------------+ ||
  7534. | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
  7535. | ||+------------------------------------------+ ||
  7536. | |+--------------------------------------------------------+|
  7537. | ||+------------------------------------------------------+||
  7538. | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
  7539. | ||+------------------------------------------------------+||
  7540. | |+--------------------------------------------------------+|
  7541. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
  7542. -Wthread-safety-verbose
  7543. -----------------------
  7544. **Diagnostic text:**
  7545. +---------------------------------------------------------------------+
  7546. |:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
  7547. +---------------------------------------------------------------------+
  7548. -Wtrigraphs
  7549. -----------
  7550. This diagnostic is enabled by default.
  7551. **Diagnostic text:**
  7552. +-----------------------------------------------------------------------------------------------------+
  7553. |:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
  7554. +-----------------------------------------------------------------------------------------------------+
  7555. +------------------------------------------------------------------+
  7556. |:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
  7557. +------------------------------------------------------------------+
  7558. +-------------------------------------------------------+
  7559. |:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
  7560. +-------------------------------------------------------+
  7561. +-------------------------------------------------------------------------------+
  7562. |:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
  7563. +-------------------------------------------------------------------------------+
  7564. -Wtype-limits
  7565. -------------
  7566. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  7567. -Wtype-safety
  7568. -------------
  7569. This diagnostic is enabled by default.
  7570. **Diagnostic text:**
  7571. +----------------------------------------------------------------------------------------------------------------------------+
  7572. |:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
  7573. +----------------------------------------------------------------------------------------------------------------------------+
  7574. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
  7575. |:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
  7576. | ||+-------------------------------------------------+||
  7577. | |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
  7578. | ||+-------------------------------------------------+||
  7579. | |+---------------------------------------------------+|
  7580. | || ||
  7581. | |+---------------------------------------------------+|
  7582. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
  7583. +---------------------------------------------------------------------------------------------------+
  7584. |:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
  7585. +---------------------------------------------------------------------------------------------------+
  7586. -Wtypedef-redefinition
  7587. ----------------------
  7588. This diagnostic is enabled by default.
  7589. **Diagnostic text:**
  7590. +--------------------------------------------------------------------------------------------------------------------------+
  7591. |:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
  7592. +--------------------------------------------------------------------------------------------------------------------------+
  7593. -Wtypename-missing
  7594. ------------------
  7595. This diagnostic is enabled by default.
  7596. **Diagnostic text:**
  7597. +-------------------------------------------------------------------------------------------------------------------------------------+
  7598. |:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
  7599. +-------------------------------------------------------------------------------------------------------------------------------------+
  7600. -Wunable-to-open-stats-file
  7601. ---------------------------
  7602. This diagnostic is enabled by default.
  7603. **Diagnostic text:**
  7604. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7605. |:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
  7606. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7607. -Wunavailable-declarations
  7608. --------------------------
  7609. This diagnostic is enabled by default.
  7610. **Diagnostic text:**
  7611. +----------------------------------------------------------------------------------------------------------------------+
  7612. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
  7613. +----------------------------------------------------------------------------------------------------------------------+
  7614. -Wundeclared-selector
  7615. ---------------------
  7616. **Diagnostic text:**
  7617. +----------------------------------------------------------------------------------+
  7618. |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
  7619. +----------------------------------------------------------------------------------+
  7620. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  7621. |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
  7622. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  7623. -Wundef
  7624. -------
  7625. **Diagnostic text:**
  7626. +---------------------------------------------------------------------------------------------+
  7627. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
  7628. +---------------------------------------------------------------------------------------------+
  7629. -Wundefined-bool-conversion
  7630. ---------------------------
  7631. This diagnostic is enabled by default.
  7632. **Diagnostic text:**
  7633. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7634. |: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`|
  7635. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7636. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7637. |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
  7638. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7639. -Wundefined-func-template
  7640. -------------------------
  7641. **Diagnostic text:**
  7642. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  7643. |:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
  7644. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  7645. -Wundefined-inline
  7646. ------------------
  7647. This diagnostic is enabled by default.
  7648. **Diagnostic text:**
  7649. +----------------------------------------------------------------------------------------------------------------+
  7650. |:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
  7651. +----------------------------------------------------------------------------------------------------------------+
  7652. -Wundefined-internal
  7653. --------------------
  7654. This diagnostic is enabled by default.
  7655. **Diagnostic text:**
  7656. +---------------------------+----------------------+-----------------------------------------------------------------------------------+
  7657. |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
  7658. | ||:diagtext:`function`|| |
  7659. | |+--------------------+| |
  7660. | ||:diagtext:`variable`|| |
  7661. | |+--------------------+| |
  7662. +---------------------------+----------------------+-----------------------------------------------------------------------------------+
  7663. -Wundefined-internal-type
  7664. -------------------------
  7665. **Diagnostic text:**
  7666. +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
  7667. |: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`|
  7668. | ||:diagtext:`function`|| |
  7669. | |+--------------------+| |
  7670. | ||:diagtext:`variable`|| |
  7671. | |+--------------------+| |
  7672. +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
  7673. -Wundefined-reinterpret-cast
  7674. ----------------------------
  7675. **Diagnostic text:**
  7676. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7677. |: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`|
  7678. +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7679. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7680. |:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
  7681. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7682. -Wundefined-var-template
  7683. ------------------------
  7684. This diagnostic is enabled by default.
  7685. **Diagnostic text:**
  7686. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  7687. |:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
  7688. +---------------------------------------------------------------------------------------------------------------------------------------------------------+
  7689. -Wunevaluated-expression
  7690. ------------------------
  7691. This diagnostic is enabled by default.
  7692. Also controls `-Wpotentially-evaluated-expression`_.
  7693. **Diagnostic text:**
  7694. +-----------------------------------------------------------------------------------------------------------+
  7695. |:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
  7696. +-----------------------------------------------------------------------------------------------------------+
  7697. -Wunguarded-availability
  7698. ------------------------
  7699. Some of the diagnostics controlled by this flag are enabled by default.
  7700. Also controls `-Wunguarded-availability-new`_.
  7701. **Diagnostic text:**
  7702. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7703. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
  7704. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7705. -Wunguarded-availability-new
  7706. ----------------------------
  7707. This diagnostic is enabled by default.
  7708. **Diagnostic text:**
  7709. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7710. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
  7711. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7712. -Wunicode
  7713. ---------
  7714. This diagnostic is enabled by default.
  7715. **Diagnostic text:**
  7716. +-------------------------------------------------------------------------------------------------------------------+
  7717. |:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
  7718. +-------------------------------------------------------------------------------------------------------------------+
  7719. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  7720. |:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
  7721. +-------------------------------------------------------------------------------------------------------------------------------------------------------+
  7722. +-----------------------------------------------------------------------------------------------+
  7723. |:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
  7724. +-----------------------------------------------------------------------------------------------+
  7725. +--------------------------------------------------------------------------------------------------------------------------------------+
  7726. |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
  7727. +--------------------------------------------------------------------------------------------------------------------------------------+
  7728. +---------------------------------------------------------------------------------------------+
  7729. |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
  7730. +---------------------------------------------------------------------------------------------+
  7731. -Wunicode-whitespace
  7732. --------------------
  7733. This diagnostic is enabled by default.
  7734. **Diagnostic text:**
  7735. +-------------------------------------------------------------------------------+
  7736. |:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
  7737. +-------------------------------------------------------------------------------+
  7738. -Wuninitialized
  7739. ---------------
  7740. Some of the diagnostics controlled by this flag are enabled by default.
  7741. Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
  7742. **Diagnostic text:**
  7743. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7744. |:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
  7745. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7746. +-----------------------------------------------------------------------------------------------------------------------+
  7747. |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
  7748. +-----------------------------------------------------------------------------------------------------------------------+
  7749. +--------------------------------------------------------------------------------------------------------------------------------------+
  7750. |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
  7751. +--------------------------------------------------------------------------------------------------------------------------------------+
  7752. +------------------------------------------------------------------------------------------------------------------------------------------------+
  7753. |:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
  7754. +------------------------------------------------------------------------------------------------------------------------------------------------+
  7755. +---------------------------------------------------------------------------------------------------------------------------------------------------+
  7756. |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
  7757. +---------------------------------------------------------------------------------------------------------------------------------------------------+
  7758. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7759. |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
  7760. +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7761. +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
  7762. |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
  7763. | ||:diagtext:`used here` ||
  7764. | |+-----------------------------+|
  7765. | ||:diagtext:`captured by block`||
  7766. | |+-----------------------------+|
  7767. +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
  7768. -Wunknown-argument
  7769. ------------------
  7770. This diagnostic is enabled by default.
  7771. **Diagnostic text:**
  7772. +-----------------------------------------------------------------------------------------------------------+
  7773. |:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
  7774. +-----------------------------------------------------------------------------------------------------------+
  7775. -Wunknown-attributes
  7776. --------------------
  7777. This diagnostic is enabled by default.
  7778. **Diagnostic text:**
  7779. +-----------------------------------------------------------------------------------------------------------+
  7780. |:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
  7781. +-----------------------------------------------------------------------------------------------------------+
  7782. -Wunknown-escape-sequence
  7783. -------------------------
  7784. This diagnostic is enabled by default.
  7785. **Diagnostic text:**
  7786. +-----------------------------------------------------------------------------------------------+
  7787. |:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
  7788. +-----------------------------------------------------------------------------------------------+
  7789. -Wunknown-pragmas
  7790. -----------------
  7791. Some of the diagnostics controlled by this flag are enabled by default.
  7792. **Diagnostic text:**
  7793. +------------------------------------------------------------------------------------+
  7794. |:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
  7795. +------------------------------------------------------------------------------------+
  7796. +--------------------------------------------------------------------------+
  7797. |:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
  7798. +--------------------------------------------------------------------------+
  7799. +-----------------------------------------------------------------------+
  7800. |:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
  7801. +-----------------------------------------------------------------------+
  7802. +--------------------------------------------------------------------------------------------+
  7803. |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
  7804. +--------------------------------------------------------------------------------------------+
  7805. +--------------------------------------------------------------------------------------------------------------------------+
  7806. |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
  7807. +--------------------------------------------------------------------------------------------------------------------------+
  7808. +----------------------------------------------------------------------------------------------+
  7809. |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
  7810. +----------------------------------------------------------------------------------------------+
  7811. +----------------------------------------------------------------------------+
  7812. |:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
  7813. +----------------------------------------------------------------------------+
  7814. +-------------------------------------------------------------+
  7815. |:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
  7816. +-------------------------------------------------------------+
  7817. +----------------------------------------------------------------------------------------------------+
  7818. |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
  7819. +----------------------------------------------------------------------------------------------------+
  7820. +--------------------------------------------------------------------------------------+
  7821. |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
  7822. +--------------------------------------------------------------------------------------+
  7823. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7824. |:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
  7825. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7826. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7827. |:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
  7828. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7829. +----------------------------------------------------------------------------------------------+
  7830. |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
  7831. +----------------------------------------------------------------------------------------------+
  7832. +--------------------------------------------------------------------------------+
  7833. |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
  7834. +--------------------------------------------------------------------------------+
  7835. +----------------------------------------------------------------------------------------------------+
  7836. |:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
  7837. +----------------------------------------------------------------------------------------------------+
  7838. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7839. |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
  7840. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7841. +----------------------------------------------------------------------------------------------------+
  7842. |:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
  7843. +----------------------------------------------------------------------------------------------------+
  7844. -Wunknown-sanitizers
  7845. --------------------
  7846. This diagnostic is enabled by default.
  7847. **Diagnostic text:**
  7848. +-----------------------------------------------------------------------------------------------+
  7849. |:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
  7850. +-----------------------------------------------------------------------------------------------+
  7851. -Wunknown-warning-option
  7852. ------------------------
  7853. This diagnostic is enabled by default.
  7854. **Diagnostic text:**
  7855. +----------------------------------------------------------------------------------------------------+
  7856. |:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
  7857. +----------------------------------------------------------------------------------------------------+
  7858. +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
  7859. |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
  7860. | ||:diagtext:`warning`|| || ||
  7861. | |+-------------------+| |+------------------------------------------------------------+|
  7862. | ||:diagtext:`remark` || ||+----------------------------------------------------------+||
  7863. | |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
  7864. | | | ||+----------------------------------------------------------+||
  7865. | | | |+------------------------------------------------------------+|
  7866. +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
  7867. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7868. |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
  7869. +-------------------------------------------------------------------------------------------------------------------------------------------+
  7870. -Wunnamed-type-template-args
  7871. ----------------------------
  7872. Some of the diagnostics controlled by this flag are enabled by default.
  7873. Also controls `-Wc++98-compat-unnamed-type-template-args`_.
  7874. **Diagnostic text:**
  7875. +--------------------------------------------------------------------------+
  7876. |:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
  7877. +--------------------------------------------------------------------------+
  7878. -Wunneeded-internal-declaration
  7879. -------------------------------
  7880. **Diagnostic text:**
  7881. +---------------------------+----------------------+---------------------------------------------------------------------------------+
  7882. |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
  7883. | ||:diagtext:`function`|| |
  7884. | |+--------------------+| |
  7885. | ||:diagtext:`variable`|| |
  7886. | |+--------------------+| |
  7887. +---------------------------+----------------------+---------------------------------------------------------------------------------+
  7888. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7889. |:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
  7890. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7891. -Wunneeded-member-function
  7892. --------------------------
  7893. **Diagnostic text:**
  7894. +---------------------------------------------------------------------------------------------------------------------------------------+
  7895. |:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
  7896. +---------------------------------------------------------------------------------------------------------------------------------------+
  7897. -Wunreachable-code
  7898. ------------------
  7899. Also controls `-Wunreachable-code-loop-increment`_.
  7900. **Diagnostic text:**
  7901. +------------------------------------------------------------------+
  7902. |:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
  7903. +------------------------------------------------------------------+
  7904. -Wunreachable-code-aggressive
  7905. -----------------------------
  7906. Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
  7907. -Wunreachable-code-break
  7908. ------------------------
  7909. **Diagnostic text:**
  7910. +---------------------------------------------------------------------+
  7911. |:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
  7912. +---------------------------------------------------------------------+
  7913. -Wunreachable-code-loop-increment
  7914. ---------------------------------
  7915. **Diagnostic text:**
  7916. +-------------------------------------------------------------------------------------------------+
  7917. |:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
  7918. +-------------------------------------------------------------------------------------------------+
  7919. -Wunreachable-code-return
  7920. -------------------------
  7921. **Diagnostic text:**
  7922. +----------------------------------------------------------------------+
  7923. |:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
  7924. +----------------------------------------------------------------------+
  7925. -Wunsequenced
  7926. -------------
  7927. This diagnostic is enabled by default.
  7928. **Diagnostic text:**
  7929. +----------------------------------------------------------------------------------------------------+
  7930. |:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
  7931. +----------------------------------------------------------------------------------------------------+
  7932. +-----------------------------------------------------------------------------------------------------+
  7933. |:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
  7934. +-----------------------------------------------------------------------------------------------------+
  7935. -Wunsupported-abs
  7936. -----------------
  7937. This diagnostic is enabled by default.
  7938. **Diagnostic text:**
  7939. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7940. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
  7941. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7942. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  7943. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
  7944. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  7945. -Wunsupported-availability-guard
  7946. --------------------------------
  7947. This diagnostic is enabled by default.
  7948. **Diagnostic text:**
  7949. +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
  7950. |:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
  7951. | ||:diagtext:`@available` || ||:diagtext:`@available` || |
  7952. | |+----------------------------------+| |+----------------------------------+| |
  7953. | ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| |
  7954. | |+----------------------------------+| |+----------------------------------+| |
  7955. +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
  7956. -Wunsupported-cb
  7957. ----------------
  7958. This diagnostic is enabled by default.
  7959. **Diagnostic text:**
  7960. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  7961. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
  7962. +--------------------------------------------------------------------------------------------------------------------------------------------------------+
  7963. -Wunsupported-dll-base-class-template
  7964. -------------------------------------
  7965. **Diagnostic text:**
  7966. +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
  7967. |:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
  7968. | ||:diagtext:`already instantiated` || |
  7969. | |+----------------------------------+| |
  7970. | ||:diagtext:`explicitly specialized`|| |
  7971. | |+----------------------------------+| |
  7972. +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
  7973. -Wunsupported-friend
  7974. --------------------
  7975. This diagnostic is enabled by default.
  7976. **Diagnostic text:**
  7977. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7978. |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
  7979. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7980. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7981. |: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`|
  7982. +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  7983. -Wunsupported-gpopt
  7984. -------------------
  7985. This diagnostic is enabled by default.
  7986. **Diagnostic text:**
  7987. +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
  7988. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
  7989. | || || |
  7990. | |+-----------------------------------------+| |
  7991. | ||:diagtext:`the implicit usage of` |nbsp| || |
  7992. | |+-----------------------------------------+| |
  7993. +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
  7994. -Wunsupported-nan
  7995. -----------------
  7996. This diagnostic is enabled by default.
  7997. **Diagnostic text:**
  7998. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  7999. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
  8000. +-----------------------------------------------------------------------------------------------------------------------------------------------+
  8001. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  8002. |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
  8003. +-------------------------------------------------------------------------------------------------------------------------------------------------+
  8004. -Wunsupported-visibility
  8005. ------------------------
  8006. This diagnostic is enabled by default.
  8007. **Diagnostic text:**
  8008. +------------------------------------------------------------------------------------------------------+
  8009. |:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
  8010. +------------------------------------------------------------------------------------------------------+
  8011. -Wunusable-partial-specialization
  8012. ---------------------------------
  8013. This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
  8014. **Diagnostic text:**
  8015. +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
  8016. |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
  8017. | ||:diagtext:`class` || ||:diagtext:`a template parameter`|| |
  8018. | |+--------------------+| |+--------------------------------+| |
  8019. | ||:diagtext:`variable`|| ||:diagtext:`template parameters` || |
  8020. | |+--------------------+| |+--------------------------------+| |
  8021. +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
  8022. -Wunused
  8023. --------
  8024. Some of the diagnostics controlled by this flag are enabled by default.
  8025. Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
  8026. -Wunused-argument
  8027. -----------------
  8028. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  8029. -Wunused-command-line-argument
  8030. ------------------------------
  8031. This diagnostic is enabled by default.
  8032. **Diagnostic text:**
  8033. +-------------------------------------------------------------------------------------------------------------------------------+
  8034. |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
  8035. +-------------------------------------------------------------------------------------------------------------------------------+
  8036. +---------------------------------------------------------------------------------------------------------------+
  8037. |:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
  8038. +---------------------------------------------------------------------------------------------------------------+
  8039. +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
  8040. |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
  8041. | ||+------------------------------------------------------------------+||
  8042. | ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
  8043. | ||+------------------------------------------------------------------+||
  8044. | |+--------------------------------------------------------------------+|
  8045. | || ||
  8046. | |+--------------------------------------------------------------------+|
  8047. +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
  8048. +----------------------------------------------------------------------------------------------------------------+
  8049. |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
  8050. +----------------------------------------------------------------------------------------------------------------+
  8051. +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
  8052. |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
  8053. | ||+-------------------------------------------------------------------------+||
  8054. | ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
  8055. | ||+-------------------------------------------------------------------------+||
  8056. | |+---------------------------------------------------------------------------+|
  8057. | || ||
  8058. | |+---------------------------------------------------------------------------+|
  8059. +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
  8060. +---------------------------------------------------------------------------------------------------------+
  8061. |:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
  8062. +---------------------------------------------------------------------------------------------------------+
  8063. +----------------------------------------------------------------------------------------------------------------------+
  8064. |:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
  8065. +----------------------------------------------------------------------------------------------------------------------+
  8066. -Wunused-comparison
  8067. -------------------
  8068. This diagnostic is enabled by default.
  8069. **Diagnostic text:**
  8070. +---------------------------+-----------------------------------------+--------------------------------------------+
  8071. |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
  8072. | ||+----------------+--------------------+|| |
  8073. | |||+--------------+|:diagtext:`equality`||| |
  8074. | |||| || ||| |
  8075. | |||+--------------+| ||| |
  8076. | ||||:diagtext:`in`|| ||| |
  8077. | |||+--------------+| ||| |
  8078. | ||+----------------+--------------------+|| |
  8079. | |+---------------------------------------+| |
  8080. | ||:diagtext:`relational` || |
  8081. | |+---------------------------------------+| |
  8082. +---------------------------+-----------------------------------------+--------------------------------------------+
  8083. -Wunused-const-variable
  8084. -----------------------
  8085. **Diagnostic text:**
  8086. +------------------------------------------------------------------------------+
  8087. |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
  8088. +------------------------------------------------------------------------------+
  8089. -Wunused-exception-parameter
  8090. ----------------------------
  8091. **Diagnostic text:**
  8092. +-----------------------------------------------------------------------------------------+
  8093. |:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
  8094. +-----------------------------------------------------------------------------------------+
  8095. -Wunused-function
  8096. -----------------
  8097. Also controls `-Wunneeded-internal-declaration`_.
  8098. **Diagnostic text:**
  8099. +------------------------------------------------------------------------------+
  8100. |:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
  8101. +------------------------------------------------------------------------------+
  8102. -Wunused-getter-return-value
  8103. ----------------------------
  8104. This diagnostic is enabled by default.
  8105. **Diagnostic text:**
  8106. +------------------------------------------------------------------------------------------------------------------+
  8107. |:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
  8108. +------------------------------------------------------------------------------------------------------------------+
  8109. -Wunused-label
  8110. --------------
  8111. **Diagnostic text:**
  8112. +---------------------------------------------------------------------------+
  8113. |:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
  8114. +---------------------------------------------------------------------------+
  8115. -Wunused-lambda-capture
  8116. -----------------------
  8117. **Diagnostic text:**
  8118. +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
  8119. |:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
  8120. | ||:diagtext:`used` ||
  8121. | |+------------------------------------------------+|
  8122. | ||:diagtext:`required to be captured for this use`||
  8123. | |+------------------------------------------------+|
  8124. +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
  8125. -Wunused-local-typedef
  8126. ----------------------
  8127. **Diagnostic text:**
  8128. +-----------------------------------------------------+------------------------+------------------------+
  8129. |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
  8130. | ||:diagtext:`typedef` || |
  8131. | |+----------------------+| |
  8132. | ||:diagtext:`type alias`|| |
  8133. | |+----------------------+| |
  8134. +-----------------------------------------------------+------------------------+------------------------+
  8135. -Wunused-local-typedefs
  8136. -----------------------
  8137. Synonym for `-Wunused-local-typedef`_.
  8138. -Wunused-macros
  8139. ---------------
  8140. **Diagnostic text:**
  8141. +--------------------------------------------------------+
  8142. |:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
  8143. +--------------------------------------------------------+
  8144. -Wunused-member-function
  8145. ------------------------
  8146. Also controls `-Wunneeded-member-function`_.
  8147. **Diagnostic text:**
  8148. +-------------------------------------------------------------------------------------+
  8149. |:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
  8150. +-------------------------------------------------------------------------------------+
  8151. -Wunused-parameter
  8152. ------------------
  8153. **Diagnostic text:**
  8154. +-------------------------------------------------------------------------------+
  8155. |:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
  8156. +-------------------------------------------------------------------------------+
  8157. -Wunused-private-field
  8158. ----------------------
  8159. **Diagnostic text:**
  8160. +-----------------------------------------------------------------------------------------------------------+
  8161. |:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
  8162. +-----------------------------------------------------------------------------------------------------------+
  8163. -Wunused-property-ivar
  8164. ----------------------
  8165. **Diagnostic text:**
  8166. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8167. |:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
  8168. +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8169. -Wunused-result
  8170. ---------------
  8171. This diagnostic is enabled by default.
  8172. **Diagnostic text:**
  8173. +-------------------------------------------------------------------------------------------------------------------------------------------+
  8174. |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
  8175. +-------------------------------------------------------------------------------------------------------------------------------------------+
  8176. -Wunused-template
  8177. -----------------
  8178. Also controls `-Wunneeded-internal-declaration`_.
  8179. **Diagnostic text:**
  8180. +-----------------------------------------------------+----------------------+----------------------------------------------------+
  8181. |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
  8182. | ||:diagtext:`function`|| |
  8183. | |+--------------------+| |
  8184. | ||:diagtext:`variable`|| |
  8185. | |+--------------------+| |
  8186. +-----------------------------------------------------+----------------------+----------------------------------------------------+
  8187. -Wunused-value
  8188. --------------
  8189. This diagnostic is enabled by default.
  8190. Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
  8191. **Diagnostic text:**
  8192. +-------------------------------------------------------------------------------------------------------------------------------------------+
  8193. |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
  8194. +-------------------------------------------------------------------------------------------------------------------------------------------+
  8195. +----------------------------------------------------------------------------------------------------------------------------+
  8196. |:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
  8197. +----------------------------------------------------------------------------------------------------------------------------+
  8198. +---------------------------------------------------------------+
  8199. |:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
  8200. +---------------------------------------------------------------+
  8201. +-----------------------------------------------------------------------------------------------+
  8202. |:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
  8203. +-----------------------------------------------------------------------------------------------+
  8204. -Wunused-variable
  8205. -----------------
  8206. Also controls `-Wunused-const-variable`_.
  8207. **Diagnostic text:**
  8208. +------------------------------------------------------------------------------+
  8209. |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
  8210. +------------------------------------------------------------------------------+
  8211. -Wunused-volatile-lvalue
  8212. ------------------------
  8213. This diagnostic is enabled by default.
  8214. **Diagnostic text:**
  8215. +----------------------------------------------------------------------------------------------------------------+
  8216. |:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
  8217. +----------------------------------------------------------------------------------------------------------------+
  8218. -Wused-but-marked-unused
  8219. ------------------------
  8220. **Diagnostic text:**
  8221. +---------------------------------------------------------------------------------------------+
  8222. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
  8223. +---------------------------------------------------------------------------------------------+
  8224. -Wuser-defined-literals
  8225. -----------------------
  8226. This diagnostic is enabled by default.
  8227. **Diagnostic text:**
  8228. +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
  8229. |:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
  8230. | ||:diagtext:`; no literal will invoke this operator`||
  8231. | |+--------------------------------------------------+|
  8232. | || ||
  8233. | |+--------------------------------------------------+|
  8234. +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
  8235. -Wuser-defined-warnings
  8236. -----------------------
  8237. This diagnostic is enabled by default.
  8238. **Diagnostic text:**
  8239. The text of this diagnostic is not controlled by Clang.
  8240. -Wvarargs
  8241. ---------
  8242. This diagnostic is enabled by default.
  8243. **Diagnostic text:**
  8244. +-----------------------------------------------------------------------------------------------------+
  8245. |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
  8246. +-----------------------------------------------------------------------------------------------------+
  8247. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8248. |: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`|
  8249. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8250. +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
  8251. |:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
  8252. | ||:diagtext:`an object that undergoes default argument promotion`|| |
  8253. | |+---------------------------------------------------------------+| |
  8254. | ||:diagtext:`an object of reference type` || |
  8255. | |+---------------------------------------------------------------+| |
  8256. | ||:diagtext:`a parameter declared with the 'register' keyword` || |
  8257. | |+---------------------------------------------------------------+| |
  8258. +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
  8259. -Wvariadic-macros
  8260. -----------------
  8261. Some of the diagnostics controlled by this flag are enabled by default.
  8262. **Diagnostic text:**
  8263. +--------------------------------------------------------------------------------+
  8264. |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
  8265. +--------------------------------------------------------------------------------+
  8266. +-----------------------------------------------------------------------------------------------------------+
  8267. |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
  8268. +-----------------------------------------------------------------------------------------------------------+
  8269. +------------------------------------------------------------------------+
  8270. |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
  8271. +------------------------------------------------------------------------+
  8272. -Wvec-elem-size
  8273. ---------------
  8274. This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
  8275. **Diagnostic text:**
  8276. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8277. |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
  8278. +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8279. -Wvector-conversion
  8280. -------------------
  8281. **Diagnostic text:**
  8282. +------------------------------------------------------------------------+----------------------------------------------------------------+
  8283. |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
  8284. | ||:diagtext:`assigning to different types` ||
  8285. | |+--------------------------------------------------------------+|
  8286. | ||:diagtext:`passing to parameter of different type` ||
  8287. | |+--------------------------------------------------------------+|
  8288. | ||:diagtext:`returning from function with different return type`||
  8289. | |+--------------------------------------------------------------+|
  8290. | ||:diagtext:`converting between types` ||
  8291. | |+--------------------------------------------------------------+|
  8292. | ||:diagtext:`initializing with expression of different type` ||
  8293. | |+--------------------------------------------------------------+|
  8294. | ||:diagtext:`sending to parameter of different type` ||
  8295. | |+--------------------------------------------------------------+|
  8296. | ||:diagtext:`casting between types` ||
  8297. | |+--------------------------------------------------------------+|
  8298. +------------------------------------------------------------------------+----------------------------------------------------------------+
  8299. -Wvector-conversions
  8300. --------------------
  8301. Synonym for `-Wvector-conversion`_.
  8302. -Wvexing-parse
  8303. --------------
  8304. This diagnostic is enabled by default.
  8305. **Diagnostic text:**
  8306. +----------------------------------------------------------------------------------------------+
  8307. |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
  8308. +----------------------------------------------------------------------------------------------+
  8309. +-----------------------------------------------------------------------------------------------+
  8310. |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
  8311. +-----------------------------------------------------------------------------------------------+
  8312. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  8313. |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
  8314. +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
  8315. -Wvisibility
  8316. ------------
  8317. This diagnostic is enabled by default.
  8318. **Diagnostic text:**
  8319. +---------------------------------------------------------------------------------------------------------------------------------------------+
  8320. |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
  8321. +---------------------------------------------------------------------------------------------------------------------------------------------+
  8322. +----------------------------------------------------------------------------------------------------------------------------------------------+
  8323. |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
  8324. +----------------------------------------------------------------------------------------------------------------------------------------------+
  8325. -Wvla
  8326. -----
  8327. **Diagnostic text:**
  8328. +-----------------------------------------------------------------+
  8329. |:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
  8330. +-----------------------------------------------------------------+
  8331. -Wvla-extension
  8332. ---------------
  8333. **Diagnostic text:**
  8334. +-------------------------------------------------------------------------------+
  8335. |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
  8336. +-------------------------------------------------------------------------------+
  8337. -Wvoid-ptr-dereference
  8338. ----------------------
  8339. This diagnostic is enabled by default.
  8340. **Diagnostic text:**
  8341. +--------------------------------------------------------------------------------------------------------------------+
  8342. |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
  8343. +--------------------------------------------------------------------------------------------------------------------+
  8344. -Wvolatile-register-var
  8345. -----------------------
  8346. This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
  8347. -Wweak-template-vtables
  8348. -----------------------
  8349. **Diagnostic text:**
  8350. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8351. |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
  8352. +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8353. -Wweak-vtables
  8354. --------------
  8355. **Diagnostic text:**
  8356. +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8357. |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
  8358. +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8359. -Wwritable-strings
  8360. ------------------
  8361. This diagnostic is enabled by default.
  8362. Also controls `-Wdeprecated-writable-strings`_.
  8363. **Diagnostic text:**
  8364. +-------------------------------------------------------------------------------------------------------------------------+
  8365. |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
  8366. +-------------------------------------------------------------------------------------------------------------------------+
  8367. -Wwrite-strings
  8368. ---------------
  8369. Synonym for `-Wwritable-strings`_.
  8370. -Wzero-as-null-pointer-constant
  8371. -------------------------------
  8372. **Diagnostic text:**
  8373. +--------------------------------------------------------------------+
  8374. |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
  8375. +--------------------------------------------------------------------+
  8376. -Wzero-length-array
  8377. -------------------
  8378. **Diagnostic text:**
  8379. +------------------------------------------------------------------------+
  8380. |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
  8381. +------------------------------------------------------------------------+