123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592 |
- ..
- -------------------------------------------------------------------
- NOTE: This file is automatically generated by running clang-tblgen
- -gen-diag-docs. Do not edit this file by hand!!
- -------------------------------------------------------------------
- .. Add custom CSS to output. FIXME: This should be put into <head> rather
- than the start of <body>.
- .. raw:: html
- <style>
- table.docutils {
- width: 1px;
- }
- table.docutils td {
- border: none;
- padding: 0 0 0 0.2em;
- vertical-align: middle;
- white-space: nowrap;
- width: 1px;
- font-family: monospace;
- }
- table.docutils tr + tr {
- border-top: 0.2em solid #aaa;
- }
- .error {
- font-family: monospace;
- font-weight: bold;
- color: #c00;
- }
- .warning {
- font-family: monospace;
- font-weight: bold;
- color: #80a;
- }
- .remark {
- font-family: monospace;
- font-weight: bold;
- color: #00c;
- }
- .diagtext {
- font-family: monospace;
- font-weight: bold;
- }
- </style>
- .. FIXME: rST doesn't support formatting this, so we format all <td> elements
- as monospace font face instead.
- .. |nbsp| unicode:: 0xA0
- :trim:
- .. Roles generated by clang-tblgen.
- .. role:: error
- .. role:: warning
- .. role:: remark
- .. role:: diagtext
- .. role:: placeholder(emphasis)
- =========================
- Diagnostic flags in Clang
- =========================
- .. contents::
- :local:
- Introduction
- ============
- This page lists the diagnostic flags currently supported by Clang.
- Diagnostic flags
- ================
- -W
- --
- Synonym for `-Wextra`_.
- -W#pragma-messages
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -W#warnings
- -----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -WCFString-literal
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`|
- +------------------------------------------------------------------------------------------------------------------------------------+
- -WCL4
- -----
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wall`_, `-Wextra`_.
- -WIndependentClass-attribute
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- -WNSObject-attribute
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`|
- +--------------------------------------------------------------------------------------------------------------+
- -Wabi
- -----
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wabsolute-value
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`|
- | ||:diagtext:`pointer` || |
- | |+--------------------+| |
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`array` || |
- | |+--------------------+| |
- +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`|
- | ||:diagtext:`integer` || ||:diagtext:`integer` || |
- | |+--------------------------+| |+--------------------------+| |
- | ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| |
- | |+--------------------------+| |+--------------------------+| |
- | ||:diagtext:`complex` || ||:diagtext:`complex` || |
- | |+--------------------------+| |+--------------------------+| |
- +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+
- -Wabstract-final-class
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------+--------------------+-------------+
- |:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`|
- | ||:diagtext:`final` || |
- | |+------------------+| |
- | ||:diagtext:`sealed`|| |
- | |+------------------+| |
- +-----------------------------------------------------------------+--------------------+-------------+
- -Wabstract-vbase-init
- ---------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Waddress
- ---------
- This diagnostic is enabled by default.
- Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_.
- -Waddress-of-array-temporary
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Waddress-of-packed-member
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Waddress-of-temporary
- ----------------------
- This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------------+
- -Waggregate-return
- ------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Waligned-allocation-unavailable
- --------------------------------
- This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error.
- **Diagnostic text:**
- +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`allocation` || |
- | |+------------------------+| |
- | ||:diagtext:`deallocation`|| |
- | |+------------------------+| |
- +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wall
- -----
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_.
- -Walloca-with-align-alignof
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`|
- +--------------------------------------------------------------------------------------------------------------------+
- -Wambiguous-delete
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wambiguous-ellipsis
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+---------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+|
- | ||:diagtext:`, not a function parameter pack`||
- | |+-------------------------------------------+|
- | || ||
- | |+-------------------------------------------+|
- +------------------------------------------------------------------------------------------------+---------------------------------------------+
- -Wambiguous-macro
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------+
- -Wambiguous-member-template
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wanalyzer-incompatible-plugin
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- -Wanonymous-pack-parens
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`|
- +---------------------------------------------------------------------------------------------------------+
- -Warc
- -----
- This diagnostic is enabled by default.
- Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_.
- -Warc-bridge-casts-disallowed-in-nonarc
- ---------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`|
- +-------------------------------------------------------------------------------------------------------------+
- -Warc-maybe-repeated-use-of-weak
- --------------------------------
- **Diagnostic text:**
- +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`variable` || ||:diagtext:`function`|| |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`property` || ||:diagtext:`method` || |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
- | |+-----------------------------+| |+--------------------+| |
- +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
- -Warc-non-pod-memaccess
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`|
- | ||:diagtext:`destination for`|| |
- | |+---------------------------+| |
- | ||:diagtext:`source of` || |
- | |+---------------------------+| |
- +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
- -Warc-performSelector-leaks
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`|
- +-------------------------------------------------------------------------------------------------------+
- -Warc-repeated-use-of-weak
- --------------------------
- Also controls `-Warc-maybe-repeated-use-of-weak`_.
- **Diagnostic text:**
- +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`variable` || ||:diagtext:`function`|| |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`property` || ||:diagtext:`method` || |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`implicit property`|| ||:diagtext:`block` || |
- | |+-----------------------------+| |+--------------------+| |
- | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || |
- | |+-----------------------------+| |+--------------------+| |
- +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+
- -Warc-retain-cycles
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Warc-unsafe-retained-assign
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
- | ||:diagtext:`array literal` || ||:diagtext:`property`|| |
- | |+-------------------------------+| |+--------------------+| |
- | ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| |
- | |+-------------------------------+| |+--------------------+| |
- | ||:diagtext:`numeric literal` || | | |
- | |+-------------------------------+| | | |
- | ||:diagtext:`boxed expression` || | | |
- | |+-------------------------------+| | | |
- | ||:diagtext:`<should not happen>`|| | | |
- | |+-------------------------------+| | | |
- | ||:diagtext:`block literal` || | | |
- | |+-------------------------------+| | | |
- +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+
- +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`|
- | ||:diagtext:`weak` || ||:diagtext:`property`|| |
- | |+------------------------------+| |+--------------------+| |
- | ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| |
- | |+------------------------------+| |+--------------------+| |
- +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Warray-bounds
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
- |: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:`)`|
- | || || |
- | |+-------------+| |
- | ||:diagtext:`s`|| |
- | |+-------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`|
- +-----------------------------------------------------------------------------------+
- -Warray-bounds-pointer-arithmetic
- ---------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
- |: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:`)`|
- | || || |
- | |+-------------+| |
- | ||:diagtext:`s`|| |
- | |+-------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wasm
- -----
- This diagnostic is enabled by default.
- Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_.
- -Wasm-ignored-qualifier
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`|
- +----------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`|
- +-------------------------------------------------------------------------------------+
- -Wasm-operand-widths
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`|
- +-----------------------------------------------------------------------------------------------------------------------+
- -Wassign-enum
- -------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wassume
- --------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- -Wat-protocol
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Watomic-memory-ordering
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`|
- +-------------------------------------------------------------------------------------------+
- -Watomic-properties
- -------------------
- Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_.
- -Watomic-property-with-user-defined-accessor
- --------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
- |:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+|
- | ||:diagtext:`getter`|| ||:diagtext:`getter`||
- | |+------------------+| |+------------------+|
- | ||:diagtext:`setter`|| ||:diagtext:`setter`||
- | |+------------------+| |+------------------+|
- +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+
- -Wattribute-packed-for-bitfield
- -------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wattributes
- ------------
- This diagnostic is enabled by default.
- Controls `-Wignored-attributes`_, `-Wunknown-attributes`_.
- -Wauto-disable-vptr-sanitizer
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`|
- +------------------------------------------------------------------------------------------------------+
- -Wauto-import
- -------------
- **Diagnostic text:**
- +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`|
- | ||:diagtext:`include` || |
- | |+-------------------------------+| |
- | ||:diagtext:`import` || |
- | |+-------------------------------+| |
- | ||:diagtext:`include\_next` || |
- | |+-------------------------------+| |
- | ||:diagtext:`\_\_include\_macros`|| |
- | |+-------------------------------+| |
- +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+
- -Wauto-storage-class
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Wauto-var-id
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------+
- -Wavailability
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`|
- +--------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`|
- +------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| |
- | |+----------------------+| |+----------------------+| |
- | ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| |
- | |+----------------------+| |+----------------------+| |
- | ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || |
- | |+----------------------+| |+----------------------+| |
- +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`|
- +---------------------------------------------------------------------------------------+
- +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`|
- | || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| |
- | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
- | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || |
- | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| |
- | | | ||:diagtext:`obsoleted before` || | | |
- | | | |+-----------------------------+| | | |
- +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`|
- | || || ||:diagtext:`the protocol method it implements`|| |
- | |+------------------------------+| |+---------------------------------------------+| |
- | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || |
- | |+------------------------------+| |+---------------------------------------------+| |
- +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+
- -Wbackend-plugin
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Wbackslash-newline-escape
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`|
- +-------------------------------------------------------------------------------+
- -Wbad-function-cast
- -------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wbinary-literal
- ----------------
- Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_.
- -Wbind-to-temporary-copy
- ------------------------
- Also controls `-Wc++98-compat-bind-to-temporary-copy`_.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
- |: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| |+---------------------+|
- | ||:diagtext:`private` ||
- | |+---------------------+|
- | ||:diagtext:`protected`||
- | |+---------------------+|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
- +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`copying variable` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying parameter` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`returning object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`throwing object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying member subobject` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying array element` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`allocating object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying temporary` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`initializing base subobject`|| |
- | |+---------------------------------------+| |
- | ||:diagtext:`initializing vector element`|| |
- | |+---------------------------------------+| |
- | ||:diagtext:`capturing value` || |
- | |+---------------------------------------+| |
- +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
- -Wbitfield-constant-conversion
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wbitfield-enum-conversion
- --------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wbitfield-width
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
- |: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`|+-------------+|
- | || ||
- | |+-------------+|
- | ||:diagtext:`s`||
- | |+-------------+|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
- |: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`|+-------------+|
- | || ||
- | |+-------------+|
- | ||:diagtext:`s`||
- | |+-------------+|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+
- -Wbitwise-op-parentheses
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wblock-capture-autoreleasing
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wbool-conversion
- -----------------
- This diagnostic is enabled by default.
- Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wbool-conversions
- ------------------
- Synonym for `-Wbool-conversion`_.
- -Wbraced-scalar-init
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`|
- +-----------------------------------------------------------------------+
- -Wbridge-cast
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------+
- -Wbuiltin-macro-redefined
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`|
- +---------------------------------------------------------------+
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`|
- +---------------------------------------------------------------+
- -Wbuiltin-memcpy-chk-size
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`|
- +------------------------------------------------------------------------------------------------------+
- -Wbuiltin-requires-header
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++-compat
- ------------
- **Diagnostic text:**
- +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
- | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
- | |+-------------------------+|+------------------+| |+-------------------------+| |
- | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
- | |+-------------------------+|+------------------+| |+-------------------------+| |
- +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
- -Wc++0x-compat
- --------------
- Synonym for `-Wc++11-compat`_.
- -Wc++0x-extensions
- ------------------
- Synonym for `-Wc++11-extensions`_.
- -Wc++0x-narrowing
- -----------------
- Synonym for `-Wc++11-narrowing`_.
- -Wc++11-compat
- --------------
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
- |: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`|
- | ||:diagtext:`have type 'long long'`|| |
- | |+---------------------------------+| |
- | ||:diagtext:`be ill-formed` || |
- | |+---------------------------------+| |
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`|
- +--------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`|
- +-------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`|
- +--------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
- |: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`|
- | ||:diagtext:`have type 'long long'`|| |
- | |+---------------------------------+| |
- | ||:diagtext:`be ill-formed` || |
- | |+---------------------------------+| |
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+
- -Wc++11-compat-deprecated-writable-strings
- ------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
- +---------------------------------------------------------------------------------------------------------------------------------+
- -Wc++11-compat-pedantic
- -----------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- -Wc++11-compat-reserved-user-defined-literal
- --------------------------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wc++11-extensions
- ------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`|
- +-------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`integral` || |
- | |+-----------------------+| |
- | ||:diagtext:`enumeration`|| |
- | |+-----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`|
- +---------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
- +-----------------------------------------------------------------------------------------------------------+
- +---------------------------+-----------------------+--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`|
- | ||:diagtext:`defaulted`|| |
- | |+---------------------+| |
- | ||:diagtext:`deleted` || |
- | |+---------------------+| |
- +---------------------------+-----------------------+--------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
- +--------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`|
- +------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
- +-----------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`|
- +--------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`|
- +------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`|
- +---------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`|
- +-------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`|
- +--------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`|
- +----------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`|
- +------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`|
- +--------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`object` || |
- | |+--------------------+| |
- +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`|
- +-------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`|
- +---------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`class template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`class template partial` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template partial`|| |
- | |+-------------------------------------+| |
- | ||:diagtext:`function template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member function` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`static data member` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member class` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member enumeration` || |
- | |+-------------------------------------+| |
- +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`|
- +------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`|
- | ||:diagtext:`struct` || |
- | |+---------------------+| |
- | ||:diagtext:`interface`|| |
- | |+---------------------+| |
- | ||:diagtext:`union` || |
- | |+---------------------+| |
- | ||:diagtext:`class` || |
- | |+---------------------+| |
- | ||:diagtext:`enum` || |
- | |+---------------------+| |
- +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`|
- +-------------------------------------------------------------------------------+
- -Wc++11-extra-semi
- ------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`|
- +-------------------------------------------------------------------------------------------+
- -Wc++11-inline-namespace
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`|
- +----------------------------------------------------------------------------+
- -Wc++11-long-long
- -----------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`|
- +-----------------------------------------------------------------------+
- -Wc++11-narrowing
- -----------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
- | |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| ||
- | ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ ||
- | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+||
- | |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`|||
- | ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+||
- | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`constexpr if condition` || | |
- | |+--------------------------------------+| | |
- +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++14-binary-literal
- ----------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`|
- +------------------------------------------------------------------------------------+
- -Wc++14-compat
- --------------
- Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_.
- -Wc++14-compat-pedantic
- -----------------------
- Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_.
- -Wc++14-extensions
- ------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wc++14-binary-literal`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`|
- +------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`|
- +-------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`|
- +----------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`|
- +-------------------------------------------------------------------------------+
- -Wc++17-compat
- --------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_.
- -Wc++17-compat-mangling
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++17-compat-pedantic
- -----------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_.
- -Wc++17-extensions
- ------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`|
- +------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`|
- +---------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`|
- +---------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`|
- +--------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
- +----------------------------------------------------------------------------------------+
- +----------------------------------------+--------------------+-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`|
- | ||:diagtext:`if` || |
- | |+------------------+| |
- | ||:diagtext:`switch`|| |
- | |+------------------+| |
- +----------------------------------------+--------------------+-------------------------------------------------------------+
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`|
- +-----------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`|
- +---------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
- | ||:diagtext:`a namespace` || |
- | |+-------------------------+| |
- | ||:diagtext:`an enumerator`|| |
- | |+-------------------------+| |
- +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`|
- +---------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`|
- +------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`|
- +--------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`|
- +--------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`|
- +-----------------------------------------------------------------------------------------------+
- -Wc++1y-extensions
- ------------------
- Synonym for `-Wc++14-extensions`_.
- -Wc++1z-compat
- --------------
- Synonym for `-Wc++17-compat`_.
- -Wc++1z-compat-mangling
- -----------------------
- Synonym for `-Wc++17-compat-mangling`_.
- -Wc++1z-extensions
- ------------------
- Synonym for `-Wc++17-extensions`_.
- -Wc++2a-compat
- --------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`|
- +-------------------------------------------------------------------------------------------+
- -Wc++2a-compat-pedantic
- -----------------------
- Synonym for `-Wc++2a-compat`_.
- -Wc++2a-extensions
- ------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`|
- +----------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`|
- +--------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
- +--------------------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-c++14-c++17-compat
- --------------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`|
- +-------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-c++14-c++17-compat-pedantic
- -----------------------------------------
- Also controls `-Wc++98-c++11-c++14-c++17-compat`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-c++14-compat
- --------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`|
- +---------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`|
- +----------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`|
- +------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`|
- +-----------------------------------------------------------------------------------------------------------+
- +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`|
- | ||:diagtext:`if` || |
- | |+------------------+| |
- | ||:diagtext:`switch`|| |
- | |+------------------+| |
- +---------------------------+--------------------+----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`|
- +--------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`|
- +------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`|
- +-------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`|
- +---------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`|
- +-----------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-c++14-compat-pedantic
- -----------------------------------
- Also controls `-Wc++98-c++11-c++14-compat`_.
- **Diagnostic text:**
- +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`|
- | ||:diagtext:`a namespace` || |
- | |+-------------------------+| |
- | ||:diagtext:`an enumerator`|| |
- | |+-------------------------+| |
- +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`|
- +---------------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-compat
- --------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`|
- +----------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`|
- +--------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`|
- +-------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`|
- +----------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-compat-binary-literal
- -----------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wc++98-c++11-compat-pedantic
- -----------------------------
- Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_.
- -Wc++98-compat
- --------------
- 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`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`|
- +-------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`|
- +---------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`|
- +--------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`|
- +----------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`|
- +---------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`|
- +---------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------+
- +---------------------------+-----------------------+--------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`|
- | ||:diagtext:`defaulted`|| |
- | |+---------------------+| |
- | ||:diagtext:`deleted` || |
- | |+---------------------+| |
- +---------------------------+-----------------------+--------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`|
- +------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`|
- +----------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`|
- +-----------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`|
- +-----------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`|
- +------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`|
- +--------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`|
- +------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`|
- +------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`|
- +------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`|
- +------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`|
- +-------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`|
- +-----------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`|
- +------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`|
- +------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`|
- +---------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------------------+
- +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
- |:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`|
- | ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || |
- | |+----------------------------+| |+------------------------------------+| |
- | ||:diagtext:`union` || ||:diagtext:`copy constructor` || |
- | |+----------------------------+| |+------------------------------------+| |
- | | | ||:diagtext:`move constructor` || |
- | | | |+------------------------------------+| |
- | | | ||:diagtext:`copy assignment operator`|| |
- | | | |+------------------------------------+| |
- | | | ||:diagtext:`move assignment operator`|| |
- | | | |+------------------------------------+| |
- | | | ||:diagtext:`destructor` || |
- | | | |+------------------------------------+| |
- +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`|
- +---------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
- |: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`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`block` || |
- | |+-----------------------+| |
- | ||:diagtext:`method` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`|
- +--------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`|
- +----------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`|
- +------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`|
- +--------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`|
- +------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`|
- +----------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`object` || |
- | |+--------------------+| |
- +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`|
- +-----------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------------+
- +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`|
- | ||:diagtext:`class template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`class template partial` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template partial`|| |
- | |+-------------------------------------+| |
- | ||:diagtext:`function template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member function` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`static data member` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member class` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member enumeration` || |
- | |+-------------------------------------+| |
- +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`|
- +----------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`|
- +---------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`|
- | ||:diagtext:`struct` || |
- | |+---------------------+| |
- | ||:diagtext:`interface`|| |
- | |+---------------------+| |
- | ||:diagtext:`union` || |
- | |+---------------------+| |
- | ||:diagtext:`class` || |
- | |+---------------------+| |
- | ||:diagtext:`enum` || |
- | |+---------------------+| |
- +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`|
- +-----------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`|
- +------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`|
- +-------------------------------------------------------------------------------------+
- -Wc++98-compat-bind-to-temporary-copy
- -------------------------------------
- **Diagnostic text:**
- +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
- |: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`|
- | ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| |
- | |+---------------------------------------+| |+----------------------------------------------+| |
- | ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || |
- | |+---------------------------------------+| |+----------------------------------------------+| |
- | ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || |
- | |+---------------------------------------+| |+----------------------------------------------+| |
- | ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || |
- | |+---------------------------------------+| |+----------------------------------------------+| |
- | ||:diagtext:`copying member subobject` || | | |
- | |+---------------------------------------+| | | |
- | ||:diagtext:`copying array element` || | | |
- | |+---------------------------------------+| | | |
- | ||:diagtext:`allocating object` || | | |
- | |+---------------------------------------+| | | |
- | ||:diagtext:`copying temporary` || | | |
- | |+---------------------------------------+| | | |
- | ||:diagtext:`initializing base subobject`|| | | |
- | |+---------------------------------------+| | | |
- | ||:diagtext:`initializing vector element`|| | | |
- | |+---------------------------------------+| | | |
- +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+
- -Wc++98-compat-local-type-template-args
- ---------------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- -Wc++98-compat-pedantic
- -----------------------
- 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`_.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`integral` || |
- | |+-----------------------+| |
- | ||:diagtext:`enumeration`|| |
- | |+-----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`|
- +------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`|
- +----------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`|
- +-----------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`|
- +-----------------------------------------------------------------------------+
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`|
- +----------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`|
- +-------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`|
- +----------------------------------------------------------------------------------+
- -Wc++98-compat-unnamed-type-template-args
- -----------------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`|
- +---------------------------------------------------------------------------------------------------+
- -Wc11-extensions
- ----------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`|
- +---------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`|
- +----------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`|
- +----------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`|
- +------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`|
- +--------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`|
- +---------------------------------------------------------------------------------+
- -Wc99-compat
- ------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +---------------------------+--------------------------------------------------------+--------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`|
- | ||:diagtext:`using this character in an identifier` || |
- | |+------------------------------------------------------+| |
- | ||:diagtext:`starting an identifier with this character`|| |
- | |+------------------------------------------------------+| |
- +---------------------------+--------------------------------------------------------+--------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`|
- +---------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
- |: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`|
- | ||:diagtext:`have type 'long long'`|| |
- | |+---------------------------------+| |
- | ||:diagtext:`be ill-formed` || |
- | |+---------------------------------+| |
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+
- -Wc99-extensions
- ----------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
- +-----------------------------------------------------------------------------------------------+
- +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
- | ||:diagtext:`qualifier in` |nbsp| || || || |
- | |+--------------------------------+| |+---------------------+| |
- | ||:diagtext:`static` |nbsp| || || || |
- | |+--------------------------------+| |+---------------------+| |
- | || || ||:diagtext:`'\[\*\] '`|| |
- | |+--------------------------------+| |+---------------------+| |
- +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
- +-----------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
- +-------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
- +-------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`|
- +---------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
- +--------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
- +------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
- +-------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
- +---------------------------------------------------------------------------------------+
- -Wcast-align
- ------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wcast-calling-convention
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wcast-of-sel-type
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wcast-qual
- -----------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+|
- | ||:diagtext:`const and volatile qualifiers`||
- | |+-----------------------------------------+|
- | ||:diagtext:`const qualifier` ||
- | |+-----------------------------------------+|
- | ||:diagtext:`volatile qualifier` ||
- | |+-----------------------------------------+|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wchar-align
- ------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wchar-subscripts
- -----------------
- **Diagnostic text:**
- +------------------------------------------------------------+-------------------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`|
- | ||:diagtext:`lower bound`|| |
- | |+-----------------------+| |
- | ||:diagtext:`length` || |
- | |+-----------------------+| |
- +------------------------------------------------------------+-------------------------+-------------------------------------+
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`|
- +------------------------------------------------------------------------+
- -Wclang-cl-pch
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wclass-varargs
- ---------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wnon-pod-varargs`_.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+|
- | ||:diagtext:`function` ||| ||
- | |+-----------------------+|+--------------------------------------------------------------------+|
- | ||:diagtext:`block` |||+------------------------------------------------------------------+||
- | |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`|||
- | ||:diagtext:`method` |||+------------------------------------------------------------------+||
- | |+-----------------------+|+--------------------------------------------------------------------+|
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+
- -Wcomma
- -------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`|
- +-----------------------------------------------------------------------------+
- -Wcomment
- ---------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`|
- +--------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
- +-----------------------------------------------------------------------------------+
- +------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
- +------------------------------------------------------------+
- +-----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`|
- +-----------------------------------------------------------------+
- -Wcomments
- ----------
- Synonym for `-Wcomment`_.
- -Wcompare-distinct-pointer-types
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`|
- +---------------------------------------------------------------------------+
- -Wcomplex-component-init
- ------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`|
- +----------------------------------------------------------------------------------------------------------------------+
- -Wconditional-type-mismatch
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`|
- +----------------------------------------------------------------------------------------------+
- -Wconditional-uninitialized
- ---------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+|
- | ||:diagtext:`used here` ||
- | |+-----------------------------+|
- | ||:diagtext:`captured by block`||
- | |+-----------------------------+|
- +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+
- -Wconfig-macros
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
- |: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`|
- | ||:diagtext:`definition`|| ||+----------------------------------------------+|| |
- | |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| |
- | ||:diagtext:`#undef` || ||+----------------------------------------------+|| |
- | |+----------------------+| |+------------------------------------------------+| |
- | | | ||+------------------------------+ || |
- | | | |||:diagtext:`-U`:placeholder:`B`| || |
- | | | ||+------------------------------+ || |
- | | | |+------------------------------------------------+| |
- +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+
- -Wconstant-conversion
- ---------------------
- This diagnostic is enabled by default.
- Also controls `-Wbitfield-constant-conversion`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wconstant-logical-operand
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`|
- +----------------------------------------------------------------------------------------------------------+
- -Wconstexpr-not-const
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wconsumed
- ----------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wconversion
- ------------
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wconversion-null
- -----------------
- Synonym for `-Wnull-conversion`_.
- -Wcoroutine
- -----------
- Synonym for `-Wcoroutine-missing-unhandled-exception`_.
- -Wcoroutine-missing-unhandled-exception
- ---------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wcovered-switch-default
- ------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`|
- +--------------------------------------------------------------------------------------------------+
- -Wcpp
- -----
- Synonym for `-W#warnings`_.
- -Wcstring-format-directive
- --------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
- |: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| |+----------------------+|
- | ||:diagtext:`NSString`|| ||:diagtext:`method` ||
- | |+--------------------+| |+----------------------+|
- | ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`||
- | |+--------------------+| |+----------------------+|
- +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+
- -Wctor-dtor-privacy
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wcuda-compat
- -------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`|
- +---------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`|
- +--------------------------------------------------------------------------------------------------------------+
- -Wcustom-atomic-properties
- --------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
- |: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)`|
- | ||:diagtext:`getter`|| |
- | |+------------------+| |
- | ||:diagtext:`setter`|| |
- | |+------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+
- -Wdangling-else
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`|
- +---------------------------------------------------------------------------------+
- -Wdangling-field
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`|
- | || || |
- | |+--------------------------------+| |
- | ||:diagtext:`subobject of` |nbsp| || |
- | |+--------------------------------+| |
- +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wdangling-initializer-list
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+|
- | ||:diagtext:`the full-expression`||
- | |+-------------------------------+|
- | ||:diagtext:`the constructor` ||
- | |+-------------------------------+|
- +-----------------------------------------------------------------------------------------------------------------+---------------------------------+
- -Wdate-time
- -----------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`|
- +------------------------------------------------------------------------------------------+
- -Wdealloc-in-category
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`|
- +---------------------------------------------------------------------------------+
- -Wdebug-compression-unavailable
- -------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`|
- +------------------------------------------------------------------------------------------+
- -Wdeclaration-after-statement
- -----------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`|
- +-----------------------------------------------------------------------------------+
- -Wdelegating-ctor-cycles
- ------------------------
- This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`|
- +------------------------------------------------------------------------------------------------------------------------+
- -Wdelete-incomplete
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wdelete-non-virtual-dtor
- -------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`|
- | ||:diagtext:`delete` || |
- | |+----------------------+| |
- | ||:diagtext:`destructor`|| |
- | |+----------------------+| |
- +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`|
- | ||:diagtext:`delete` || |
- | |+----------------------+| |
- | ||:diagtext:`destructor`|| |
- | |+----------------------+| |
- +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated
- ------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_.
- **Diagnostic text:**
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`|
- +---------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`|
- +---------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
- |: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| |+------------------------------------------------------------+|
- | ||:diagtext:`constructor` || ||+------------------------+---------------------------------+||
- | |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+|||
- | ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`||||
- | |+-------------------------------+| ||| |+-------------------------------+|||
- | | | ||| ||:diagtext:`constructor` ||||
- | | | ||| |+-------------------------------+|||
- | | | ||+------------------------+---------------------------------+||
- | | | |+------------------------------------------------------------+|
- | | | ||:diagtext:`destructor` ||
- | | | |+------------------------------------------------------------+|
- +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`|
- +------------------------------------------------------------------------------------+
- -Wdeprecated-attributes
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-declarations
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`|
- +--------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`|
- +-----------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`|
- +----------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`|
- +---------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-dynamic-exception-spec
- -----------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`|
- +--------------------------------------------------------------------------------------+
- -Wdeprecated-implementations
- ----------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------+----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+|
- | ||:diagtext:`method` ||
- | |+--------------------+|
- | ||:diagtext:`class` ||
- | |+--------------------+|
- | ||:diagtext:`category`||
- | |+--------------------+|
- +----------------------------------------------------------------------+----------------------+
- +----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`|
- +----------------------------------------------------------------------+
- -Wdeprecated-increment-bool
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`|
- +---------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-objc-isa-usage
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`|
- +-------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`|
- +----------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-objc-pointer-introspection
- ---------------------------------------
- This diagnostic is enabled by default.
- Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
- +--------------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-objc-pointer-introspection-performSelector
- -------------------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`|
- +--------------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-register
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Wdeprecated-writable-strings
- -----------------------------
- Synonym for `-Wc++11-compat-deprecated-writable-strings`_.
- -Wdirect-ivar-access
- --------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`|
- +------------------------------------------------------------------------------------------------------------------------------+
- -Wdisabled-macro-expansion
- --------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`|
- +----------------------------------------------------------------------------+
- -Wdisabled-optimization
- -----------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wdiscard-qual
- --------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wdistributed-object-modifiers
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wdiv-by-zero
- -------------
- Synonym for `-Wdivision-by-zero`_.
- -Wdivision-by-zero
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-----------------------+----------------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`|
- | ||:diagtext:`remainder`|| |
- | |+---------------------+| |
- | ||:diagtext:`division` || |
- | |+---------------------+| |
- +---------------------------+-----------------------+----------------------------------------+
- -Wdll-attribute-on-redeclaration
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wdllexport-explicit-instantiation-decl
- ---------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`|
- +---------------------------------------------------------------------------------------------------+
- -Wdllimport-static-field-def
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`|
- +---------------------------------------------------------------------------+
- -Wdocumentation
- ---------------
- Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_.
- **Diagnostic text:**
- +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`|
- | ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || |
- | |+--------------+|+---------------------+| |+---------------------+| |
- | ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| |
- | |+--------------+|+---------------------+| |+---------------------+| |
- | | ||:diagtext:`protocol` || ||:diagtext:`protocol` || |
- | | |+---------------------+| |+---------------------+| |
- | | ||:diagtext:`struct` || ||:diagtext:`struct` || |
- | | |+---------------------+| |+---------------------+| |
- | | ||:diagtext:`union` || ||:diagtext:`union` || |
- | | |+---------------------+| |+---------------------+| |
- +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+
- +-----------------------------------------------------------+----------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +-----------------------------------------------------------+----------------+-----------------------------+
- +------------------------------------------------------------------+----------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +------------------------------------------------------------------+----------------+-------------------------------------+
- +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`|
- | ||:diagtext:`\\`|||:diagtext:`classdesign` || |
- | |+--------------+|+------------------------+| |
- | ||:diagtext:`@` |||:diagtext:`coclass` || |
- | |+--------------+|+------------------------+| |
- | | ||:diagtext:`dependency` || |
- | | |+------------------------+| |
- | | ||:diagtext:`helper` || |
- | | |+------------------------+| |
- | | ||:diagtext:`helperclass` || |
- | | |+------------------------+| |
- | | ||:diagtext:`helps` || |
- | | |+------------------------+| |
- | | ||:diagtext:`instancesize`|| |
- | | |+------------------------+| |
- | | ||:diagtext:`ownership` || |
- | | |+------------------------+| |
- | | ||:diagtext:`performance` || |
- | | |+------------------------+| |
- | | ||:diagtext:`security` || |
- | | |+------------------------+| |
- | | ||:diagtext:`superclass` || |
- | | |+------------------------+| |
- +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+
- +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`|
- | ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || |
- | |+--------------+|+-------------------------+| |+---------------------------------+| |
- | ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || |
- | |+--------------+|+-------------------------+| |+---------------------------------+| |
- | | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| |
- | | |+-------------------------+| |+---------------------------------+| |
- | | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| |
- | | |+-------------------------+| |+---------------------------------+| |
- | | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| |
- | | |+-------------------------+| |+---------------------------------+| |
- +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`|
- +-------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`|
- +-------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`|
- +-----------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`|
- +---------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+|
- | ||:diagtext:`\\`|| ||:diagtext:`function returning void`||
- | |+--------------+| |+-----------------------------------+|
- | ||:diagtext:`@` || ||:diagtext:`constructor` ||
- | |+--------------+| |+-----------------------------------+|
- | | | ||:diagtext:`destructor` ||
- | | | |+-----------------------------------+|
- | | | ||:diagtext:`method returning void` ||
- | | | |+-----------------------------------+|
- +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+
- +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`|
- +--------------------------------------------------------------------------------------------------------------+
- +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`|
- +---------------------------------------------------------------------+
- +----------------------------------------+----------------+------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`|
- | ||:diagtext:`\\`|| |
- | |+--------------+| |
- | ||:diagtext:`@` || |
- | |+--------------+| |
- +----------------------------------------+----------------+------------------------------------------------------------------------------+
- -Wdocumentation-deprecated-sync
- -------------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wdocumentation-html
- --------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`|
- +-----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`|
- +--------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`|
- +--------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wdocumentation-pedantic
- ------------------------
- Also controls `-Wdocumentation-unknown-command`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`|
- +-----------------------------------------------------------------------------------------------+
- -Wdocumentation-unknown-command
- -------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`|
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`|
- +---------------------------------------------------------------+
- -Wdollar-in-identifier-extension
- --------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`|
- +--------------------------------------------------------+
- -Wdouble-promotion
- ------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wduplicate-decl-specifier
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
- +-----------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`|
- +-----------------------------------------------------------------------------------------------------+
- -Wduplicate-enum
- ----------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wduplicate-method-arg
- ----------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------+
- -Wduplicate-method-match
- ------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- -Wduplicate-protocol
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wdynamic-class-memaccess
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
- |: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| |+-----------------------+|
- | ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`||
- | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
- | ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` ||
- | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+|
- | ||:diagtext:`first operand of` || | | ||:diagtext:`moved` ||
- | |+-----------------------------+| | | |+-----------------------+|
- | ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` ||
- | |+-----------------------------+| | | |+-----------------------+|
- +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+
- -Wdynamic-exception-spec
- ------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wdeprecated-dynamic-exception-spec`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`|
- +--------------------------------------------------------------------------------------------+
- -Weffc++
- --------
- Synonym for `-Wnon-virtual-dtor`_.
- -Wembedded-directive
- --------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`|
- +----------------------------------------------------------------------------------------------------------+
- -Wempty-body
- ------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`|
- +--------------------------------------------------------------+
- +------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`|
- +------------------------------------------------------------------+
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`|
- +--------------------------------------------------------------------------+
- +----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`|
- +----------------------------------------------------------------------+
- +----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`|
- +----------------------------------------------------------------+
- -Wempty-decomposition
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`|
- +-------------------------------------------------------------------------------------------------+
- -Wempty-translation-unit
- ------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`|
- +------------------------------------------------------------------------------------------------------------+
- -Wencode-type
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wendif-labels
- --------------
- Synonym for `-Wextra-tokens`_.
- -Wenum-compare
- --------------
- This diagnostic is enabled by default.
- Also controls `-Wenum-compare-switch`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`|
- +------------------------------------------------------------------------------------------------+
- -Wenum-compare-switch
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`|
- +--------------------------------------------------------------------------------------------------------------------+
- -Wenum-conversion
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wenum-too-large
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`|
- +-----------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wexceptions
- ------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`|
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- | ||:diagtext:`destructor` || |
- | |+-----------------------+| |
- +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wexit-time-destructors
- -----------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`|
- +-----------------------------------------------------------------------------------+
- -Wexpansion-to-defined
- ----------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
- +-------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
- +-------------------------------------------------------------------------------------------------+
- -Wexplicit-initialize-call
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`|
- +------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`|
- +----------------------------------------------------------------------------------------------------------------------------+
- -Wexplicit-ownership-type
- -------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wextended-offsetof
- -------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`|
- +--------------------------------------------------------------------------------------+
- -Wextern-c-compat
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`|
- | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || |
- | |+-------------------------+|+------------------+| |+-------------------------+| |
- | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| |
- | |+-------------------------+|+------------------+| |+-------------------------+| |
- +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+
- -Wextern-initializer
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`|
- +---------------------------------------------------------------------------+
- -Wextra
- -------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wextra-qualification
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------+
- -Wextra-semi
- ------------
- Also controls `-Wc++11-extra-semi`_.
- **Diagnostic text:**
- +--------------------------------------------------------+------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
- | ||:diagtext:`outside of a function` ||
- | |+----------------------------------------------+|
- | ||+--------------------------------------------+||
- | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
- | ||+--------------------------------------------+||
- | |+----------------------------------------------+|
- | ||:diagtext:`inside instance variable list` ||
- | |+----------------------------------------------+|
- | ||:diagtext:`after member function definition` ||
- | |+----------------------------------------------+|
- +--------------------------------------------------------+------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`|
- +---------------------------------------------------------------------------------+
- -Wextra-tokens
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`|
- +------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`|
- +-------------------------------------------------------------------------------------------------------------------------------+
- -Wfallback
- ----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------+
- -Wflag-enum
- -----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wflexible-array-extensions
- ---------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`|
- +-------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`|
- +-------------------------------------------------------------------------------------------------------------------------+
- -Wfloat-conversion
- ------------------
- Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wfloat-equal
- -------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`|
- +---------------------------------------------------------------------------------------+
- -Wfloat-overflow-conversion
- ---------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wfloat-zero-conversion
- -----------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wfor-loop-analysis
- -------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`|
- | ||:diagtext:`decremented`|| |
- | |+-----------------------+| |
- | ||:diagtext:`incremented`|| |
- | |+-----------------------+| |
- +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+
- +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`|
- | ||:diagtext:`s` || |
- | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
- | ||+------------------------+ || |
- | ||| |nbsp| :placeholder:`B`| || |
- | ||+------------------------+ || |
- | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
- | ||+------------------------------------------------------------------------------------+ || |
- | |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || |
- | ||+------------------------------------------------------------------------------------+ || |
- | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
- | ||+-------------------------------------------------------------------------------------------------------------------+ || |
- | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || |
- | ||+-------------------------------------------------------------------------------------------------------------------+ || |
- | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
- | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
- | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| |
- | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
- | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |
- +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+
- -Wformat
- --------
- This diagnostic is enabled by default.
- Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`|
- +-------------------------------------------------------------------------------------+
- +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`values of type` || |
- | |+--------------------------------------------+| |
- | ||:diagtext:`enum values with underlying type`|| |
- | |+--------------------------------------------+| |
- +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
- | ||:diagtext:`type` || |
- | |+---------------------------+| |
- | ||:diagtext:`underlying type`|| |
- | |+---------------------------+| |
- +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+|
- | ||:diagtext:`field width` ||
- | |+---------------------------+|
- | ||:diagtext:`field precision`||
- | |+---------------------------+|
- +-----------------------------------------------------------------------------+-----------------------------+
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`|
- +----------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`|
- +--------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`|
- +-------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string missing`|
- +------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`|
- | ||:diagtext:`\*` || ||:diagtext:`width` || |
- | |+---------------+| |+---------------------+| |
- | ||:diagtext:`.\*`|| ||:diagtext:`precision`|| |
- | |+---------------+| |+---------------------+| |
- +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+
- +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`|
- | ||:diagtext:`width` || |
- | |+---------------------+| |
- | ||:diagtext:`precision`|| |
- | |+---------------------+| |
- +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing object format flag`|
- +-----------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`|
- +------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`|
- +---------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`|
- +------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`|
- +--------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`|
- +-------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`|
- | ||:diagtext:`field width`|| |
- | |+-----------------------+| |
- | ||:diagtext:`precision` || |
- | |+-----------------------+| |
- +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`|
- +----------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`|
- +----------------------------------------------------------------------------------------+
- -Wformat-extra-args
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`|
- +------------------------------------------------------------------------------+
- -Wformat-invalid-specifier
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------+
- -Wformat-non-iso
- ----------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`|
- | ||:diagtext:`length modifier` || |
- | |+--------------------------------+| |
- | ||:diagtext:`conversion specifier`|| |
- | |+--------------------------------+| |
- +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`|
- +--------------------------------------------------------------------------------------+
- -Wformat-nonliteral
- -------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`|
- +----------------------------------------------------------------------------+
- -Wformat-pedantic
- -----------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`|
- | ||:diagtext:`type` || |
- | |+---------------------------+| |
- | ||:diagtext:`underlying type`|| |
- | |+---------------------------+| |
- +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+
- -Wformat-security
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`|
- +---------------------------------------------------------------------------------------------------+
- -Wformat-y2k
- ------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wformat-zero-length
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`format string is empty`|
- +-------------------------------------------------------------+
- -Wformat=2
- ----------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_.
- -Wfour-char-constants
- ---------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
- +-------------------------------------------------------------------------+
- -Wframe-larger-than=
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- -Wfunction-def-in-objc-container
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`|
- +--------------------------------------------------------------------------------------------------------+
- -Wfuture-compat
- ---------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wgcc-compat
- ------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
- +--------------------------------------------------------------------------+
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
- +------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`|
- +-----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`|
- +---------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`|
- +-----------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wglobal-constructors
- ---------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`|
- +--------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`|
- +-------------------------------------------------------------------------------+
- -Wgnu
- -----
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- -Wgnu-alignof-expression
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`|
- +----------------------------------------------------------------------------------------------------------+
- -Wgnu-anonymous-struct
- ----------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`|
- +----------------------------------------------------------------------------+
- -Wgnu-array-member-paren-init
- -----------------------------
- This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`|
- +----------------------------------------------------------------------------------------------------+
- -Wgnu-auto-type
- ---------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`|
- +--------------------------------------------------------------------------+
- -Wgnu-binary-literal
- --------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`|
- +----------------------------------------------------------------------------------+
- -Wgnu-case-range
- ----------------
- **Diagnostic text:**
- +----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`|
- +----------------------------------------------------------------------+
- -Wgnu-complex-integer
- ---------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`|
- +--------------------------------------------------------------------------------+
- -Wgnu-compound-literal-initializer
- ----------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wgnu-conditional-omitted-operand
- ---------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`|
- +--------------------------------------------------------------------------------------------------------------+
- -Wgnu-designator
- ----------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
- +-----------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`|
- +-------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`|
- +--------------------------------------------------------------------------------------+
- -Wgnu-empty-initializer
- -----------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`|
- +-----------------------------------------------------------------------------+
- -Wgnu-empty-struct
- ------------------
- **Diagnostic text:**
- +----------------------------------------------------+--------------------+--------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +----------------------------------------------------+--------------------+--------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`|
- | ||:diagtext:`struct` || |
- | |+---------------------+| |
- | ||:diagtext:`interface`|| |
- | |+---------------------+| |
- | ||:diagtext:`union` || |
- | |+---------------------+| |
- | ||:diagtext:`class` || |
- | |+---------------------+| |
- | ||:diagtext:`enum` || |
- | |+---------------------+| |
- +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+
- +---------------------------+--------------------+------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +---------------------------+--------------------+------------------------------------------------------------+
- -Wgnu-flexible-array-initializer
- --------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`|
- +---------------------------------------------------------------------------------------+
- -Wgnu-flexible-array-union-member
- ---------------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wgnu-folding-constant
- ----------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`|
- | ||:diagtext:`integer` || |
- | |+--------------------+| |
- | ||:diagtext:`integral`|| |
- | |+--------------------+| |
- +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`|
- +-----------------------------------------------------------------------------------------------------+
- -Wgnu-imaginary-constant
- ------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`|
- +------------------------------------------------------------------------------+
- -Wgnu-include-next
- ------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`|
- +-----------------------------------------------------------------------------+
- -Wgnu-label-as-value
- --------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`|
- +----------------------------------------------------------------------------+
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`|
- +-------------------------------------------------------------------------+
- -Wgnu-redeclared-enum
- ---------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- -Wgnu-statement-expression
- --------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`|
- +--------------------------------------------------------------------------------+
- -Wgnu-static-float-init
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wgnu-string-literal-operator-template
- --------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`|
- +--------------------------------------------------------------------------------------------+
- -Wgnu-union-cast
- ----------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`|
- +----------------------------------------------------------------------------+
- -Wgnu-variable-sized-type-not-at-end
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wgnu-zero-line-directive
- -------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`|
- +--------------------------------------------------------------------------------------------+
- -Wgnu-zero-variadic-macro-arguments
- -----------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`|
- +---------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`|
- +---------------------------------------------------------------------------------------------------+
- -Wheader-guard
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- -Wheader-hygiene
- ----------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`|
- +--------------------------------------------------------------------------------------------+
- -Widiomatic-parentheses
- -----------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wignored-attributes
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`alias`|| |
- | |+-----------------+| |
- | ||:diagtext:`ifunc`|| |
- | |+-----------------+| |
- +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
- |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+|
- | ||:diagtext:`alias`|| ||:diagtext:`aliasee` ||
- | |+-----------------+| |+--------------------+|
- | ||:diagtext:`ifunc`|| ||:diagtext:`resolver`||
- | |+-----------------+| |+--------------------+|
- +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+
- +----------------------------------------------------------------------+------------------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`|
- | ||:diagtext:`non-inline`|| |
- | |+----------------------+| |
- | ||:diagtext:`anonymous` || |
- | |+----------------------+| |
- +----------------------------------------------------------------------+------------------------+-------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`|
- +-----------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`|
- +--------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`|
- +---------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`|
- +-------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`|
- +-----------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`|
- +--------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`|
- | || || |
- | |+----------------------------+| |
- | || |nbsp| :diagtext:`constant`|| |
- | |+----------------------------+| |
- +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`|
- +------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`|
- +------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`|
- +------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+-----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+|
- | ||:diagtext:`functions`||
- | |+---------------------+|
- | ||:diagtext:`blocks` ||
- | |+---------------------+|
- +-----------------------------------------------------------------------------------------------+-----------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`|
- +------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`|
- | ||:diagtext:`functions` || |
- | |+------------------------------+| |
- | ||:diagtext:`Objective-C method`|| |
- | |+------------------------------+| |
- +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`|
- +----------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`unions` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables and functions` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions and global variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, variables, and Objective-C interfaces` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions and methods` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`parameters` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods and blocks` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, and classes` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, and parameters` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, and global variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`classes` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`enums` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`methods` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`fields and global variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`structs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`parameters and typedefs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables and typedefs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`thread-local variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables and fields` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables, data members and tag types` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`types and namespaces` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`Objective-C interfaces` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`methods and properties` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, and properties` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`struct or union` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`struct, union or class` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`types` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`Objective-C instance methods` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`init methods of interface or class extension declarations` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables, functions and classes` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, variables, classes, and Objective-C interfaces` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`Objective-C protocols` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables with static or thread storage duration` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, properties, and global variables` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`structs, unions, and typedefs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`structs and typedefs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`interface or protocol declarations` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`kernel functions` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`non-K&R-style functions` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables, enums, fields and typedefs` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`functions, methods, enums, and classes` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`structs, classes, variables, functions, and inline namespaces` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`classes and enumerations` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`named declarations` ||
- | |+----------------------------------------------------------------------------------------------------------------+|
- +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`|
- +-------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`|
- +--------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`|
- | ||:diagtext:`class` || |
- | |+---------------------+| |
- | ||:diagtext:`struct` || |
- | |+---------------------+| |
- | ||:diagtext:`interface`|| |
- | |+---------------------+| |
- | ||:diagtext:`union` || |
- | |+---------------------+| |
- | ||:diagtext:`enum` || |
- | |+---------------------+| |
- +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`|
- +--------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`|
- +--------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`|
- +------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------+------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+|
- | ||:diagtext:`primary template` ||
- | |+----------------------------------+|
- | ||:diagtext:`partial specialization`||
- | |+----------------------------------+|
- +---------------------------------------------------------------------------+------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`|
- +--------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`|
- +--------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------+----------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+|
- | ||:diagtext:`no parameters` ||
- | |+--------------------------------+|
- | ||:diagtext:`a 'void' return type`||
- | |+--------------------------------+|
- +-------------------------------------------------------------------------------------------------------------+----------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`|
- | ||:diagtext:`Objective-C object` || |
- | |+---------------------------------+| |
- | ||:diagtext:`pointer` || |
- | |+---------------------------------+| |
- | ||:diagtext:`pointer-to-CF-pointer`|| |
- | |+---------------------------------+| |
- +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+
- +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+|
- | ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` ||
- | |+----------------------+| |+------------------------------------+|
- | ||:diagtext:`methods` || ||:diagtext:`a pointer` ||
- | |+----------------------+| |+------------------------------------+|
- | ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`||
- | |+----------------------+| |+------------------------------------+|
- +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| |
- | |+---------------------+| |+---------------------+| |
- | ||:diagtext:`size` || ||:diagtext:`size` || |
- | |+---------------------+| |+---------------------+| |
- +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`|
- | ||:diagtext:`floating point`|| |
- | |+--------------------------+| |
- | ||:diagtext:`vector` || |
- | |+--------------------------+| |
- +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`|
- | ||:diagtext:`function` || |
- | |+-----------------------------------------------+| |
- | ||:diagtext:`pointer` || |
- | |+-----------------------------------------------+| |
- | ||:diagtext:`Objective-C object or block pointer`|| |
- | |+-----------------------------------------------+| |
- +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`|
- | ||:diagtext:`unsupported`||| || |
- | |+-----------------------+|+--------------------------------+| |
- | ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| |
- | |+-----------------------+|+--------------------------------+| |
- +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+
- -Wignored-optimization-argument
- -------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`|
- +--------------------------------------------------------------------------------------------------------+
- -Wignored-pragma-intrinsic
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+|
- | || ||
- | |+----------------------------------------------------------------------------+|
- | ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`||
- | |+----------------------------------------------------------------------------+|
- +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+
- -Wignored-pragmas
- -----------------
- This diagnostic is enabled by default.
- Also controls `-Wignored-pragma-intrinsic`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+---------------------------+-----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
- | ||:diagtext:`align` || |
- | |+-------------------------+| |
- | ||:diagtext:`options align`|| |
- | |+-------------------------+| |
- +------------------------------------------------------------------------------+---------------------------+-----------------------+
- +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`|
- | ||:diagtext:`align` || |
- | |+-------------------------+| |
- | ||:diagtext:`options align`|| |
- | |+-------------------------+| |
- +-----------------------------------------------------------------------------------+---------------------------+-----------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`|
- +-----------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`|
- +----------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
- +--------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
- +---------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +---------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
- +-----------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------+---------------------------------------------------+------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`|
- | ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| |
- | |+-------------------------------------------------+| |
- | ||:diagtext:`'disable'` || |
- | |+-------------------------------------------------+| |
- +-------------------------------------------------------+---------------------------------------------------+------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`|
- +-----------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +---------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`|
- +----------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`|
- +-------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +-----------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`|
- +----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`|
- +---------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`|
- +--------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`|
- +-------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
- +---------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`|
- +-----------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`|
- +------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wignored-qualifiers
- --------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`|
- | ||:diagtext:`unused` || |
- | |+----------------------------------+| |
- | ||:diagtext:`\_\_unsafe\_unretained`|| |
- | |+----------------------------------+| |
- | ||:diagtext:`\_\_strong` || |
- | |+----------------------------------+| |
- | ||:diagtext:`\_\_weak` || |
- | |+----------------------------------+| |
- | ||:diagtext:`\_\_autoreleasing` || |
- | |+----------------------------------+| |
- +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`|
- | || || ||:diagtext:`:has` || |
- | |+-------------+| |+-----------------+| |
- | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
- | |+-------------+| |+-----------------+| |
- +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wimplicit
- ----------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_.
- -Wimplicit-atomic-properties
- ----------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`|
- +-----------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`|
- +----------------------------------------------------------------------------+
- -Wimplicit-conversion-floating-point-to-bool
- --------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wimplicit-exception-spec-mismatch
- ----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`|
- | ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| |
- | |+--------------------+| |+--------------------+| |
- | ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| |
- | |+--------------------+| |+--------------------+| |
- +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+
- -Wimplicit-fallthrough
- ----------------------
- Also controls `-Wimplicit-fallthrough-per-function`_.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`|
- +---------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`|
- +-------------------------------------------------------------------------------------+
- -Wimplicit-fallthrough-per-function
- -----------------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`|
- +------------------------------------------------------------------------------------------------------------------+
- -Wimplicit-function-declaration
- -------------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+|
- | ||:diagtext:`C99` ||
- | |+------------------+|
- | ||:diagtext:`OpenCL`||
- | |+------------------+|
- +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------+
- -Wimplicit-int
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`|
- +--------------------------------------------------------------------------------+
- -Wimplicit-retain-self
- ----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- -Wimplicitly-unsigned-literal
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- -Wimport
- --------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wimport-preprocessor-directive-pedantic
- ----------------------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`|
- +----------------------------------------------------------------------+
- -Winaccessible-base
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- -Winclude-next-absolute-path
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`|
- +------------------------------------------------------------------------+
- -Winclude-next-outside-header
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`|
- +----------------------------------------------------------------------------+
- -Wincompatible-exception-spec
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------+----------------------+--------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`|
- | ||:diagtext:`return` || |
- | |+--------------------+| |
- | ||:diagtext:`argument`|| |
- | |+--------------------+| |
- +--------------------------------------------------------------------------+----------------------+--------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`|
- +-----------------------------------------------------------------------------------------------+
- -Wincompatible-function-pointer-types
- -------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`assigning to different types` ||| ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- -Wincompatible-library-redeclaration
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------+
- -Wincompatible-ms-struct
- ------------------------
- This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Wincompatible-pointer-types
- ----------------------------
- This diagnostic is enabled by default.
- Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`assigning to different types` ||| ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- -Wincompatible-pointer-types-discards-qualifiers
- ------------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`|
- | ||:diagtext:`assigning to different types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`passing to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`returning from function with different return type`|| |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`converting between types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`initializing with expression of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+
- +---------------------------+----------------------------------------------------------------+---------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`|
- | ||:diagtext:`assigning to different types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`passing to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`returning from function with different return type`|| |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`converting between types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`initializing with expression of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +---------------------------+----------------------------------------------------------------+---------------------------------------+
- -Wincompatible-property-type
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wincompatible-sysroot
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------------------------------------------+
- -Wincomplete-implementation
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
- +-----------------------------------------------------------------------------------------------------------------+
- -Wincomplete-module
- -------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_.
- -Wincomplete-umbrella
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`|
- +--------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Winconsistent-dllimport
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`|
- +------------------------------------------------------------------------------------------------------------------------------------+
- -Winconsistent-missing-destructor-override
- ------------------------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`|
- +------------------------------------------------------------------------------------------------------------------+
- -Winconsistent-missing-override
- -------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`|
- +-----------------------------------------------------------------------------------------------------------------------+
- -Wincrement-bool
- ----------------
- This diagnostic is enabled by default.
- Also controls `-Wdeprecated-increment-bool`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`|
- +------------------------------------------------------------------------------------------------+
- -Winfinite-recursion
- --------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`|
- +---------------------------------------------------------------------------------------+
- -Winit-self
- -----------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Winitializer-overrides
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`|
- +---------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- -Winjected-class-name
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
- |: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`|
- | ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| |
- | |+-------------------------+| |+----------------------+| |
- | ||:diagtext:`type` || ||:diagtext:`'template'`|| |
- | |+-------------------------+| |+----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+
- -Winline
- --------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Winline-asm
- ------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Winline-new-delete
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Winstantiation-after-specialization
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wint-conversion
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`assigning to different types` ||| ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`assigning to different types` ||| ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` ||
- | |+--------------------------------------------------------------+|+-------------------------------------+|
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+
- -Wint-conversions
- -----------------
- Synonym for `-Wint-conversion`_.
- -Wint-to-pointer-cast
- ---------------------
- This diagnostic is enabled by default.
- Also controls `-Wint-to-void-pointer-cast`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wint-to-void-pointer-cast
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Winteger-overflow
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Winvalid-command-line-argument
- -------------------------------
- This diagnostic is enabled by default.
- Also controls `-Wignored-optimization-argument`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Winvalid-constexpr
- -------------------
- This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error.
- **Diagnostic text:**
- +----------------------------------------------------+-------------------------+--------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`|
- | ||:diagtext:`function` || |
- | |+-----------------------+| |
- | ||:diagtext:`constructor`|| |
- | |+-----------------------+| |
- +----------------------------------------------------+-------------------------+--------------------------------------------------------+
- -Winvalid-iboutlet
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`|
- | ||:diagtext:`instance variable`|| |
- | |+-----------------------------+| |
- | ||:diagtext:`property` || |
- | |+-----------------------------+| |
- +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`|
- +---------------------------------------------------------------------------------------------------------+
- -Winvalid-initializer-from-system-header
- ----------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`|
- +--------------------------------------------------------------------------------------------------------------+
- -Winvalid-ios-deployment-target
- -------------------------------
- This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Winvalid-noreturn
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`|
- +-------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- -Winvalid-offsetof
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------------+
- -Winvalid-or-nonexistent-directory
- ----------------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Winvalid-partial-specialization
- --------------------------------
- This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error.
- **Diagnostic text:**
- +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`|
- | ||:diagtext:`class` || |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+
- -Winvalid-pch
- -------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Winvalid-pp-token
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty character constant`|
- +---------------------------------------------------------------+
- +------------------------------------------------------------------+-----------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`|
- | ||:diagtext:`'` || |
- | |+---------------+| |
- | ||:diagtext:`'"'`|| |
- | |+---------------+| |
- +------------------------------------------------------------------+-----------------+-----------------------------+
- -Winvalid-source-encoding
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`|
- +--------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`|
- +-----------------------------------------------------------------------------------+
- -Winvalid-token-paste
- ---------------------
- This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`|
- +----------------------------------------------------------------------------------------------------------------+
- -Wjump-seh-finally
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`|
- +-------------------------------------------------------------------------------------------+
- -Wkeyword-compat
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+|
- | ||:diagtext:`here` ||
- | |+-----------------------------------------------------+|
- | ||:diagtext:`for the remainder of the translation unit`||
- | |+-----------------------------------------------------+|
- +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+
- -Wkeyword-macro
- ---------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`|
- +----------------------------------------------------------------------------+
- -Wknr-promoted-parameter
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wlanguage-extension-token
- --------------------------
- **Diagnostic text:**
- +-----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extension used`|
- +-----------------------------------------------------+
- -Wlarge-by-value-copy
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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 ?`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wliblto
- --------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wliteral-conversion
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wliteral-range
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wlocal-type-template-args
- --------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wc++98-compat-local-type-template-args`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------+
- -Wlogical-not-parentheses
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+|
- | ||:diagtext:`comparison` ||
- | |+----------------------------+|
- | ||:diagtext:`bitwise operator`||
- | |+----------------------------+|
- +--------------------------------------------------------------------------------------------------------+------------------------------+
- -Wlogical-op-parentheses
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`|
- +---------------------------------------------------------+
- -Wlong-long
- -----------
- Also controls `-Wc++11-long-long`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`|
- +-----------------------------------------------------------------------------------------------+
- -Wloop-analysis
- ---------------
- Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_.
- -Wmacro-redefined
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`|
- +------------------------------------------------------------------------------+
- -Wmain
- ------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
- +--------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`|
- +--------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`|
- +------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`|
- +-------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`|
- +---------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`|
- +------------------------------------------------------------------------+
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`|
- +---------------------------------------------------------------------------+
- -Wmain-return-type
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`|
- +-------------------------------------------------------------------------+
- -Wmalformed-warning-check
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`|
- +---------------------------------------------------------------------------------------------+
- -Wmany-braces-around-scalar-init
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`|
- +--------------------------------------------------------------------------------+
- -Wmax-unsigned-zero
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`|
- | ||:diagtext:`a value and unsigned zero`|| |
- | |+-------------------------------------+| |
- | ||:diagtext:`unsigned zero and a value`|| |
- | |+-------------------------------------+| |
- +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+
- -Wmemsize-comparison
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`|
- +-----------------------------------------------------------------------------------------------------------------------+
- -Wmethod-signatures
- -------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft
- -----------
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- -Wmicrosoft-anon-tag
- --------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
- +--------------------------------------------------------+---------------------+---------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
- | ||:diagtext:`structs`|| |
- | |+-------------------+| |
- | ||:diagtext:`unions` || |
- | |+-------------------+| |
- +--------------------------------------------------------+---------------------+---------------------------------------------+
- -Wmicrosoft-cast
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-charize
- -------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`|
- +-------------------------------------------------------------------------------------+
- -Wmicrosoft-comment-paste
- -------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`|
- +----------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-const-init
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
- | || || |
- | |+---------------------------------------------------------------+| |
- | || |nbsp| :diagtext:`without a user-provided default constructor`|| |
- | |+---------------------------------------------------------------+| |
- +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+
- -Wmicrosoft-cpp-macro
- ---------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-default-arg-redefinition
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`|
- +-----------------------------------------------------------------------+
- -Wmicrosoft-end-of-file
- -----------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`|
- +----------------------------------------------------------------------------------------------+
- -Wmicrosoft-enum-forward-reference
- ----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`|
- +---------------------------------------------------------------------------------------------------+
- -Wmicrosoft-enum-value
- ----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-exception-spec
- --------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
- +------------------------------------------------------------------------------------------------+
- +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`|
- | || || |
- | |+--------------------------------+| |
- | ||:diagtext:`pointer to` |nbsp| || |
- | |+--------------------------------+| |
- | ||:diagtext:`reference to` |nbsp| || |
- | |+--------------------------------+| |
- +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`|
- +-----------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`|
- +------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-exists
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------+---------------------------------+--------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`|
- | ||:diagtext:`\_\_if\_not\_exists`|| |
- | |+-------------------------------+| |
- | ||:diagtext:`\_\_if\_exists` || |
- | |+-------------------------------+| |
- +--------------------------------------------------------+---------------------------------+--------------------------------------------+
- -Wmicrosoft-explicit-constructor-call
- -------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`|
- +-------------------------------------------------------------------------------------------+
- -Wmicrosoft-extra-qualification
- -------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------+
- -Wmicrosoft-fixed-enum
- ----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-flexible-array
- --------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`|
- | ||:diagtext:`struct` || |
- | |+---------------------+| |
- | ||:diagtext:`interface`|| |
- | |+---------------------+| |
- | ||:diagtext:`union` || |
- | |+---------------------+| |
- | ||:diagtext:`class` || |
- | |+---------------------+| |
- | ||:diagtext:`enum` || |
- | |+---------------------+| |
- +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-goto
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`|
- +----------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-include
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-mutable-reference
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`|
- +---------------------------------------------------------------------------------------------+
- -Wmicrosoft-pure-definition
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-redeclare-static
- ----------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-sealed
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`|
- +--------------------------------------------------------------------------------+
- -Wmicrosoft-template
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`|
- | ||:diagtext:`class template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`class template partial` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`variable template partial`|| |
- | |+-------------------------------------+| |
- | ||:diagtext:`function template` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member function` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`static data member` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member class` || |
- | |+-------------------------------------+| |
- | ||:diagtext:`member enumeration` || |
- | |+-------------------------------------+| |
- +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-union-member-reference
- ----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-unqualified-friend
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-using-decl
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmicrosoft-void-pseudo-dtor
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`|
- +------------------------------------------------------------------------------------------------+
- -Wmismatched-new-delete
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
- |:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`|
- | || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| |
- | |+----------------+| |+----------------+| |+----------------+| |
- | ||:diagtext:`\[\]`|| || || || || |
- | |+----------------+| |+----------------+| |+----------------+| |
- +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+
- -Wmismatched-parameter-types
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wmismatched-return-types
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wmismatched-tags
- -----------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+|
- | ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| ||
- | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
- | ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`||
- | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+|
- | ||:diagtext:`a class` || | ||:diagtext:`a class` || |
- | |+------------------------+| | |+------------------------+| |
- +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+
- +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+|
- | ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| ||
- | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
- | ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`||
- | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+|
- | ||:diagtext:`class` || | ||:diagtext:`class` || |
- | |+---------------------+| | |+---------------------+| |
- +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+
- -Wmissing-braces
- ----------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`|
- +----------------------------------------------------------------------------------------+
- -Wmissing-declarations
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`|
- +----------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`|
- +-----------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`|
- +--------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`|
- +-------------------------------------------------------------------------------------------------+
- -Wmissing-exception-spec
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- -Wmissing-field-initializers
- ----------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wmissing-format-attribute
- --------------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wmissing-include-dirs
- ----------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wmissing-method-return-type
- ----------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`|
- +--------------------------------------------------------------------------------------------+
- -Wmissing-noescape
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`|
- +----------------------------------------------------------------------------------------------------------------------------+
- -Wmissing-noreturn
- ------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`|
- +----------------------------------------------------------------------------------------+
- +---------------------------+----------------------+---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`method` || |
- | |+--------------------+| |
- +---------------------------+----------------------+---------------------------------------------------------------------------------------+
- -Wmissing-prototype-for-cc
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmissing-prototypes
- --------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------+
- -Wmissing-selector-name
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmissing-sysroot
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------+
- -Wmissing-variable-declarations
- -------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------------------+
- -Rmodule-build
- --------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------------+
- -Wmodule-conflict
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmodule-file-config-mismatch
- -----------------------------
- This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmodule-file-extension
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------------------+
- -Wmodule-import-in-extern-c
- ---------------------------
- This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmodules-ambiguous-internal-linkage
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wmodules-import-nested-redundant
- ---------------------------------
- This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wmost
- ------
- Some of the diagnostics controlled by this flag are enabled by default.
- 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`_.
- -Wmove
- ------
- Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_.
- -Wmsvc-include
- --------------
- Synonym for `-Wmicrosoft-include`_.
- -Wmsvc-not-found
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wmultichar
- -----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`|
- +-------------------------------------------------------------------------+
- -Wmultiple-move-vbase
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnarrowing
- -----------
- Synonym for `-Wc++11-narrowing`_.
- -Wnested-anon-types
- -------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +---------------------------------------------------------------------------------------+--------------------+------------------------------------+
- -Wnested-externs
- ----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wnew-returns-null
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+|
- | || ||
- | |+---------------------------------+|
- | || |nbsp| :diagtext:`or 'noexcept'`||
- | |+---------------------------------+|
- +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+
- -Wnewline-eof
- -------------
- **Diagnostic text:**
- +----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
- +----------------------------------------------------------------+
- +----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
- +----------------------------------------------------------------+
- -Wnoexcept-type
- ---------------
- Synonym for `-Wc++17-compat-mangling`_.
- -Wnon-gcc
- ---------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_.
- -Wnon-literal-null-conversion
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnon-modular-include-in-framework-module
- -----------------------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnon-modular-include-in-module
- -------------------------------
- Also controls `-Wnon-modular-include-in-framework-module`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnon-pod-varargs
- -----------------
- This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error.
- **Diagnostic text:**
- +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- |: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`|
- | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
- | |+-----------------------+| |+-----------------------+| |
- | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
- | |+-----------------------+| |+-----------------------+| |
- | | | ||:diagtext:`method` || |
- | | | |+-----------------------+| |
- | | | ||:diagtext:`constructor`|| |
- | | | |+-----------------------+| |
- +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+
- +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`non-POD` || ||:diagtext:`function` || |
- | |+-----------------------+| |+-----------------------+| |
- | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || |
- | |+-----------------------+| |+-----------------------+| |
- | | | ||:diagtext:`method` || |
- | | | |+-----------------------+| |
- | | | ||:diagtext:`constructor`|| |
- | | | |+-----------------------+| |
- +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------------------------+
- -Wnon-virtual-dtor
- ------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wnonnull
- ---------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`|
- +------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`method` || |
- | |+--------------------+| |
- +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+
- -Wnonportable-cfstrings
- -----------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wnonportable-include-path
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnonportable-system-include-path
- ---------------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnonportable-vector-initialization
- -----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`|
- +---------------------------------------------------------------------------------------------------------------------+
- -Wnsconsumed-mismatch
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`|
- +---------------------------------------------------------------------------------------------------------------+
- -Wnsreturns-mismatch
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`|
- | ||:diagtext:`not\_retained`|| |
- | |+-------------------------+| |
- | ||:diagtext:`retained` || |
- | |+-------------------------+| |
- +-------------------------------------------------------------------------------------+---------------------------+------------------------------+
- -Wnull-arithmetic
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`|
- +--------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+|
- | ||+----------------------------------------------------------+||
- | |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`|||
- | ||+----------------------------------------------------------+||
- | |+------------------------------------------------------------+|
- | ||+----------------------------------------------------------+||
- | |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`|||
- | ||+----------------------------------------------------------+||
- | |+------------------------------------------------------------+|
- +--------------------------------------------------------------------------------------+--------------------------------------------------------------+
- -Wnull-character
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------+--------------------+---------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`|
- | ||:diagtext:`char` || |
- | |+------------------+| |
- | ||:diagtext:`string`|| |
- | |+------------------+| |
- +-----------------------------------------------------------------------------+--------------------+---------------------------+
- +-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`null character ignored`|
- +-------------------------------------------------------------+
- -Wnull-conversion
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`|
- | ||:diagtext:`NULL` || |
- | |+-------------------+| |
- | ||:diagtext:`nullptr`|| |
- | |+-------------------+| |
- +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+
- -Wnull-dereference
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`|
- +------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`|
- +---------------------------------------------------------------------------------------------------------+
- -Wnull-pointer-arithmetic
- -------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+|
- | || ||
- | |+--------------------------------------------+|
- | || |nbsp| :diagtext:`if the offset is nonzero`||
- | |+--------------------------------------------+|
- +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+
- -Wnullability
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------+
- -Wnullability-completeness
- --------------------------
- This diagnostic is enabled by default.
- Also controls `-Wnullability-completeness-on-arrays`_.
- **Diagnostic text:**
- +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
- | ||:diagtext:`pointer` || |
- | |+--------------------------+| |
- | ||:diagtext:`block pointer` || |
- | |+--------------------------+| |
- | ||:diagtext:`member pointer`|| |
- | |+--------------------------+| |
- +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+
- -Wnullability-completeness-on-arrays
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wnullability-declspec
- ----------------------
- This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
- |: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:`?`|
- | ||:diagtext:`pointer` || |
- | |+-----------------------------------+| |
- | ||:diagtext:`block pointer` || |
- | |+-----------------------------------+| |
- | ||:diagtext:`member pointer` || |
- | |+-----------------------------------+| |
- | ||:diagtext:`function pointer` || |
- | |+-----------------------------------+| |
- | ||:diagtext:`member function pointer`|| |
- | |+-----------------------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+
- -Wnullability-extension
- -----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`|
- +---------------------------------------------------------------------------------------------------------------------------------+
- -Wnullability-inferred-on-nested-type
- -------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`|
- | ||:diagtext:`array` || |
- | |+---------------------+| |
- | ||:diagtext:`reference`|| |
- | |+---------------------+| |
- +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+
- -Wnullable-to-nonnull-conversion
- --------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-autosynthesis-property-ivar-name-match
- ---------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | || || |
- | |+-----------------------+| |
- | ||:diagtext:`synthesized`|| |
- | |+-----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-circular-container
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-cocoa-api
- ----------------
- Synonym for `-Wobjc-redundant-api-use`_.
- -Wobjc-designated-initializers
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`|
- +-----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`|
- +--------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`|
- +--------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`|
- +-----------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`|
- +----------------------------------------------------------------------------------------------------------+
- -Wobjc-flexible-array
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-forward-class-redefinition
- ---------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-interface-ivars
- ----------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`|
- +-------------------------------------------------------------------------------------------------------+
- -Wobjc-literal-compare
- ----------------------
- This diagnostic is enabled by default.
- Also controls `-Wobjc-string-compare`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`|
- | ||:diagtext:`an array literal` || |
- | |+--------------------------------+| |
- | ||:diagtext:`a dictionary literal`|| |
- | |+--------------------------------+| |
- | ||:diagtext:`a numeric literal` || |
- | |+--------------------------------+| |
- | ||:diagtext:`a boxed expression` || |
- | |+--------------------------------+| |
- | || || |
- | |+--------------------------------+| |
- +-------------------------------------------------------------------+----------------------------------+------------------------------------------+
- -Wobjc-literal-conversion
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`|
- | ||:diagtext:`array element type` || |
- | |+---------------------------------+| |
- | ||:diagtext:`dictionary key type` || |
- | |+---------------------------------+| |
- | ||:diagtext:`dictionary value type`|| |
- | |+---------------------------------+| |
- +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+
- -Wobjc-macro-redefinition
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`|
- +-------------------------------------------------------------------------------------------+
- -Wobjc-messaging-id
- -------------------
- **Diagnostic text:**
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`|
- +---------------------------------------------------------------+
- -Wobjc-method-access
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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:`?`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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:`?`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-missing-property-synthesis
- ---------------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`|
- +------------------------------------------------------------------------------------------------------------------+
- -Wobjc-missing-super-calls
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Wobjc-multiple-method-names
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
- +--------------------------------------------------------------------------------------------------------------+
- -Wobjc-noncopy-retain-block-property
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`|
- +--------------------------------------------------------------------------------------------------------------------+
- -Wobjc-nonunified-exceptions
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-property-implementation
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-property-implicit-mismatch
- ---------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-property-matches-cocoa-ownership-rule
- --------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`|
- +-------------------------------------------------------------------------------------------------------------+
- -Wobjc-property-no-attribute
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`|
- +-----------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`|
- +--------------------------------------------------------------------------------------------------------------------+
- -Wobjc-property-synthesis
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-protocol-method-implementation
- -------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`|
- +----------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-protocol-property-synthesis
- ----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-protocol-qualifiers
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-readonly-with-setter-property
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`|
- +-----------------------------------------------------------------------------------------+
- -Wobjc-redundant-api-use
- ------------------------
- Synonym for `-Wobjc-redundant-literal-use`_.
- -Wobjc-redundant-literal-use
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Wobjc-root-class
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`|
- +-------------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-string-compare
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`|
- +---------------------------------------------------------------------------------------------------+
- -Wobjc-string-concatenation
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`|
- +-------------------------------------------------------------------------------------------------------------------------+
- -Wobjc-unsafe-perform-selector
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- | ||:diagtext:`vector`|| |
- | |+------------------+| |
- +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+
- -Wodr
- -----
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wold-style-cast
- ----------------
- **Diagnostic text:**
- +------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`|
- +------------------------------------------------------------+
- -Wold-style-definition
- ----------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wopencl-unsupported-rgba
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`|
- +----------------------------------------------------------------------------------------------------------------------------+
- -Wopenmp-clauses
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`|
- +-------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`|
- | || || |
- | |+-------------------------------------------------+| |
- | ||:diagtext:`and other variables in clause` |nbsp| || |
- | |+-------------------------------------------------+| |
- +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+
- -Wopenmp-loop-form
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`|
- +-----------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`|
- +-----------------------------------------------------------------------------------------------------------------------------+
- -Wopenmp-target
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`|
- +-----------------------------------------------------------------------------------------------+
- -Woption-ignored
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
- | || || |
- | |+-----------------------------------------+| |
- | ||:diagtext:`the implicit usage of` |nbsp| || |
- | |+-----------------------------------------+| |
- +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
- -Wout-of-line-declaration
- -------------------------
- This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`|
- +-------------------------------------------------------------------------------------------+
- -Wout-of-scope-function
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+|
- | || ||
- | |+-------------------------------------------------------------------------------------+|
- | || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`||
- | |+-------------------------------------------------------------------------------------+|
- +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+
- -Wover-aligned
- --------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Woverflow
- ----------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Woverlength-strings
- --------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
- |: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`|
- | ||:diagtext:`C90` || |
- | |+-------------------+| |
- | ||:diagtext:`ISO C99`|| |
- | |+-------------------+| |
- | ||:diagtext:`C++` || |
- | |+-------------------+| |
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+
- -Woverloaded-shift-op-parentheses
- ---------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`|
- | ||:diagtext:`>>`|| |
- | |+--------------+| |
- | ||:diagtext:`<<`|| |
- | |+--------------+| |
- +------------------------------------------------------------------+----------------+------------------------------------------------------------------+
- -Woverloaded-virtual
- --------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+-----------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+|
- | ||:diagtext:`function` ||
- | |+---------------------+|
- | ||:diagtext:`functions`||
- | |+---------------------+|
- +-----------------------------------------------------------------------------------------------+-----------------------+
- -Woverride-init
- ---------------
- Synonym for `-Winitializer-overrides`_.
- -Woverride-module
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------+
- -Woverriding-method-mismatch
- ----------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Woverriding-t-option
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------------------+
- -Wpacked
- --------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------+
- -Wpadded
- --------
- **Diagnostic text:**
- +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`|
- | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
- | |+---------------------+| |+----------------+|+-------------+| |
- | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
- | |+---------------------+| |+----------------+|+-------------+| |
- | ||:diagtext:`class` || | | | |
- | |+---------------------+| | | | |
- +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+
- +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`|
- | ||:diagtext:`struct` || ||:diagtext:`byte`||| || |
- | |+---------------------+| |+----------------+|+-------------+| |
- | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| |
- | |+---------------------+| |+----------------+|+-------------+| |
- | ||:diagtext:`class` || | | | |
- | |+---------------------+| | | | |
- +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`|
- | ||:diagtext:`byte`||| || |
- | |+----------------+|+-------------+| |
- | ||:diagtext:`bit` |||:diagtext:`s`|| |
- | |+----------------+|+-------------+| |
- +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+
- -Wparentheses
- -------------
- This diagnostic is enabled by default.
- Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`|
- +-----------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wparentheses-equality
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`|
- +--------------------------------------------------------------------------------------+
- -Wpartial-availability
- ----------------------
- Synonym for `-Wunguarded-availability`_.
- -Rpass
- ------
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Rpass-analysis
- ---------------
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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!`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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'.`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wpass-failed
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Rpass-missed
- -------------
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Wpch-date-time
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+--------------------------------+-----------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`|
- | ||:diagtext:`precompiled header`|| |
- | |+------------------------------+| |
- | ||:diagtext:`module` || |
- | |+------------------------------+| |
- +---------------------------+--------------------------------+-----------------------------------------------------+
- -Wpedantic
- ----------
- 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`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`|
- +------------------------------------------------------------------------+
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`|
- +--------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`|
- +--------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`|
- +--------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
- |: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| |+---------------------+|
- | ||:diagtext:`private` ||
- | |+---------------------+|
- | ||:diagtext:`protected`||
- | |+---------------------+|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+
- +--------------------------------------------------------+--------------------+------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +--------------------------------------------------------+--------------------+------------------------------------------------------------+
- +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`copying variable` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying parameter` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`returning object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`throwing object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying member subobject` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying array element` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`allocating object` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`copying temporary` || |
- | |+---------------------------------------+| |
- | ||:diagtext:`initializing base subobject`|| |
- | |+---------------------------------------+| |
- | ||:diagtext:`initializing vector element`|| |
- | |+---------------------------------------+| |
- | ||:diagtext:`capturing value` || |
- | |+---------------------------------------+| |
- +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`|
- +--------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`|
- +---------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`|
- | ||:diagtext:`small`|| |
- | |+-----------------+| |
- | ||:diagtext:`large`|| |
- | |+-----------------+| |
- +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`|
- +--------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`|
- +-----------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`|
- +-------------------------------------------------------------------------------+
- +---------------------------------------------------------------+-----------------------+--------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
- | ||:diagtext:`sizeof` || |
- | |+---------------------+| |
- | ||:diagtext:`alignof` || |
- | |+---------------------+| |
- | ||:diagtext:`vec\_step`|| |
- | |+---------------------+| |
- +---------------------------------------------------------------+-----------------------+--------------------------------+
- +---------------------------------------------------------------+-----------------------+----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
- | ||:diagtext:`sizeof` || |
- | |+---------------------+| |
- | ||:diagtext:`alignof` || |
- | |+---------------------+| |
- | ||:diagtext:`vec\_step`|| |
- | |+---------------------+| |
- +---------------------------------------------------------------+-----------------------+----------------------------+
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`|
- +-------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
- +----------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`|
- +-------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
- | || |nbsp| :diagtext:`a`|| || || |
- | |+---------------------+| |+-------------+| |
- | || || ||:diagtext:`s`|| |
- | |+---------------------+| |+-------------+| |
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
- |: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`|
- | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
- | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
- | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
- | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
- | | | | | | | | | ||+-----------------------------------------------+|| |
- | | | | | | | | | |+-------------------------------------------------+| |
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`|
- +------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`|
- +-------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`integral` || |
- | |+-----------------------+| |
- | ||:diagtext:`enumeration`|| |
- | |+-----------------------+| |
- +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+
- +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`|
- | ||:diagtext:`assigning to different types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`passing to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`returning from function with different return type`|| |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`converting between types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`initializing with expression of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`|
- +--------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`|
- +---------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`|
- | ||:diagtext:`struct`|| |
- | |+------------------+| |
- | ||:diagtext:`union` || |
- | |+------------------+| |
- +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`method` || |
- | |+--------------------+| |
- | ||:diagtext:`block` || |
- | |+--------------------+| |
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`|
- +--------------------------------------------------------------------------------------------------+
- +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`|
- | ||:diagtext:`qualifier in` |nbsp| || || || |
- | |+--------------------------------+| |+---------------------+| |
- | ||:diagtext:`static` |nbsp| || || || |
- | |+--------------------------------+| |+---------------------+| |
- | || || ||:diagtext:`'\[\*\] '`|| |
- | |+--------------------------------+| |+---------------------+| |
- +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+
- +--------------------------------------------------------+------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+|
- | ||:diagtext:`outside of a function` ||
- | |+----------------------------------------------+|
- | ||+--------------------------------------------+||
- | |||:diagtext:`inside a` |nbsp| :placeholder:`B`|||
- | ||+--------------------------------------------+||
- | |+----------------------------------------------+|
- | ||:diagtext:`inside instance variable list` ||
- | |+----------------------------------------------+|
- | ||:diagtext:`after member function definition` ||
- | |+----------------------------------------------+|
- +--------------------------------------------------------+------------------------------------------------+
- +-----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`|
- +----------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`|
- +-------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`|
- +-----------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`|
- +-------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`|
- +--------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`|
- +-----------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`|
- +-----------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`|
- +------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`|
- | ||:diagtext:`a namespace` || |
- | |+-------------------------+| |
- | ||:diagtext:`an enumerator`|| |
- | |+-------------------------+| |
- +------------------------------------------------------------+---------------------------+-----------------------------------------------------+
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`|
- +-----------------------------------------------------------------------------+
- +------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`|
- +------------------------------------------------------------+
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`|
- +-----------------------------------------------------------------------------------+
- +----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`|
- +----------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`|
- +---------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`|
- +----------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`|
- +---------------------------------------------------------------------+
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`|
- +-----------------------------------------------------------------------+
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`|
- +-----------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`|
- +----------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
- +------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
- +--------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`|
- +------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`|
- +-------------------------------------------------------------------------------------------------+
- -Wpedantic-core-features
- ------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wpessimizing-move
- ------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`|
- +--------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`|
- +--------------------------------------------------------------------------------------------------------+
- -Wpointer-arith
- ---------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
- |: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`|
- | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || |
- | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| |
- | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| |
- | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| |
- | | | | | | | | | ||+-----------------------------------------------+|| |
- | | | | | | | | | |+-------------------------------------------------+| |
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+
- +----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`|
- +----------------------------------------------------------------------------------------+
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`|
- | || |nbsp| :diagtext:`a`|| || || |
- | |+---------------------+| |+-------------+| |
- | || || ||:diagtext:`s`|| |
- | |+---------------------+| |+-------------+| |
- +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+
- +---------------------------------------------------------------+-----------------------+--------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`|
- | ||:diagtext:`sizeof` || |
- | |+---------------------+| |
- | ||:diagtext:`alignof` || |
- | |+---------------------+| |
- | ||:diagtext:`vec\_step`|| |
- | |+---------------------+| |
- +---------------------------------------------------------------+-----------------------+--------------------------------+
- +---------------------------------------------------------------+-----------------------+----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`|
- | ||:diagtext:`sizeof` || |
- | |+---------------------+| |
- | ||:diagtext:`alignof` || |
- | |+---------------------+| |
- | ||:diagtext:`vec\_step`|| |
- | |+---------------------+| |
- +---------------------------------------------------------------+-----------------------+----------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wpointer-bool-conversion
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`|
- | ||:diagtext:`function call`|| |
- | |+-------------------------+| |
- | ||:diagtext:`parameter` || |
- | |+-------------------------+| |
- +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+
- +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`|
- | || || |
- | |+----------------------------+| |
- | || |nbsp| :diagtext:`function`|| |
- | |+----------------------------+| |
- | || |nbsp| :diagtext:`array` || |
- | |+----------------------------+| |
- +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+
- -Wpointer-sign
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`|
- | ||:diagtext:`assigning to different types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`passing to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`returning from function with different return type`|| |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`converting between types` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`initializing with expression of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`sending to parameter of different type` || |
- | |+--------------------------------------------------------------+| |
- | ||:diagtext:`casting between types` || |
- | |+--------------------------------------------------------------+| |
- +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+
- -Wpointer-to-int-cast
- ---------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wpointer-type-mismatch
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`|
- +------------------------------------------------------------+
- -Wpotentially-evaluated-expression
- ----------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wpragma-clang-attribute
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wpragma-once-outside-header
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`|
- +----------------------------------------------------------------+
- -Wpragma-pack
- -------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wpragma-pack-suspicious-include`_.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`|
- +----------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`|
- +---------------------------------------------------------------------------------------------+
- -Wpragma-pack-suspicious-include
- --------------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wpragma-system-header-outside-header
- -------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`|
- +----------------------------------------------------------------------------------+
- -Wpragmas
- ---------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+
- -Wpredefined-identifier-outside-function
- ----------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`|
- +------------------------------------------------------------------------------------------+
- -Wprivate-extern
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wprivate-header
- ----------------
- This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------------------+
- -Wprivate-module
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wprofile-instr-missing
- -----------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
- |: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`|
- | || || ||:diagtext:`:has` || |
- | |+-------------+| |+-----------------+| |
- | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
- | |+-------------+| |+-----------------+| |
- +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+
- -Wprofile-instr-out-of-date
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
- |: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`|
- | || || ||:diagtext:`:has` || |
- | |+-------------+| |+-----------------+| |
- | ||:diagtext:`s`|| ||:diagtext:`:have`|| |
- | |+-------------+| |+-----------------+| |
- +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+
- -Wprofile-instr-unprofiled
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`|
- +--------------------------------------------------------------------------------------------------------+
- -Wproperty-access-dot-syntax
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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:`?`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wproperty-attribute-mismatch
- -----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`|
- +-------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wprotocol
- ----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wprotocol-property-synthesis-ambiguity
- ---------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`|
- | ||+-------------------------------------------+ || |
- | |||:diagtext:`of type` |nbsp| :placeholder:`B`| || |
- | ||+-------------------------------------------+ || |
- | |+--------------------------------------------------------------+| |
- | ||+---------------------------------------------------------+ || |
- | |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || |
- | ||+---------------------------------------------------------+ || |
- | |+--------------------------------------------------------------+| |
- | ||+------------------------------------------------------------+|| |
- | |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| |
- | ||+------------------------------------------------------------+|| |
- | |+--------------------------------------------------------------+| |
- | ||+-----------------------------------------------+ || |
- | |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || |
- | ||+-----------------------------------------------+ || |
- | |+--------------------------------------------------------------+| |
- | ||+-----------------------------------------------+ || |
- | |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || |
- | ||+-----------------------------------------------+ || |
- | |+--------------------------------------------------------------+| |
- +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+
- -Wqualified-void-return-type
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------+
- -Wrange-loop-analysis
- ---------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wreadonly-iboutlet-property
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wreceiver-expr
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wreceiver-forward-class
- ------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Wredeclared-class-member
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`|
- +------------------------------------------------------------------------+
- -Wredundant-decls
- -----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wredundant-move
- ----------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`|
- +-------------------------------------------------------------------------+
- -Wredundant-parens
- ------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`|
- +-----------------------------------------------------------------------------------+
- -Wregister
- ----------
- This diagnostic is enabled by default.
- Also controls `-Wdeprecated-register`_.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`|
- +----------------------------------------------------------------------------------------------+
- -Wreinterpret-base-class
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
- |: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'`|
- | ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || |
- | |+----------------+| |+----------------+| |+-----------------------------------+| |
- | ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| |
- | |+----------------+| |+----------------+| |+-----------------------------------+| |
- +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+
- -Rremark-backend-plugin
- -----------------------
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Wreorder
- ---------
- **Diagnostic text:**
- +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
- |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`|
- | ||:diagtext:`field` || ||:diagtext:`field`|| |
- | |+----------------------+| |+-----------------+| |
- | ||:diagtext:`base class`|| ||:diagtext:`base` || |
- | |+----------------------+| |+-----------------+| |
- +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+
- -Wrequires-super-attribute
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+----------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+|
- | ||:diagtext:`methods in protocols`||
- | |+--------------------------------+|
- | ||:diagtext:`dealloc` ||
- | |+--------------------------------+|
- +-----------------------------------------------------------------------------------------------------+----------------------------------+
- -Wreserved-id-macro
- -------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`|
- +--------------------------------------------------------------------------+
- -Wreserved-user-defined-literal
- -------------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wc++11-compat-reserved-user-defined-literal`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
- +-----------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`|
- +-------------------------------------------------------------------------------------------------------------------+
- -Wretained-language-linkage
- ---------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wreturn-stack-address
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`|
- +---------------------------------------------------------------------------------+
- +--------------------------------------------------------+--------------------------+------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`|
- | ||:diagtext:`address of` || |
- | |+------------------------+| |
- | ||:diagtext:`reference to`|| |
- | |+------------------------+| |
- +--------------------------------------------------------+--------------------------+------------------------------------------+
- +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`|
- | ||:diagtext:`address of` || |
- | |+------------------------+| |
- | ||:diagtext:`reference to`|| |
- | |+------------------------+| |
- +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+
- -Wreturn-type
- -------------
- This diagnostic is enabled by default.
- Also controls `-Wreturn-type-c-linkage`_.
- **Diagnostic text:**
- +-----------------------+---------------------------+---------------------------------------------------------------------+
- |:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`|
- | ||:diagtext:`void function`|| |
- | |+-------------------------+| |
- | ||:diagtext:`void method` || |
- | |+-------------------------+| |
- | ||:diagtext:`constructor` || |
- | |+-------------------------+| |
- | ||:diagtext:`destructor` || |
- | |+-------------------------+| |
- +-----------------------+---------------------------+---------------------------------------------------------------------+
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`method` || |
- | |+--------------------+| |
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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()'`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`|
- +-------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`|
- +-----------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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()'`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`|
- +---------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`|
- +-------------------------------------------------------------------------------+
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`method` || |
- | |+--------------------+| |
- +---------------------------------------------------+----------------------+-----------------------------------------------------------------+
- -Wreturn-type-c-linkage
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wrtti-for-exceptions
- ---------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`|
- +--------------------------------------------------------------------------------------+
- -Rsanitize-address
- ------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
- |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+|
- | ||:diagtext:`is not C++` ||
- | |+------------------------------------+|
- | ||:diagtext:`is packed` ||
- | |+------------------------------------+|
- | ||:diagtext:`is a union` ||
- | |+------------------------------------+|
- | ||:diagtext:`is trivially copyable` ||
- | |+------------------------------------+|
- | ||:diagtext:`has trivial destructor` ||
- | |+------------------------------------+|
- | ||:diagtext:`is standard layout` ||
- | |+------------------------------------+|
- | ||:diagtext:`is in a blacklisted file`||
- | |+------------------------------------+|
- | ||:diagtext:`is blacklisted` ||
- | |+------------------------------------+|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+
- -Wsection
- ---------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`|
- +--------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`|
- +----------------------------------------------------------------------------------+
- -Wselector
- ----------
- Also controls `-Wselector-type-mismatch`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wselector-type-mismatch
- ------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wself-assign
- -------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wself-assign-field`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- -Wself-assign-field
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------+-------------------------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`|
- | ||:diagtext:`field` || |
- | |+-----------------------------+| |
- | ||:diagtext:`instance variable`|| |
- | |+-----------------------------+| |
- +--------------------------------------------------------+-------------------------------+-----------------------------+
- -Wself-move
- -----------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`|
- +------------------------------------------------------------------------------------------------------------------------------+
- -Wsemicolon-before-method-body
- ------------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`|
- +------------------------------------------------------------------------------+
- -Wsentinel
- ----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------+-----------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+|
- | ||:diagtext:`function call` ||
- | |+---------------------------+|
- | ||:diagtext:`method dispatch`||
- | |+---------------------------+|
- | ||:diagtext:`block call` ||
- | |+---------------------------+|
- +------------------------------------------------------------------+-----------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsequence-point
- ----------------
- Synonym for `-Wunsequenced`_.
- -Wserialized-diagnostics
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`|
- +--------------------------------------------------------------------------------------------+
- -Wshadow
- --------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------+-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
- | ||:diagtext:`local variable` ||
- | |+-----------------------------------------------------------+|
- | ||+-----------------------------------------------+ ||
- | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
- | ||+-----------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+---------------------------------------------------------+||
- | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
- | ||+---------------------------------------------------------+||
- | |+-----------------------------------------------------------+|
- | ||+--------------------------------------------+ ||
- | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
- | ||+--------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+----------------------------------------------+ ||
- | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
- | ||+----------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+-------------------------------------------------+ ||
- | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
- | ||+-------------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- +--------------------------------------------------------------------+-------------------------------------------------------------+
- -Wshadow-all
- ------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_.
- -Wshadow-field
- --------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshadow-field-in-constructor
- -----------------------------
- Also controls `-Wshadow-field-in-constructor-modified`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshadow-field-in-constructor-modified
- --------------------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshadow-ivar
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`|
- +------------------------------------------------------------------------------------------------------------------------------+
- -Wshadow-uncaptured-local
- -------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------+-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+|
- | ||:diagtext:`local variable` ||
- | |+-----------------------------------------------------------+|
- | ||+-----------------------------------------------+ ||
- | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| ||
- | ||+-----------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+---------------------------------------------------------+||
- | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`|||
- | ||+---------------------------------------------------------+||
- | |+-----------------------------------------------------------+|
- | ||+--------------------------------------------+ ||
- | |||:diagtext:`field of` |nbsp| :placeholder:`C`| ||
- | ||+--------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+----------------------------------------------+ ||
- | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| ||
- | ||+----------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- | ||+-------------------------------------------------+ ||
- | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| ||
- | ||+-------------------------------------------------+ ||
- | |+-----------------------------------------------------------+|
- +--------------------------------------------------------------------+-------------------------------------------------------------+
- -Wshift-count-negative
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`shift count is negative`|
- +--------------------------------------------------------------+
- -Wshift-count-overflow
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`|
- +-------------------------------------------------------------------+
- -Wshift-negative-value
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`|
- +------------------------------------------------------------------------------------+
- -Wshift-op-parentheses
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshift-overflow
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshift-sign-overflow
- ---------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wshorten-64-to-32
- ------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsign-compare
- --------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsign-conversion
- -----------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsign-promo
- ------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wsigned-enum-bitfield
- ----------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsizeof-array-argument
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsizeof-array-decay
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsizeof-pointer-memaccess
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`destination`|| |
- | |+-----------------------+| |
- | ||:diagtext:`source` || |
- | |+-----------------------+| |
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+
- -Wslash-u-filename
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`|
- +--------------------------------------------------------------------------------------------------+
- -Wsometimes-uninitialized
- -------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+|
- | ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ ||
- | |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| ||
- | ||:diagtext:`captured`|| ||| ||:diagtext:`true` || ||
- | |+--------------------+| ||| |+-----------------+| ||
- | | | ||| ||:diagtext:`false`|| ||
- | | | ||| |+-----------------+| ||
- | | | ||+---------------------------------------------------------------+-------------------+ ||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- | | | ||+-------------------------------------------------------+--------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
- | | | ||| ||:diagtext:`is entered` ||||
- | | | ||| |+------------------------------------------------+|||
- | | | ||| ||:diagtext:`exits because its condition is false`||||
- | | | ||| |+------------------------------------------------+|||
- | | | ||+-------------------------------------------------------+--------------------------------------------------+||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- | | | ||+-------------------------------------------------------+--------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+|||
- | | | ||| ||:diagtext:`condition is true` ||||
- | | | ||| |+------------------------------------------------+|||
- | | | ||| ||:diagtext:`exits because its condition is false`||||
- | | | ||| |+------------------------------------------------+|||
- | | | ||+-------------------------------------------------------+--------------------------------------------------+||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- | | | ||+----------------------------------------------------------------------+ ||
- | | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| ||
- | | | ||+----------------------------------------------------------------------+ ||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- | | | ||:diagtext:`its declaration is reached` ||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- | | | ||+---------------------------------------------+ ||
- | | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| ||
- | | | ||+---------------------------------------------+ ||
- | | | |+------------------------------------------------------------------------------------------------------------+|
- +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
- -Wsource-uses-openmp
- --------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`|
- +------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`|
- +------------------------------------------------------------------------------+
- -Wspir-compat
- -------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`|
- +----------------------------------------------------------------------------------------------------------------------+
- -Wstack-protector
- -----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstatic-float-init
- -------------------
- This diagnostic is enabled by default.
- Also controls `-Wgnu-static-float-init`_.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wstatic-in-inline
- ------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+
- -Wstatic-inline-explicit-instantiation
- --------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------+--------------------+--------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`|
- | ||:diagtext:`static`|| |
- | |+------------------+| |
- | ||:diagtext:`inline`|| |
- | |+------------------+| |
- +-------------------------------------------------+--------------------+--------------------------------------------------------+
- -Wstatic-local-in-inline
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- -Wstatic-self-init
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wstrict-aliasing
- -----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-aliasing=0
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-aliasing=1
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-aliasing=2
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow
- -----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=0
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=1
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=2
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=3
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=4
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-overflow=5
- -------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wstrict-prototypes
- -------------------
- **Diagnostic text:**
- +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
- | ||:diagtext:`function declaration is not` || |
- | |+------------------------------------------------------------+| |
- | ||:diagtext:`block declaration is not` || |
- | |+------------------------------------------------------------+| |
- | ||:diagtext:`old-style function definition is not preceded by`|| |
- | |+------------------------------------------------------------+| |
- +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
- -Wstrict-prototypes
- -------------------
- **Diagnostic text:**
- +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`|
- | ||:diagtext:`function declaration is not` || |
- | |+------------------------------------------------------------+| |
- | ||:diagtext:`block declaration is not` || |
- | |+------------------------------------------------------------+| |
- | ||:diagtext:`old-style function definition is not preceded by`|| |
- | |+------------------------------------------------------------+| |
- +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+
- -Wstrict-selector-match
- -----------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`|
- +--------------------------------------------------------------------------------------------------------------+
- -Wstring-compare
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`|
- | ||:diagtext:`a string literal`|| |
- | |+----------------------------+| |
- | ||:diagtext:`@encode` || |
- | |+----------------------------+| |
- +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+
- -Wstring-conversion
- -------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wstring-plus-char
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`|
- +------------------------------------------------------------------------------------------------------------------------------------------+
- -Wstring-plus-int
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- -Wstrlcpy-strlcat-size
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wstrncat-size
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`|
- +-------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`|
- +-------------------------------------------------------------------------------------------+
- -Wsuper-class-method-mismatch
- -----------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`|
- +--------------------------------------------------------------------------------------------------------------------------------+
- -Wswitch
- --------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+-----------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| ||
- | ||+-----------------------------------------------------------------------------------------------+ ||
- | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| ||
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| ||
- | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
- | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
- | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------------------------+
- -Wswitch-bool
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`|
- +-------------------------------------------------------------------------+
- -Wswitch-default
- ----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wswitch-enum
- -------------
- **Diagnostic text:**
- +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+----------------------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| ||
- | ||+----------------------------------------------------------------------------------------------------------+ ||
- | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| ||
- | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| ||
- | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ||
- | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
- | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`|||
- | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+||
- | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|
- +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsync-fetch-and-nand-semantics-changed
- ---------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wsynth
- -------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wtautological-compare
- ----------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_.
- **Diagnostic text:**
- +---------------------------+---------------------------+--------------------------------------------------+------------------------+
- |:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+|
- | ||:diagtext:`self-` || ||:diagtext:`false` ||
- | |+-------------------------+| |+----------------------+|
- | ||:diagtext:`array` |nbsp| || ||:diagtext:`true` ||
- | |+-------------------------+| |+----------------------+|
- | | | ||:diagtext:`a constant`||
- | | | |+----------------------+|
- +---------------------------+---------------------------+--------------------------------------------------+------------------------+
- +-------------------------------------------------------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+|
- | ||:diagtext:`false`||
- | |+-----------------+|
- | ||:diagtext:`true` ||
- | |+-----------------+|
- +-------------------------------------------------------------------------------------+-------------------+
- -Wtautological-constant-compare
- -------------------------------
- This diagnostic is enabled by default.
- Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_.
- **Diagnostic text:**
- +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
- | ||:placeholder:`D`|| ||:placeholder:`B`|| ||:diagtext:`false`||
- | |+----------------+| |+----------------+| |+-----------------+|
- | ||:placeholder:`B`|| ||:placeholder:`D`|| ||:diagtext:`true` ||
- | |+----------------+| |+----------------+| |+-----------------+|
- +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+
- -Wtautological-constant-out-of-range-compare
- --------------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
- | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`||
- | |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+|
- | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` ||
- | |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+|
- | ||:diagtext:`true` || ||:diagtext:`boolean expression` || | |
- | |+----------------------------------------------+| |+--------------------------------------------------------+| | |
- | ||:diagtext:`false` || | | | |
- | |+----------------------------------------------+| | | | |
- +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+
- -Wtautological-overlap-compare
- ------------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+|
- | ||:diagtext:`false`||
- | |+-----------------+|
- | ||:diagtext:`true` ||
- | |+-----------------+|
- +-----------------------------------------------------------------------------------------+-------------------+
- -Wtautological-pointer-compare
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
- |: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`|
- | ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
- | |+-------------------------+| |+-----------------------+| |+-----------------+| |
- | ||:diagtext:`parameter` || || || ||:diagtext:`false`|| |
- | |+-------------------------+| |+-----------------------+| |+-----------------+| |
- +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+
- +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+|
- | ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` ||
- | |+----------------------+| |+-----------------------+| |+-----------------+|
- | ||:diagtext:`function` || || || ||:diagtext:`false`||
- | |+----------------------+| |+-----------------------+| |+-----------------+|
- | ||:diagtext:`array` || | | | |
- | |+----------------------+| | | | |
- +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+
- -Wtautological-undefined-compare
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
- |: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| |+-----------------+|
- | ||:diagtext:`true` ||
- | |+-----------------+|
- | ||:diagtext:`false`||
- | |+-----------------+|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+|
- | ||:diagtext:`true` ||
- | |+-----------------+|
- | ||:diagtext:`false`||
- | |+-----------------+|
- +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
- -Wtautological-unsigned-enum-zero-compare
- -----------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
- | ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| ||:diagtext:`false`||
- | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
- | ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
- | |+------------------------------------+| |+------------------------------------+| |+-----------------+|
- +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+
- -Wtautological-unsigned-zero-compare
- ------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
- |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+|
- | ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| ||:diagtext:`false`||
- | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
- | ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || ||:diagtext:`true` ||
- | |+-------------------------------+| |+-------------------------------+| |+-----------------+|
- +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+
- -Wtentative-definition-incomplete-type
- --------------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wthread-safety
- ---------------
- Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_.
- -Wthread-safety-analysis
- ------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`|
- +---------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||+------------------------------------------+ ||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||+------------------------------------------+ ||
- | |+--------------------------------------------------------+|
- | ||+------------------------------------------------------+||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | ||+------------------------------------------------------+||
- | |+--------------------------------------------------------+|
- +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`|
- +------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`|
- +--------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`|
- | ||:diagtext:`shared` || ||:diagtext:`shared` || |
- | |+---------------------+| |+---------------------+| |
- | ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| |
- | |+---------------------+| |+---------------------+| |
- +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
- | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
- | |+-------------------+| |+---------------------------------+|
- | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
- | |+-------------------+| |+---------------------------------+|
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
- | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
- | |+-------------------+| |+--------------------------------------------------------+|
- | | | ||+------------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | | | ||+------------------------------------------------------+||
- | | | |+--------------------------------------------------------+|
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+|
- | ||:diagtext:`reading`|| ||:diagtext:`any mutex` ||
- | |+-------------------+| |+---------------------------------+|
- | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`||
- | |+-------------------+| |+---------------------------------+|
- +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+
- +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
- | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
- | |+-------------------+| |+--------------------------------------------------------+|
- | | | ||+------------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | | | ||+------------------------------------------------------+||
- | | | |+--------------------------------------------------------+|
- +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- -Wthread-safety-attributes
- --------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`|
- +----------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`|
- +----------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`|
- +------------------------------------------------------------------------------------------------------------------------------------+
- -Wthread-safety-beta
- --------------------
- **Diagnostic text:**
- +------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`|
- +------------------------------------------------------------------+
- -Wthread-safety-negative
- ------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wthread-safety-precise
- -----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||+------------------------------------------+ ||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||+------------------------------------------+ ||
- | |+--------------------------------------------------------+|
- | ||+------------------------------------------------------+||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | ||+------------------------------------------------------+||
- | |+--------------------------------------------------------+|
- +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
- | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
- | |+-------------------+| |+--------------------------------------------------------+|
- | | | ||+------------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | | | ||+------------------------------------------------------+||
- | | | |+--------------------------------------------------------+|
- +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||:diagtext:`reading`|| ||+------------------------------------------+ ||
- | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||:diagtext:`writing`|| ||+------------------------------------------+ ||
- | |+-------------------+| |+--------------------------------------------------------+|
- | | | ||+------------------------------------------------------+||
- | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | | | ||+------------------------------------------------------+||
- | | | |+--------------------------------------------------------+|
- +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- -Wthread-safety-reference
- -------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||+------------------------------------------+ ||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||+------------------------------------------+ ||
- | |+--------------------------------------------------------+|
- | ||+------------------------------------------------------+||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | ||+------------------------------------------------------+||
- | |+--------------------------------------------------------+|
- +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+|
- | ||+------------------------------------------+ ||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| ||
- | ||+------------------------------------------+ ||
- | |+--------------------------------------------------------+|
- | ||+------------------------------------------------------+||
- | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`|||
- | ||+------------------------------------------------------+||
- | |+--------------------------------------------------------+|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+
- -Wthread-safety-verbose
- -----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`|
- +---------------------------------------------------------------------+
- -Wtrigraphs
- -----------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`|
- +-----------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`|
- +------------------------------------------------------------------+
- +-------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`|
- +-------------------------------------------------------+
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`|
- +-------------------------------------------------------------------------------+
- -Wtype-limits
- -------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wtype-safety
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+|
- | ||+-------------------------------------------------+||
- | |||:diagtext:`that requires` |nbsp| :placeholder:`D`|||
- | ||+-------------------------------------------------+||
- | |+---------------------------------------------------+|
- | || ||
- | |+---------------------------------------------------+|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+
- +---------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`|
- +---------------------------------------------------------------------------------------------------+
- -Wtypedef-redefinition
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`|
- +--------------------------------------------------------------------------------------------------------------------------+
- -Wtypename-missing
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------+
- -Wunable-to-open-stats-file
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunavailable-declarations
- --------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`|
- +----------------------------------------------------------------------------------------------------------------------+
- -Wundeclared-selector
- ---------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wundef
- -------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`|
- +---------------------------------------------------------------------------------------------+
- -Wundefined-bool-conversion
- ---------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wundefined-func-template
- -------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wundefined-inline
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`|
- +----------------------------------------------------------------------------------------------------------------+
- -Wundefined-internal
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+----------------------+-----------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +---------------------------+----------------------+-----------------------------------------------------------------------------------+
- -Wundefined-internal-type
- -------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
- |: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`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+
- -Wundefined-reinterpret-cast
- ----------------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wundefined-var-template
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunevaluated-expression
- ------------------------
- This diagnostic is enabled by default.
- Also controls `-Wpotentially-evaluated-expression`_.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wunguarded-availability
- ------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wunguarded-availability-new`_.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunguarded-availability-new
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunicode
- ---------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`|
- +-------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`|
- +-----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`|
- +---------------------------------------------------------------------------------------------+
- -Wunicode-whitespace
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`|
- +-------------------------------------------------------------------------------+
- -Wuninitialized
- ---------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`|
- +-----------------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`|
- +--------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`|
- +------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`|
- +---------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+|
- | ||:diagtext:`used here` ||
- | |+-----------------------------+|
- | ||:diagtext:`captured by block`||
- | |+-----------------------------+|
- +------------------------------------------------------------------------------------------------------------------------+-------------------------------+
- -Wunknown-argument
- ------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wunknown-attributes
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wunknown-escape-sequence
- -------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`|
- +-----------------------------------------------------------------------------------------------+
- -Wunknown-pragmas
- -----------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`|
- +------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`|
- +--------------------------------------------------------------------------+
- +-----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`|
- +-----------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`|
- +--------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`|
- +--------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`|
- +----------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`|
- +----------------------------------------------------------------------------+
- +-------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`|
- +-------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`|
- +--------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`|
- +----------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`|
- +--------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`|
- +----------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`|
- +----------------------------------------------------------------------------------------------------+
- -Wunknown-sanitizers
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`|
- +-----------------------------------------------------------------------------------------------+
- -Wunknown-warning-option
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`|
- +----------------------------------------------------------------------------------------------------+
- +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+|
- | ||:diagtext:`warning`|| || ||
- | |+-------------------+| |+------------------------------------------------------------+|
- | ||:diagtext:`remark` || ||+----------------------------------------------------------+||
- | |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`|||
- | | | ||+----------------------------------------------------------+||
- | | | |+------------------------------------------------------------+|
- +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunnamed-type-template-args
- ----------------------------
- Some of the diagnostics controlled by this flag are enabled by default.
- Also controls `-Wc++98-compat-unnamed-type-template-args`_.
- **Diagnostic text:**
- +--------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`|
- +--------------------------------------------------------------------------+
- -Wunneeded-internal-declaration
- -------------------------------
- **Diagnostic text:**
- +---------------------------+----------------------+---------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +---------------------------+----------------------+---------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunneeded-member-function
- --------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`|
- +---------------------------------------------------------------------------------------------------------------------------------------+
- -Wunreachable-code
- ------------------
- Also controls `-Wunreachable-code-loop-increment`_.
- **Diagnostic text:**
- +------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`code will never be executed`|
- +------------------------------------------------------------------+
- -Wunreachable-code-aggressive
- -----------------------------
- Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_.
- -Wunreachable-code-break
- ------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`|
- +---------------------------------------------------------------------+
- -Wunreachable-code-loop-increment
- ---------------------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`|
- +-------------------------------------------------------------------------------------------------+
- -Wunreachable-code-return
- -------------------------
- **Diagnostic text:**
- +----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`|
- +----------------------------------------------------------------------+
- -Wunsequenced
- -------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`|
- +----------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------+
- -Wunsupported-abs
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunsupported-availability-guard
- --------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
- |:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`|
- | ||:diagtext:`@available` || ||:diagtext:`@available` || |
- | |+----------------------------------+| |+----------------------------------+| |
- | ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| |
- | |+----------------------------------+| |+----------------------------------+| |
- +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+
- -Wunsupported-cb
- ----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunsupported-dll-base-class-template
- -------------------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`|
- | ||:diagtext:`already instantiated` || |
- | |+----------------------------------+| |
- | ||:diagtext:`explicitly specialized`|| |
- | |+----------------------------------+| |
- +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+
- -Wunsupported-friend
- --------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`|
- +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunsupported-gpopt
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`|
- | || || |
- | |+-----------------------------------------+| |
- | ||:diagtext:`the implicit usage of` |nbsp| || |
- | |+-----------------------------------------+| |
- +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+
- -Wunsupported-nan
- -----------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------+
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunsupported-visibility
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`|
- +------------------------------------------------------------------------------------------------------+
- -Wunusable-partial-specialization
- ---------------------------------
- This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error.
- **Diagnostic text:**
- +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`|
- | ||:diagtext:`class` || ||:diagtext:`a template parameter`|| |
- | |+--------------------+| |+--------------------------------+| |
- | ||:diagtext:`variable`|| ||:diagtext:`template parameters` || |
- | |+--------------------+| |+--------------------------------+| |
- +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+
- -Wunused
- --------
- Some of the diagnostics controlled by this flag are enabled by default.
- Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_.
- -Wunused-argument
- -----------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wunused-command-line-argument
- ------------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`|
- +-------------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+|
- | ||+------------------------------------------------------------------+||
- | ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`|||
- | ||+------------------------------------------------------------------+||
- | |+--------------------------------------------------------------------+|
- | || ||
- | |+--------------------------------------------------------------------+|
- +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`|
- +----------------------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+|
- | ||+-------------------------------------------------------------------------+||
- | ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`|||
- | ||+-------------------------------------------------------------------------+||
- | |+---------------------------------------------------------------------------+|
- | || ||
- | |+---------------------------------------------------------------------------+|
- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+
- +---------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`|
- +---------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`|
- +----------------------------------------------------------------------------------------------------------------------+
- -Wunused-comparison
- -------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------+-----------------------------------------+--------------------------------------------+
- |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`|
- | ||+----------------+--------------------+|| |
- | |||+--------------+|:diagtext:`equality`||| |
- | |||| || ||| |
- | |||+--------------+| ||| |
- | ||||:diagtext:`in`|| ||| |
- | |||+--------------+| ||| |
- | ||+----------------+--------------------+|| |
- | |+---------------------------------------+| |
- | ||:diagtext:`relational` || |
- | |+---------------------------------------+| |
- +---------------------------+-----------------------------------------+--------------------------------------------+
- -Wunused-const-variable
- -----------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------+
- -Wunused-exception-parameter
- ----------------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------+
- -Wunused-function
- -----------------
- Also controls `-Wunneeded-internal-declaration`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------+
- -Wunused-getter-return-value
- ----------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`|
- +------------------------------------------------------------------------------------------------------------------+
- -Wunused-label
- --------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`|
- +---------------------------------------------------------------------------+
- -Wunused-lambda-capture
- -----------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+|
- | ||:diagtext:`used` ||
- | |+------------------------------------------------+|
- | ||:diagtext:`required to be captured for this use`||
- | |+------------------------------------------------+|
- +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+
- -Wunused-local-typedef
- ----------------------
- **Diagnostic text:**
- +-----------------------------------------------------+------------------------+------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`|
- | ||:diagtext:`typedef` || |
- | |+----------------------+| |
- | ||:diagtext:`type alias`|| |
- | |+----------------------+| |
- +-----------------------------------------------------+------------------------+------------------------+
- -Wunused-local-typedefs
- -----------------------
- Synonym for `-Wunused-local-typedef`_.
- -Wunused-macros
- ---------------
- **Diagnostic text:**
- +--------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`macro is not used`|
- +--------------------------------------------------------+
- -Wunused-member-function
- ------------------------
- Also controls `-Wunneeded-member-function`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------+
- -Wunused-parameter
- ------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------+
- -Wunused-private-field
- ----------------------
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`|
- +-----------------------------------------------------------------------------------------------------------+
- -Wunused-property-ivar
- ----------------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`|
- +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunused-result
- ---------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- -Wunused-template
- -----------------
- Also controls `-Wunneeded-internal-declaration`_.
- **Diagnostic text:**
- +-----------------------------------------------------+----------------------+----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`|
- | ||:diagtext:`function`|| |
- | |+--------------------+| |
- | ||:diagtext:`variable`|| |
- | |+--------------------+| |
- +-----------------------------------------------------+----------------------+----------------------------------------------------+
- -Wunused-value
- --------------
- This diagnostic is enabled by default.
- Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`|
- +-------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`|
- +----------------------------------------------------------------------------------------------------------------------------+
- +---------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression result unused`|
- +---------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`|
- +-----------------------------------------------------------------------------------------------+
- -Wunused-variable
- -----------------
- Also controls `-Wunused-const-variable`_.
- **Diagnostic text:**
- +------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`|
- +------------------------------------------------------------------------------+
- -Wunused-volatile-lvalue
- ------------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`|
- +----------------------------------------------------------------------------------------------------------------+
- -Wused-but-marked-unused
- ------------------------
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`|
- +---------------------------------------------------------------------------------------------+
- -Wuser-defined-literals
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+|
- | ||:diagtext:`; no literal will invoke this operator`||
- | |+--------------------------------------------------+|
- | || ||
- | |+--------------------------------------------------+|
- +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+
- -Wuser-defined-warnings
- -----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- The text of this diagnostic is not controlled by Clang.
- -Wvarargs
- ---------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +-----------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`|
- +-----------------------------------------------------------------------------------------------------+
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |: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`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`|
- | ||:diagtext:`an object that undergoes default argument promotion`|| |
- | |+---------------------------------------------------------------+| |
- | ||:diagtext:`an object of reference type` || |
- | |+---------------------------------------------------------------+| |
- | ||:diagtext:`a parameter declared with the 'register' keyword` || |
- | |+---------------------------------------------------------------+| |
- +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+
- -Wvariadic-macros
- -----------------
- Some of the diagnostics controlled by this flag are enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`|
- +--------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`|
- +-----------------------------------------------------------------------------------------------------------+
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`|
- +------------------------------------------------------------------------+
- -Wvec-elem-size
- ---------------
- This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wvector-conversion
- -------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------+----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+|
- | ||:diagtext:`assigning to different types` ||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`passing to parameter of different type` ||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`returning from function with different return type`||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`converting between types` ||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`initializing with expression of different type` ||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`sending to parameter of different type` ||
- | |+--------------------------------------------------------------+|
- | ||:diagtext:`casting between types` ||
- | |+--------------------------------------------------------------+|
- +------------------------------------------------------------------------+----------------------------------------------------------------+
- -Wvector-conversions
- --------------------
- Synonym for `-Wvector-conversion`_.
- -Wvexing-parse
- --------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`|
- +----------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`|
- +-----------------------------------------------------------------------------------------------+
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`|
- +-----------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wvisibility
- ------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
- +---------------------------------------------------------------------------------------------------------------------------------------------+
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`|
- +----------------------------------------------------------------------------------------------------------------------------------------------+
- -Wvla
- -----
- **Diagnostic text:**
- +-----------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable length array used`|
- +-----------------------------------------------------------------+
- -Wvla-extension
- ---------------
- **Diagnostic text:**
- +-------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`|
- +-------------------------------------------------------------------------------+
- -Wvoid-ptr-dereference
- ----------------------
- This diagnostic is enabled by default.
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`|
- +--------------------------------------------------------------------------------------------------------------------+
- -Wvolatile-register-var
- -----------------------
- This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
- -Wweak-template-vtables
- -----------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`|
- +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wweak-vtables
- --------------
- **Diagnostic text:**
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`|
- +------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- -Wwritable-strings
- ------------------
- This diagnostic is enabled by default.
- Also controls `-Wdeprecated-writable-strings`_.
- **Diagnostic text:**
- +-------------------------------------------------------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`|
- +-------------------------------------------------------------------------------------------------------------------------+
- -Wwrite-strings
- ---------------
- Synonym for `-Wwritable-strings`_.
- -Wzero-as-null-pointer-constant
- -------------------------------
- **Diagnostic text:**
- +--------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`|
- +--------------------------------------------------------------------+
- -Wzero-length-array
- -------------------
- **Diagnostic text:**
- +------------------------------------------------------------------------+
- |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`|
- +------------------------------------------------------------------------+
|