ChangeLog-2021 352 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013
  1. 2021-12-15 François Dumont <fdumont@gcc.gnu.org>
  2. * include/bits/stl_iterator.h
  3. (std::pointer_traits<__gnu_cxx::__normal_iterator<>>): Remove.
  4. (std::__to_address(const __gnu_cxx::__normal_iterator<>&)): New for C++11 to C++17.
  5. * include/debug/safe_iterator.h
  6. (std::__to_address(const __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<>,
  7. _Sequence>&)): New for C++11 to C++17.
  8. * testsuite/24_iterators/normal_iterator/to_address.cc: Add check on std::vector::iterator
  9. to validate both __gnu_cxx::__normal_iterator<> __to_address overload in normal mode and
  10. __gnu_debug::_Safe_iterator in _GLIBCXX_DEBUG mode.
  11. 2021-12-15 Jakub Jelinek <jakub@redhat.com>
  12. PR libstdc++/71557
  13. * include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
  14. Compare characters other than format specifiers and whitespace
  15. case insensitively.
  16. (_M_extract_name): Compare characters case insensitively.
  17. * testsuite/22_locale/time_get/get/char/71557.cc: New test.
  18. * testsuite/22_locale/time_get/get/wchar_t/71557.cc: New test.
  19. 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
  20. PR libstdc++/103687
  21. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Restore
  22. original locale before returning.
  23. * testsuite/22_locale/time_get/get_time/char/2.cc: Check for %p
  24. in locale's T_FMT and adjust accordingly.
  25. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
  26. 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
  27. PR libstdc++/102447
  28. * include/bits/regex_compiler.h (_Compiler::_BracketState): New
  29. class.
  30. (_Compiler::_BrackeyMatcher): New alias template.
  31. (_Compiler::_M_expression_term): Change pair<bool, CharT>
  32. parameter to _BracketState. Process first character for
  33. ECMAScript syntax as well as POSIX.
  34. * include/bits/regex_compiler.tcc
  35. (_Compiler::_M_insert_bracket_matcher): Pass _BracketState.
  36. (_Compiler::_M_expression_term): Use _BracketState to store
  37. state between calls. Improve handling of dashes in ranges.
  38. * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
  39. Add more tests for ranges containing dashes. Check invalid
  40. ranges with character class at the beginning.
  41. 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
  42. * include/ext/pointer.h (_Relative_pointer_impl::_UIntPtrType):
  43. Rename to uintptr_t and define as __UINTPTR_TYPE__.
  44. 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
  45. * include/bits/regex_constants.h (__syntax_option, __match_flag):
  46. Remove.
  47. (syntax_option_type, match_flag_type): Define enumerators.
  48. Use to initialize globals. Add constexpr to compound assignment
  49. operators.
  50. * include/bits/regex_error.h (error_type): Add comment.
  51. * testsuite/28_regex/constants/constexpr.cc: Remove comment.
  52. * testsuite/28_regex/constants/error_type.cc: Improve comment.
  53. * testsuite/28_regex/constants/match_flag_type.cc: Check bitmask
  54. requirements.
  55. * testsuite/28_regex/constants/syntax_option_type.cc: Likewise.
  56. 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
  57. * include/bits/regex_compiler.tcc (_Compiler::_M_match_token):
  58. Use reserved name for parameter.
  59. * testsuite/17_intro/names.cc: Check "token".
  60. 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
  61. * scripts/make_exports.pl: Replace '?' with '.' when turning
  62. a glob into a regex.
  63. 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
  64. * include/bits/ranges_base.h (ranges::size, ranges::empty): Add
  65. explicit check for unbounded arrays before using ranges::begin.
  66. * testsuite/std/ranges/access/empty.cc: Check handling of unbounded
  67. arrays.
  68. * testsuite/std/ranges/access/size.cc: Likewise.
  69. 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
  70. PR libstdc++/103664
  71. * include/bits/regex.h (__regex_replace): Declare.
  72. (regex_replace): Use it.
  73. * include/bits/regex.tcc (__regex_replace): Replace regex_replace
  74. definition with __regex_replace.
  75. * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.
  76. 2021-12-11 Jason Merrill <jason@redhat.com>
  77. PR c++/103534
  78. * include/bits/basic_string.h (append (basic_string)): Call pointer
  79. append instead of _M_append directly.
  80. 2021-12-10 Jakub Jelinek <jakub@redhat.com>
  81. PR libstdc++/71367
  82. * config/locale/dragonfly/time_members.cc (_M_initialize_timepunct):
  83. Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty
  84. string.
  85. * config/locale/gnu/time_members.cc (_M_initialize_timepunct):
  86. Likewise.
  87. * config/locale/generic/time_members.cc (_M_initialize_timepunct):
  88. Likewise.
  89. * include/bits/locale_facets_nonio.h (_M_am_pm_format): New method.
  90. * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle
  91. %r.
  92. * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format
  93. with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4.
  94. * testsuite/22_locale/time_get/get/char/71367.cc: New test.
  95. * testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test.
  96. 2021-12-10 Jakub Jelinek <jakub@redhat.com>
  97. PR libstdc++/78714
  98. * include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
  99. Mention in function comment it interprets strptime format string
  100. rather than strftime. Handle %a and %A the same by accepting both
  101. full and abbreviated names. Similarly handle %h, %b and %B the same.
  102. Handle %d and %e the same by accepting possibly optional single space
  103. and 1 or 2 digits. For %I store tm_hour 0 instead of tm_hour 12. For
  104. %t and %n skip any whitespace. Handle %p and %%. For whitespace in
  105. the string skip any whitespace.
  106. (_M_extract_num): For __len == 2 accept 1 or 2 digits rather than
  107. always 2. Don't punt early if __value * __mult is larget than __max
  108. or smaller than __min - __mult, instead punt if __value > __max.
  109. At the end verify __value is in between __min and __max and punt
  110. otherwise.
  111. (_M_extract_name): Allow non-unique names or names which are prefixes
  112. of other names. Don't recompute lengths of names for every character.
  113. * testsuite/22_locale/time_get/get/char/3.cc: New test.
  114. * testsuite/22_locale/time_get/get/wchar_t/3.cc: New test.
  115. * testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use
  116. 62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'.
  117. * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01):
  118. Similarly.
  119. * testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM"
  120. to the string.
  121. * testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect
  122. tm_hour 1 rather than 0.
  123. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add
  124. " PM" to the string.
  125. * testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect
  126. tm_hour 1 rather than 0.
  127. 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
  128. PR libstdc++/103638
  129. * include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS
  130. before using std::mutex and std::__condvar.
  131. 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
  132. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_
  133. prefix to NO_SLEEP macro.
  134. * config.h.in: Regenerate.
  135. * configure: Regenerate.
  136. 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
  137. * include/bits/char_traits.h: Change pragma push to pop.
  138. 2021-12-10 Thomas Rodgers <rodgert@twrodgers.com>
  139. PR libstdc++/102994
  140. * include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()):
  141. Add const qualifier.
  142. * include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()):
  143. Likewise.
  144. * testsuite/29_atomics/atomic/wait_notify/102994.cc:
  145. New test.
  146. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  147. * include/bits/stl_iterator.h (operator==, operator<=>): Define
  148. overloads for homogeneous specializations of reverse_iterator,
  149. __normal_iterator and move_iterator.
  150. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  151. * testsuite/20_util/scoped_allocator/69293_neg.cc: Remove
  152. dg-error for c++20.
  153. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  154. PR libstdc++/85813
  155. * libsupc++/exception_ptr.h (__dest_thunk): Add macro for
  156. destructor calling convention.
  157. (make_exception_ptr): Enable non-throwing implementation for
  158. -fno-exceptions and for non-standard calling conventions. Use
  159. always_inline attribute on the useless no-rtti no-exceptions
  160. definition.
  161. * testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so
  162. the no-op implementation is still used.
  163. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  164. PR libstdc++/103630
  165. * libsupc++/exception_ptr.h (exception_ptr): Fix exception
  166. specifications on inline definitions.
  167. (make_exception_ptr): Decay the template parameter. Use typeid
  168. of the static type.
  169. * testsuite/18_support/exception_ptr/103630.cc: New test.
  170. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  171. PR libstdc++/59769
  172. * config/io/basic_file_stdio.cc (fopen_mode): Add support for
  173. exclusive mode.
  174. * include/bits/ios_base.h (_S_noreplace): Define new enumerator.
  175. (ios_base::__noreplace): Define.
  176. (ios_base::noreplace): Define for C++23.
  177. * include/std/version (__cpp_lib_ios_noreplace): Define.
  178. * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test.
  179. * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test.
  180. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  181. PR libstdc++/103382
  182. * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old
  183. symbol if .symver renaming is supported.
  184. (GLIBCXX_3.4.30): Export new symbol if .symver renaming is
  185. supported.
  186. * doc/xml/manual/evolution.xml: Document change.
  187. * doc/html/manual/api.html: Regenerate.
  188. * include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until):
  189. Remove noexcept.
  190. * include/std/condition_variable (condition_variable::wait):
  191. Likewise.
  192. * src/c++11/condition_variable.cc (condition_variable::wait):
  193. Likewise.
  194. * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
  195. Define nothrow wrapper around std::condition_variable::wait and
  196. export the old symbol as an alias to it.
  197. * testsuite/30_threads/condition_variable/members/103382.cc: New test.
  198. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  199. PR libstdc++/92300
  200. * include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)):
  201. Check whether the arguments can be looked up directly without
  202. constructing a temporary node first.
  203. * include/bits/stl_pair.h (__is_pair): Move to here, from ...
  204. * include/bits/uses_allocator_args.h (__is_pair): ... here.
  205. * testsuite/23_containers/map/modifiers/emplace/92300.cc: New test.
  206. * testsuite/23_containers/map/modifiers/insert/92300.cc: New test.
  207. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  208. * include/bits/cow_string.h (basic_string::_M_leak_hard): Do not
  209. reallocate an empty string.
  210. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  211. PR libstdc++/103332
  212. PR libstdc++/102958
  213. PR libstdc++/103483
  214. * include/bits/char_traits.h: Suppress stringop and array-bounds
  215. warnings.
  216. 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
  217. PR libstdc++/64135
  218. * config/allocator/new_allocator_base.h: Include
  219. <bits/new_allocator.h> instead of <ext/new_allocator.h>.
  220. (__allocator_base): Use std::__new_allocator instead of
  221. __gnu_cxx::new_allocator.
  222. * doc/xml/manual/allocator.xml: Document new default base class
  223. for std::allocator.
  224. * doc/xml/manual/evolution.xml: Likewise.
  225. * doc/html/*: Regenerate.
  226. * include/Makefile.am: Add bits/new_allocator.h.
  227. * include/Makefile.in: Regenerate.
  228. * include/experimental/memory_resource (new_delete_resource):
  229. Use std::__new_allocator instead of __gnu_cxx::new_allocator.
  230. * include/ext/new_allocator.h (new_allocator): Derive from
  231. std::__new_allocator. Move implementation to ...
  232. * include/bits/new_allocator.h: New file.
  233. * testsuite/20_util/allocator/64135.cc: New test.
  234. 2021-12-08 Jonathan Wakely <jwakely@redhat.com>
  235. * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()):
  236. Make shift width conditional on __double_word condition.
  237. 2021-12-08 François Dumont <fdumont@gcc.gnu.org>
  238. * include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and
  239. __niter_wrap to limit _GLIBCXX_DEBUG mode impact.
  240. * include/std/vector (erase_if): Likewise.
  241. 2021-12-08 Maged Michael <maged.michael@gmail.com>
  242. Jonathan Wakely <jwakely@redhat.com>
  243. * include/bits/c++config (_GLIBCXX_TSAN): Define macro
  244. indicating that TSan is in use.
  245. * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release):
  246. Replace definition in primary template with explicit
  247. specializations for _S_mutex and _S_atomic policies.
  248. (_Sp_counted_base<_S_mutex>::_M_release): New specialization.
  249. (_Sp_counted_base<_S_atomic>::_M_release): New specialization,
  250. using a single atomic load to access both reference counts at
  251. once.
  252. (_Sp_counted_base::_M_release_last_use): New member function.
  253. 2021-12-07 Tamar Christina <tamar.christina@arm.com>
  254. Revert:
  255. 2021-11-19 Tamar Christina <tamar.christina@arm.com>
  256. PR libstdc++/103305
  257. * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
  258. space, print, graph, cntrl, punct, alnum, blank): Use short or long
  259. names depending on if short ones are defined.
  260. 2021-12-04 Jonathan Wakely <jwakely@redhat.com>
  261. PR libstdc++/103549
  262. * include/bits/regex.h (match_results): Give names to template
  263. parameters in first declaration.
  264. (match_results::_M_begin): Add default member-initializer.
  265. 2021-12-03 Jonathan Wakely <jwakely@redhat.com>
  266. * include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new
  267. RAII helper for creating and inserting new nodes.
  268. (_Rb_tree::_M_insert_node): Use trailing-return-type to simplify
  269. out-of-line definition.
  270. (_Rb_tree::_M_insert_lower_node): Likewise.
  271. (_Rb_tree::_M_insert_equal_lower_node): Likewise.
  272. (_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node.
  273. (_Rb_tree::_M_emplace_equal): Likewise.
  274. (_Rb_tree::_M_emplace_hint_unique): Likewise.
  275. (_Rb_tree::_M_emplace_hint_equal): Likewise.
  276. 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
  277. * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
  278. (logic_error, runtime_error): Remove custom definitions.
  279. 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
  280. PR libstdc++/103340
  281. PR libstdc++/103400
  282. PR libstdc++/103381
  283. * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap
  284. and pool options.
  285. * configure: Regenerate.
  286. * config/allocator/bitmap_allocator_base.h: Removed.
  287. * config/allocator/mt_allocator_base.h: Removed.
  288. * config/allocator/pool_allocator_base.h: Removed.
  289. * doc/xml/manual/allocator.xml: Update.
  290. * doc/xml/manual/configure.xml: Update.
  291. * doc/xml/manual/evolution.xml: Document removal.
  292. * doc/xml/manual/mt_allocator.xml: Editorial tweaks.
  293. * doc/html/manual/*: Regenerate.
  294. 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
  295. * include/bits/cow_string.h (basic_string::_M_is_leaked()):
  296. Revert change to check __is_single_threaded() before using
  297. atomic load.
  298. 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
  299. PR libstdc++/103501
  300. * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)):
  301. Clear container if elements have been moved-from.
  302. * testsuite/23_containers/map/allocator/move_cons.cc: Expect
  303. moved-from container to be empty.
  304. * testsuite/23_containers/multimap/allocator/move_cons.cc:
  305. Likewise.
  306. * testsuite/23_containers/multiset/allocator/103501.cc: New test.
  307. * testsuite/23_containers/set/allocator/103501.cc: New test.
  308. 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
  309. * doc/doxygen/user.cfg.in (PREDEFINED): Change macro name.
  310. * include/bits/allocator.h (allocate, deallocate): Use
  311. std::__is_constant_evaluated() unconditionally, instead of
  312. checking whether std::is_constant_evaluated() (or the built-in)
  313. can be used.
  314. * include/bits/basic_string.h: Check new macro. call
  315. std::is_constant_evaluated() directly in C++20-only code that is
  316. guarded by a suitable macro.
  317. * include/bits/basic_string.tcc: Likewise.
  318. * include/bits/c++config (__is_constant_evaluated): Define.
  319. (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ...
  320. (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro.
  321. * include/bits/char_traits.h (char_traits): Replace conditional
  322. calls to std::is_constant_evaluated with unconditional calls to
  323. std::__is_constant_evaluated.
  324. * include/bits/cow_string.h: Use new macro.
  325. * include/bits/ranges_algobase.h (__copy_or_move): Replace
  326. conditional calls to std::is_constant_evaluated with unconditional
  327. calls to std::__is_constant_evaluated.
  328. (__copy_or_move_backward, __fill_n_fn): Likewise.
  329. * include/bits/ranges_cmp.h (ranges::less): Likewise.
  330. * include/bits/stl_algobase.h (lexicographical_compare_three_way):
  331. Likewise.
  332. * include/bits/stl_bvector.h: Call std::is_constant_evaluated
  333. directly in C++20-only code that is guarded by a suitable macro.
  334. * include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n):
  335. Replace is_constant_evaluated with __is_constant_evaluated.
  336. * include/bits/stl_function.h (greater, less, greater_equal)
  337. (less_equal): Replace __builtin_is_constant_evaluated and
  338. __builtin_constant_p with __is_constant_evaluated.
  339. * include/bits/stl_vector.h: Call std::is_constant_evaluated()
  340. in C++20-only code.
  341. * include/debug/helper_functions.h (__check_singular): Use
  342. __is_constant_evaluated instead of built-in, or remove check
  343. entirely.
  344. * include/std/array (operator<=>): Use __is_constant_evaluated
  345. unconditionally.
  346. * include/std/bit (__bit_ceil): Likewise.
  347. * include/std/type_traits (is_constant_evaluated): Define using
  348. 'if consteval' if possible.
  349. * include/std/version: Use new macro.
  350. * libsupc++/compare: Use __is_constant_evaluated instead of
  351. __builtin_is_constant_evaluated.
  352. * testsuite/23_containers/array/tuple_interface/get_neg.cc:
  353. Adjust dg-error lines.
  354. 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
  355. * include/bits/cow_string.h (basic_string::_M_is_leaked): Use
  356. non-atomic load when __is_single_threaded() is true.
  357. (basic_string::_M_is_shared): Likewise.
  358. (basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]:
  359. Use non-atomic store when rvalue is not shared.
  360. 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
  361. * src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove
  362. micro-optimization for "/" path.
  363. * src/filesystem/path.cc (path::_M_split_cmpts()): Only access
  364. the contents of _M_pathname using const member functions.
  365. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  366. * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow
  367. moved-from string to be non-empty.
  368. * testsuite/21_strings/basic_string/cons/char/moveable2.cc:
  369. Likewise.
  370. * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
  371. Likewise.
  372. * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc:
  373. Likewise.
  374. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
  375. Likewise.
  376. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
  377. Likewise.
  378. * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
  379. Construct empty string before setting oom flag.
  380. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
  381. Likewise.
  382. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  383. * include/bits/cow_string.h (basic_string(basic_string&&)): Fix
  384. mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case.
  385. * testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc:
  386. Remove outdated comment.
  387. * testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc:
  388. Likewise.
  389. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  390. * src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
  391. select new ABI.
  392. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  393. * include/bits/stl_vector.h (vector::_S_do_relocate): Remove
  394. C++20 constexpr specifier.
  395. (vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a
  396. directly without tag dispatching.
  397. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  398. PR libstdc++/103453
  399. * config/allocator/malloc_allocator_base.h
  400. (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang.
  401. * config/allocator/new_allocator_base.h
  402. (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise.
  403. 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
  404. * doc/xml/manual/debug_mode.xml: Replace "his or her" with "their".
  405. * doc/html/manual/debug_mode_design.html: Regenerate.
  406. 2021-11-30 Jakub Jelinek <jakub@redhat.com>
  407. * include/std/bit (byteswap): Add [[nodiscard]].
  408. 2021-11-28 Jakub Jelinek <jakub@redhat.com>
  409. * include/std/bit (__cpp_lib_byteswap, byteswap): Define.
  410. * include/std/version (__cpp_lib_byteswap): Define.
  411. * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test.
  412. * testsuite/26_numerics/bit/bit.byteswap/version.cc: New test.
  413. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  414. * testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to
  415. account for LWG 3435 resolution.
  416. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  417. * include/bits/stl_uninitialized.h (__relocate_a_1): Do not use
  418. memmove during constant evaluation.
  419. * include/bits/stl_vector.h (vector::_S_use_relocate()): Do not
  420. check is_constant_evaluated in always-constexpr function.
  421. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  422. PR libstdc++/96592
  423. * include/std/tuple (tuple::is_constructible): Remove.
  424. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  425. * testsuite/29_atomics/atomic_float/1.cc: Reorder directives.
  426. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  427. * testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
  428. Change dg-do compile to run.
  429. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
  430. Likewise.
  431. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  432. * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
  433. Remove xfail selector.
  434. * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
  435. Likewise.
  436. Likewise.
  437. * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
  438. Likewise.
  439. * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
  440. Likewise.
  441. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
  442. Likewise.
  443. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
  444. Likewise.
  445. * testsuite/23_containers/span/101411.cc: Likewise.
  446. * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
  447. * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
  448. Likewise.
  449. * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
  450. * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
  451. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
  452. Likewise.
  453. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
  454. Likewise.
  455. * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
  456. Likewise.
  457. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
  458. Likewise.
  459. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
  460. Likewise.
  461. * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
  462. Likewise.
  463. 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
  464. * testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address
  465. tests to ...
  466. * testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std
  467. option before checking effective target.
  468. 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
  469. * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
  470. Remove dg-error for C++11_only error.
  471. 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
  472. PR libstdc++/96416
  473. * include/bits/ptr_traits.h (pointer_traits): Reimplement to be
  474. SFINAE-friendly (LWG 3545).
  475. * testsuite/20_util/pointer_traits/lwg3545.cc: New test.
  476. * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line.
  477. * testsuite/20_util/to_address/lwg3545.cc: New test.
  478. 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
  479. PR libstdc++/101608
  480. * include/bits/ranges_algobase.h (__fill_n_fn): Check for
  481. constant evaluation before using memset.
  482. * testsuite/25_algorithms/fill_n/constrained.cc: Check
  483. byte-sized values as well.
  484. 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
  485. * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
  486. debug mode.
  487. * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
  488. 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
  489. * testsuite/lib/libstdc++.exp: Rename effective target keywords
  490. to avoid dashes in the name.
  491. * testsuite/*: Update effective targe keywords.
  492. 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
  493. PR libstdc++/103086
  494. * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
  495. with non-empty pointer and non-empty deleter.
  496. 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
  497. * testsuite/18_support/50594.cc: Check effective target.
  498. * testsuite/20_util/allocator/1.cc: Likewise.
  499. * testsuite/20_util/allocator/overaligned.cc: Likewise.
  500. * testsuite/23_containers/unordered_map/96088.cc: Likewise.
  501. * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
  502. * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
  503. * testsuite/23_containers/unordered_set/96088.cc: Likewise.
  504. * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
  505. * testsuite/ext/throw_allocator/check_new.cc: Likewise.
  506. * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new):
  507. Define new proc.
  508. 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
  509. PR libstdc++/103381
  510. * include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
  511. instead of <functional>.
  512. 2021-11-22 Jonathan Wakely <jwakely@redhat.com>
  513. * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition
  514. checking for C++14.
  515. 2021-11-20 François Dumont <fdumont@gcc.gnu.org>
  516. * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
  517. parameter. Use it to get iterators to work with.
  518. * include/debug/macros.h (__glibcxx_check_erase2): New.
  519. * include/debug/map.h (map<>::erase(_Base_const_iterator)): New.
  520. (map<>::erase(const_iterator)): Use latter.
  521. * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New.
  522. (multimap<>::erase(const_iterator)): Use latter.
  523. * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New.
  524. (multiset<>::erase(const_iterator)): Use latter.
  525. * include/debug/set.h (set<>::erase(_Base_const_iterator)): New.
  526. (set<>::erase(const_iterator)): Use latter.
  527. * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New.
  528. (unordered_multimap<>::erase(const_iterator)): New.
  529. * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New.
  530. (unordered_multiset<>::erase(const_iterator)): New.
  531. * include/experimental/map (erase_if): Adapt.
  532. * include/experimental/set (erase_if): Adapt.
  533. * include/experimental/unordered_map (erase_if): Adapt.
  534. * include/experimental/unordered_set (erase_if): Adapt.
  535. * include/std/map (erase_if): Adapt.
  536. * include/std/set (erase_if): Adapt.
  537. * include/std/unordered_map (erase_if): Adapt.
  538. * include/std/unordered_set (erase_if): Adapt.
  539. 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
  540. * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all
  541. constructors.
  542. * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
  543. Likewise.
  544. * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
  545. * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
  546. Likewise.
  547. * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
  548. * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
  549. Likewise.
  550. 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
  551. * src/c++98/locale_init.cc (_S_initialize_once): Check if
  552. initialization has already been done.
  553. (_S_initialize): Replace __gthread_active_p with
  554. __is_single_threaded. Use __builtin_expect.
  555. 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
  556. PR libstdc++/103295
  557. * include/bits/basic_string.tcc (_M_construct): Use the
  558. traits assign member to write into allcoated memory.
  559. 2021-11-19 Iain Sandoe <iain@sandoe.co.uk>
  560. * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.
  561. 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
  562. PR libstdc++/103332
  563. PR libstdc++/102958
  564. * testsuite/21_strings/basic_string/capacity/char/1.cc: Add
  565. -Wno-stringop-overflow.
  566. * testsuite/21_strings/basic_string/operators/char/1.cc:
  567. Likewise.
  568. * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc:
  569. Add -Wno-stringop-overread.
  570. 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
  571. PR libstdc++/103295
  572. * include/bits/basic_string.h (_Alloc_traits): Replace typedef
  573. with struct for C++20 mode.
  574. * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits
  575. for allocation.
  576. * include/bits/char_traits.h (__gnu_cxx::char_traits::assign):
  577. Use std::_Construct during constant evaluation.
  578. (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)):
  579. Likewise. Replace std::fill_n with memset or manual loop.
  580. (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy
  581. with memcpy.
  582. * include/ext/vstring.h: Include <bits/stl_algobase.h> for
  583. std::min.
  584. * include/std/string_view: Likewise.
  585. * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
  586. Add constexpr test.
  587. 2021-11-19 Tamar Christina <tamar.christina@arm.com>
  588. PR libstdc++/103305
  589. * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
  590. space, print, graph, cntrl, punct, alnum, blank): Use short or long
  591. names depending on if short ones are defined.
  592. 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
  593. * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
  594. Do not compare unrelated pointers during constant evaluation.
  595. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
  596. Improve tests for char_traits::move.
  597. 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
  598. * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK.
  599. * configure: Regenerate.
  600. 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
  601. * include/experimental/internet (address): Use std::_Construct
  602. to initialize union members.
  603. 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
  604. * include/bits/basic_string.h (_M_construct_aux): Only define
  605. for C++98. Remove constexpr.
  606. (_M_construct_aux_2): Likewise.
  607. (_M_construct(InputIter, InputIter)): Remove.
  608. (basic_string(const basic_string&)): Call _M_construct with
  609. iterator category argument.
  610. (basic_string(const basic_string&, size_type, const Alloc&)):
  611. Likewise.
  612. (basic_string(const basic_string&, size_type, size_type)):
  613. Likewise.
  614. (basic_string(const charT*, size_type, const Alloc&)): Likewise.
  615. Check for null pointer.
  616. (basic_string(const charT*, const Alloc&)): Likewise.
  617. (basic_string(initializer_list<charT>, const Alloc&)): Call
  618. _M_construct with iterator category argument.
  619. (basic_string(const basic_string&, const Alloc&)): Likewise.
  620. (basic_string(basic_string&&, const Alloc&)): Likewise.
  621. (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise
  622. for C++11 and later, call _M_construct_aux for C++98.
  623. * include/bits/basic_string.tcc
  624. (_M_construct(I, I, input_iterator_tag)): Replace try-block with
  625. RAII type.
  626. (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove
  627. __is_null_pointer check.
  628. 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
  629. PR libstdc++/103295
  630. * include/bits/basic_string.h (_M_use_local_data()): New
  631. member function to make local buffer the active member.
  632. (assign(const basic_string&)): Use it.
  633. * include/bits/basic_string.tcc (_M_construct, reserve()):
  634. Likewise.
  635. 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
  636. PR libstdc++/103240
  637. * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name
  638. to check for the '*' prefix.
  639. * testsuite/util/testsuite_shared.cc: Add type_info object for
  640. use in new test.
  641. * testsuite/18_support/type_info/103240.cc: New test.
  642. 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
  643. * include/bits/basic_string.h (operator<=>): Use constexpr
  644. unconditionally.
  645. * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
  646. Require cxx11-abit effective target.
  647. * testsuite/21_strings/headers/string/synopsis.cc: Add
  648. conditional constexpr to declarations, and adjust relational
  649. operators for C++20.
  650. 2021-11-16 Patrick Palka <ppalka@redhat.com>
  651. * src/c++17/ryu/MERGE: Update the commit hash.
  652. * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master
  653. branch.
  654. 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
  655. * include/bits/basic_string.h (basic_string, operator""s): Add
  656. constexpr for C++20.
  657. (basic_string::basic_string(basic_string&&)): Only copy
  658. initialized portion of the buffer.
  659. (basic_string::basic_string(basic_string&&, const Alloc&)):
  660. Likewise.
  661. * include/bits/basic_string.tcc (basic_string): Add constexpr
  662. for C++20.
  663. (basic_string::swap(basic_string&)): Only copy initialized
  664. portions of the buffers.
  665. (basic_string::_M_replace): Add constexpr implementation that
  666. doesn't depend on pointer comparisons.
  667. * include/bits/cow_string.h: Adjust comment.
  668. * include/ext/type_traits.h (__is_null_pointer): Add constexpr.
  669. * include/std/string (erase, erase_if): Add constexpr.
  670. * include/std/version (__cpp_lib_constexpr_string): Update
  671. value.
  672. * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
  673. New test.
  674. * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
  675. New test.
  676. * testsuite/21_strings/basic_string/literals/constexpr.cc:
  677. New test.
  678. * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
  679. * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
  680. New test.
  681. * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
  682. New test.
  683. * testsuite/21_strings/basic_string/version.cc: New test.
  684. 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
  685. * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference))
  686. (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)):
  687. Define as hidden friends of _Bit_reference.
  688. 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
  689. * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
  690. Fix reads past the end of strings.
  691. * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
  692. Likewise.
  693. * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
  694. Likewise.
  695. 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
  696. * testsuite/21_strings/basic_string/allocator/71964.cc: Fix
  697. typo.
  698. * testsuite/23_containers/set/allocator/71964.cc: Likewise.
  699. 2021-11-15 Jason Merrill <jason@redhat.com>
  700. * testsuite/20_util/to_address/1_neg.cc: Adjust error.
  701. * testsuite/26_numerics/random/concept.cc: Adjust asserts.
  702. 2021-11-15 François Dumont <fdumont@gcc.gnu.org>
  703. * include/bits/hashtable_policy.h:
  704. (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New.
  705. (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New.
  706. * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter.
  707. (_Hashtable<>::_M_merge_multi): Likewise.
  708. * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test.
  709. * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test.
  710. 2021-11-15 Jason Merrill <jason@redhat.com>
  711. * src/c++17/memory_resource.cc: Add missing constexpr.
  712. * include/experimental/internet: Only mark copy constructor
  713. as constexpr with __cpp_constexpr_dynamic_alloc.
  714. 2021-11-14 François Dumont <fdumont@gcc.gnu.org>
  715. * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
  716. * include/debug/deque (deque::operator=(initializer_list<>)): Replace
  717. _M_base() call with _Base:: call.
  718. (deque::operator[](size_type)): Likewise.
  719. * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
  720. Remove _M_safe() and _M_base() calls.
  721. (forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
  722. (forward_list::splice_after, forward_list::merge): Likewise.
  723. * include/debug/list (list(list&&, const allocator_type&)):
  724. Remove _M_safe() and _M_base() calls.
  725. (list::operator=(initializer_list<>)): Remove _M_base() calls.
  726. (list::splice, list::merge): Likewise.
  727. * include/debug/map.h (map(map&&, const allocator_type&)):
  728. Remove _M_safe() and _M_base() calls.
  729. (map::operator=(initializer_list<>)): Remove _M_base() calls.
  730. * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
  731. Remove _M_safe() and _M_base() calls.
  732. (multimap::operator=(initializer_list<>)): Remove _M_base() calls.
  733. * include/debug/set.h (set(set&&, const allocator_type&)):
  734. Remove _M_safe() and _M_base() calls.
  735. (set::operator=(initializer_list<>)): Remove _M_base() calls.
  736. * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
  737. Remove _M_safe() and _M_base() calls.
  738. (multiset::operator=(initializer_list<>)): Remove _M_base() calls.
  739. * include/debug/string (basic_string(basic_string&&, const allocator_type&)):
  740. Remove _M_safe() and _M_base() calls.
  741. (basic_string::operator=(initializer_list<>)): Remove _M_base() call.
  742. (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
  743. (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
  744. Likewise.
  745. (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
  746. * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
  747. Remove _M_safe() and _M_base() calls.
  748. (unordered_map::operator=(initializer_list<>), unordered_map::merge):
  749. Remove _M_base() calls.
  750. (unordered_multimap(unordered_multimap&&, const allocator_type&)):
  751. Remove _M_safe() and _M_base() calls.
  752. (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
  753. Remove _M_base() calls.
  754. * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
  755. Remove _M_safe() and _M_base() calls.
  756. (unordered_set::operator=(initializer_list<>), unordered_set::merge):
  757. Remove _M_base() calls.
  758. (unordered_multiset(unordered_multiset&&, const allocator_type&)):
  759. Remove _M_safe() and _M_base() calls.
  760. (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
  761. Remove _M_base() calls.
  762. * include/debug/vector (vector(vector&&, const allocator_type&)):
  763. Remove _M_safe() and _M_base() calls.
  764. (vector::operator=(initializer_list<>)): Remove _M_base() calls.
  765. (vector::operator[](size_type)): Likewise.
  766. 2021-11-13 Jonathan Wakely <jwakely@redhat.com>
  767. * include/Makefile.am: Add spanstream header.
  768. * include/Makefile.in: Regenerate.
  769. * include/precompiled/stdc++.h: Add spanstream header.
  770. * include/std/version (__cpp_lib_spanstream): Define.
  771. * include/std/spanstream: New file.
  772. * testsuite/27_io/spanstream/1.cc: New test.
  773. * testsuite/27_io/spanstream/version.cc: New test.
  774. 2021-11-13 Hans-Peter Nilsson <hp@axis.com>
  775. PR libstdc++/103166
  776. * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
  777. Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
  778. * configure: Regenerate.
  779. 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
  780. PR libstdc++/59675
  781. * acinclude.m4 (libtool_VERSION): Bump version.
  782. * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
  783. export new symbol.
  784. * configure: Regenerate.
  785. * include/bits/c++config (__replacement_assert): Remove, declare
  786. __glibcxx_assert_fail instead.
  787. * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
  788. replace __replacement_assert, writing to stderr instead of
  789. stdout.
  790. * testsuite/util/testsuite_abi.cc: Update latest version.
  791. 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
  792. Josh Marshall <joshua.r.marshall.1991@gmail.com>
  793. * include/bits/alloc_traits.h (_Destroy): Make constexpr for
  794. C++20 mode.
  795. * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
  796. Likewise.
  797. * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
  798. overload constexpr for C++20.
  799. * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
  800. of inline namespace.
  801. (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
  802. (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
  803. (vector<bool, A>>): Add constexpr to every member function.
  804. (_Bvector_base::_M_allocate): Initialize storage during constant
  805. evaluation.
  806. (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
  807. instead of memset.
  808. (__fill_bvector_n): New helper function to replace memset during
  809. constant evaluation.
  810. * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
  811. Move logic to ...
  812. (__do_uninit_copy): New function.
  813. (__uninitialized_fill<false>): Move logic to ...
  814. (__do_uninit_fill): New function.
  815. (__uninitialized_fill_n<false>): Move logic to ...
  816. (__do_uninit_fill_n): New function.
  817. (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
  818. (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
  819. Add constexpr.
  820. (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
  821. (__uninitialized_fill_n_a): Add constexpr. Use
  822. __do_uninit_fill_n.
  823. (__uninitialized_default_n, __uninitialized_default_n_a)
  824. (__relocate_a_1, __relocate_a): Add constexpr.
  825. * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
  826. (_Vector_base, vector): Add constexpr to every member function.
  827. (_Vector_impl::_S_adjust): Disable ASan annotation during
  828. constant evaluation.
  829. (_Vector_base::_S_use_relocate): Disable bitwise-relocation
  830. during constant evaluation.
  831. (vector::_Temporary_value): Use a union for storage.
  832. * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
  833. to every member function.
  834. * include/std/vector (erase_if, erase): Add constexpr.
  835. * testsuite/23_containers/headers/vector/synopsis.cc: Add
  836. constexpr for C++20 mode.
  837. * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
  838. compile-only test using constant expressions.
  839. * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
  840. namespace for _S_word_bit.
  841. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
  842. Likewise.
  843. * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
  844. * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
  845. for C++20 and move C++17 test to ...
  846. * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
  847. * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
  848. * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
  849. * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
  850. * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
  851. * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
  852. * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
  853. * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
  854. * testsuite/23_containers/vector/cons/constexpr.cc: New test.
  855. * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
  856. * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
  857. * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
  858. * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
  859. * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
  860. 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
  861. * include/debug/deque (deque::operator=(const deque&)): Remove
  862. definition.
  863. * include/debug/list (list::operator=(const list&)): Likewise.
  864. * include/debug/map.h (map::operator=(const map&)): Likewise.
  865. * include/debug/multimap.h (multimap::operator=(const multimap&)):
  866. Likewise.
  867. * include/debug/multiset.h (multiset::operator=(const multiset&)):
  868. Likewise.
  869. * include/debug/set.h (set::operator=(const set&)): Likewise.
  870. * include/debug/string (basic_string::operator=(const basic_string&)):
  871. Likewise.
  872. * include/debug/vector (vector::operator=(const vector&)):
  873. Likewise.
  874. (_Safe_vector::operator=(const _Safe_vector&)): Define for
  875. C++98 as well.
  876. 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
  877. * include/std/memory_resource (memory_resource::allocate):
  878. Implicitly create objects in the returned storage.
  879. 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
  880. * include/bits/stl_bvector.h (vector<bool>::data()): Give
  881. protected access, and delete for C++11 and later.
  882. 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
  883. PR libstdc++/100117
  884. * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
  885. all C++ headers instead of including <bits/stdc++.h>
  886. 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
  887. PR libstdc++/100748
  888. PR libstdc++/103133
  889. * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
  890. Define for glibc 2.34 and later.
  891. 2021-11-09 François Dumont <fdumont@gcc.gnu.org>
  892. * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
  893. typename.
  894. * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
  895. qualification. Use const_iterator for node extraction/reinsert.
  896. (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
  897. * include/debug/safe_container.h (_Safe_container<>): Make all methods
  898. protected.
  899. * include/debug/safe_unordered_container.h
  900. (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
  901. (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
  902. (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
  903. (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
  904. (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
  905. (_Safe_unordered_container<>::_M_invalide_all): Make public.
  906. (_Safe_unordered_container<>::_M_invalide_if): Likewise.
  907. (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
  908. * include/debug/unordered_map
  909. (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
  910. (unordered_map<>::reference, const_reference, difference_type): New typedef.
  911. (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
  912. (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
  913. (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
  914. (unordered_map<>::operator[], at, rehash, reserve): Add usings.
  915. (unordered_map<>::merge): New.
  916. (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
  917. (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
  918. (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
  919. (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
  920. (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
  921. (unordered_multimap<>::rehash, reserve): Add usings.
  922. (unordered_multimap<>::merge): New.
  923. * include/debug/unordered_set
  924. (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
  925. (unordered_set<>::reference, const_reference, difference_type): New typedef.
  926. (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
  927. (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
  928. (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
  929. (unordered_set<>::rehash, reserve): Add usings.
  930. (unordered_set<>::merge): New.
  931. (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
  932. (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
  933. (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
  934. (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
  935. (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
  936. (unordered_multiset<>::rehash, reserve): Add usings.
  937. (unordered_multiset<>::merge): New.
  938. * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
  939. * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
  940. * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
  941. * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
  942. * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
  943. * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
  944. * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
  945. * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
  946. * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
  947. * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
  948. * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
  949. * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
  950. * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
  951. * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
  952. * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
  953. * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
  954. * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
  955. container implementation.
  956. 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
  957. * testsuite/26_numerics/random/random_device/cons/token.cc:
  958. Print results of random_device_available checks.
  959. 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
  960. PR libstdc++/103146
  961. * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
  962. 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
  963. * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
  964. Define.
  965. * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
  966. Use them.
  967. * config.h.in: Regenerate.
  968. * configure: Regenerate.
  969. * src/c++11/random.cc (random_device): Add getentropy and
  970. arc4random as sources.
  971. * testsuite/26_numerics/random/random_device/cons/token.cc:
  972. Check new tokens.
  973. * testsuite/26_numerics/random/random_device/entropy.cc:
  974. Likewise.
  975. 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
  976. * testsuite/26_numerics/random/random_device/cons/token.cc:
  977. Retry if random devices produce the same value.
  978. 2021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
  979. * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
  980. define for VxWorks >= 6.6.
  981. 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
  982. * include/bits/range_access.h (begin(valarray), end(valarray)):
  983. Add noexcept.
  984. 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
  985. * include/std/tuple (tuple_size_v): Fix pack expansion.
  986. 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
  987. * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
  988. [[unlikely]] attribute.
  989. 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
  990. * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
  991. (__ppc_darn): New function to use POWER9 DARN instruction.
  992. (Which): Add 'darn' enumerator.
  993. (which_source): Check for __ppc_darn.
  994. (random_device::_M_init): Support "darn" and "hw" tokens.
  995. (random_device::_M_getentropy): Add darn to switch.
  996. * testsuite/26_numerics/random/random_device/cons/token.cc:
  997. Check "darn" token.
  998. * testsuite/26_numerics/random/random_device/entropy.cc:
  999. Likewise.
  1000. 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
  1001. * testsuite/lib/gdb-test.exp: Add target selector support to the
  1002. dg-final directives.
  1003. * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
  1004. C++20.
  1005. * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
  1006. * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
  1007. comment.
  1008. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1009. PR libstdc++/103086
  1010. * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
  1011. for accessing the tuple element stored in a _Tuple_impl node.
  1012. (tuple_get): New function for accessing a tuple element.
  1013. (unique_ptr_get): New function for accessing a unique_ptr.
  1014. (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
  1015. * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
  1016. tuple to its base class before accessing _M_head_impl.
  1017. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1018. * doc/xml/manual/evolution.xml: Document deprecations.
  1019. * doc/html/*: Regenerate.
  1020. * libsupc++/exception (unexpected_handler, unexpected)
  1021. (get_unexpected, set_unexpected): Add deprecated attribute.
  1022. Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
  1023. * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
  1024. deprecated warnings.
  1025. * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
  1026. * libsupc++/eh_terminate.cc: Likewise.
  1027. * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
  1028. Likewise.
  1029. * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
  1030. terminate_handler instead of unexpected_handler.
  1031. (struct __cxa_dependent_exception): Likewise.
  1032. (__unexpected): Likewise.
  1033. * testsuite/18_support/headers/exception/synopsis.cc: Add
  1034. dg-warning for deprecated warning.
  1035. * testsuite/18_support/exception_ptr/60612-unexpected.cc:
  1036. Disable deprecated warnings.
  1037. * testsuite/18_support/set_unexpected.cc: Likewise.
  1038. * testsuite/18_support/unexpected_handler.cc: Likewise.
  1039. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1040. * include/bits/utility.h (__find_uniq_type_in_pack): Move
  1041. definition to here, ...
  1042. * include/std/tuple (__find_uniq_type_in_pack): ... from here.
  1043. * include/std/variant (__detail__variant::__index_of): Remove.
  1044. (__detail::__variant::__exactly_once): Define using
  1045. __find_uniq_type_in_pack instead of __index_of.
  1046. (get<T>, get_if<T>, variant::__index_of): Likewise.
  1047. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1048. * include/bits/stl_pair.h (tuple_size_v): Define partial
  1049. specializations for std::pair.
  1050. * include/bits/utility.h (_Nth_type): Move definition here
  1051. and define primary template.
  1052. (tuple_size_v): Move definition here.
  1053. * include/std/array (tuple_size_v): Define partial
  1054. specializations for std::array.
  1055. * include/std/tuple (tuple_size_v): Move primary template to
  1056. <bits/utility.h>. Define partial specializations for
  1057. std::tuple.
  1058. (tuple_element): Change definition to use _Nth_type.
  1059. * include/std/variant (_Nth_type): Move to <bits/utility.h>.
  1060. (variant_alternative, variant): Adjust qualification of
  1061. _Nth_type.
  1062. * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
  1063. additional errors from _Nth_type.
  1064. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1065. * include/std/variant (__detail::__variant::__emplace): New
  1066. function template.
  1067. (_Copy_assign_base::operator=): Reorder conditions to match
  1068. bulleted list of effects in the standard. Use __emplace instead
  1069. of _M_reset followed by _Construct.
  1070. (_Move_assign_base::operator=): Likewise.
  1071. (__construct_by_index): Remove.
  1072. (variant::emplace): Use __emplace instead of _M_reset followed
  1073. by __construct_by_index.
  1074. (variant::swap): Hoist valueless cases out of visitor. Use
  1075. __emplace to replace _M_reset followed by _Construct.
  1076. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1077. * include/std/variant (_Nth_type): Define partial
  1078. specializations to reduce number of instantiations.
  1079. (variant_size_v): Define partial specializations to avoid
  1080. instantiations.
  1081. (variant_alternative): Use _Nth_type. Add static assert.
  1082. (__tuple_count, __tuple_count_v): Replace with ...
  1083. (__count): New variable template.
  1084. (_Variant_union): Add deleted constructor.
  1085. (variant::__to_type): Use _Nth_type.
  1086. (variant::emplace): Use _Nth_type. Add deleted overloads for
  1087. invalid types and indices.
  1088. 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
  1089. PR libstdc++/102912
  1090. * include/std/variant (_Variant_storage::__index_of): Remove.
  1091. (__variant_construct_single): Remove.
  1092. (__variant_construct): Remove.
  1093. (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
  1094. construction directly instead of using __variant_construct.
  1095. (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
  1096. (_Move_ctor_base::_M_destructive_move()): Remove.
  1097. (_Move_ctor_base::_M_destructive_copy()): Remove.
  1098. (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
  1099. construction directly instead of using _M_destructive_copy.
  1100. (variant::swap): Do construction directly instead of using
  1101. _M_destructive_move.
  1102. * testsuite/20_util/variant/102912.cc: New test.
  1103. 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
  1104. PR libstdc++/66742
  1105. * include/bits/list.tcc (list::sort): Use mutable iterators for
  1106. comparisons.
  1107. * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
  1108. * testsuite/23_containers/list/operations/66742.cc: Check
  1109. non-const comparisons.
  1110. 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
  1111. * include/std/valarray (valarray::valarray()): Add noexcept.
  1112. (valarray::operator[]): Likewise.
  1113. 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
  1114. * include/debug/stl_iterator.h (__valid_range): Add constexpr
  1115. for C++20. Qualify call to avoid ADL.
  1116. (__get_distance, __can_advance, __unsafe, __base): Likewise.
  1117. * testsuite/25_algorithms/move/constexpr.cc: Also check with
  1118. std::reverse_iterator arguments.
  1119. 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
  1120. * include/std/span (span(Range&&)): Reorder constraints.
  1121. 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
  1122. PR libstdc++/103022
  1123. * include/std/valarray (begin, end): Do not dereference an empty
  1124. valarray. Add noexcept and [[nodiscard]].
  1125. * testsuite/26_numerics/valarray/range_access.cc: Check empty
  1126. valarray. Check iterator properties. Run as well as compiling.
  1127. * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
  1128. * testsuite/26_numerics/valarray/103022.cc: New test.
  1129. 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
  1130. * testsuite/23_containers/stack/deduction.cc: Fix typo.
  1131. 2021-10-26 Martin Sebor <msebor@redhat.com>
  1132. * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
  1133. -Wstringop-overread.
  1134. * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
  1135. 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1136. * testsuite/28_regex/basic_regex/84110.cc (test01)
  1137. [__cpp_exceptions]: Disambiguate extended.
  1138. 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1139. * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
  1140. 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
  1141. PR libstdc++/102894
  1142. * include/std/any (make_any): Add SFINAE constraint.
  1143. * testsuite/20_util/any/102894.cc: New test.
  1144. 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
  1145. * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
  1146. headers.
  1147. * scripts/run_doxygen: Fix post-processing of #include
  1148. directives in man pages. Use new xg++ to compile helper program.
  1149. 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
  1150. * include/bits/mofunc_impl.h: Add doxygen comments.
  1151. * include/std/functional: Likewise.
  1152. 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
  1153. * include/bits/alloc_traits.h: Suppress doxygen documentation.
  1154. * include/bits/allocated_ptr.h: Likewise.
  1155. * include/bits/enable_special_members.h: Likewise.
  1156. * include/bits/hashtable.h: Likewise.
  1157. * include/bits/hashtable_policy.h: Likewise.
  1158. * include/bits/uses_allocator.h: Likewise.
  1159. * include/bits/node_handle.h: Document node handles and suppress
  1160. documentation for protected members.
  1161. * include/std/any: Suppress documentation for implementation
  1162. details.
  1163. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1164. PR libstdc++/102358
  1165. * include/bits/stl_iterator.h (__niter_base): Make constexpr
  1166. for C++20.
  1167. (__miter_base): Likewise.
  1168. * testsuite/25_algorithms/move/constexpr.cc: New test.
  1169. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1170. * include/std/ranges (istream_view): Replace this function
  1171. template with an alias template as per P2432R1.
  1172. (wistream_view): Define as per P2432R1.
  1173. (views::_Istream, views::istream): Likewise.
  1174. * testsuite/std/ranges/istream_view.cc (test07): New test.
  1175. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1176. * include/bits/ranges_util.h (views::_Drop): Forward declare.
  1177. (subrange): Befriend views::_Drop.
  1178. (subrange::_S_store_size): Declare constexpr instead of just
  1179. const, remove obsolete comment.
  1180. * include/std/ranges (views::__detail::__is_empty_view): Define.
  1181. (views::__detail::__is_basic_string_view): Likewise.
  1182. (views::__detail::__is_subrange): Likewise.
  1183. (views::__detail::__is_iota_view): Likewise.
  1184. (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
  1185. (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
  1186. and fix it to range_difference_t<_Range>. Implement P1739R4 and
  1187. LWG 3407 changes.
  1188. (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
  1189. (views::_Drop): As with views::_Take.
  1190. (views::_Counted): Implement P1739R4 changes.
  1191. * include/std/span (__detail::__is_std_span): Rename to ...
  1192. (__detail::__is_span): ... this and turn it into a variable
  1193. template.
  1194. (__detail::__is_std_array): Turn it into a variable template.
  1195. (span::span): Adjust uses of __is_std_span and __is_std_array
  1196. accordingly.
  1197. * testsuite/std/ranges/adaptors/p1739.cc: New test.
  1198. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1199. * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
  1200. Make fully constexpr as per LWG 3595.
  1201. (common_iterator::__postfix_proxy): Likewise.
  1202. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1203. * include/std/ranges (lazy_split_view::base): Add forward_range
  1204. constraint as per LWG 3591.
  1205. (lazy_split_view::begin, lazy_split_view::end): Also check
  1206. simpleness of _Pattern as per LWG 3592.
  1207. (split_view::base): Relax copyable constraint as per LWG 3590.
  1208. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1209. * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
  1210. criteria for returning bidirectional_iterator_tag as per LWG 3535.
  1211. (join_view::_Iterator::_S_iter_concept): Likewise.
  1212. 2021-10-21 Patrick Palka <ppalka@redhat.com>
  1213. * include/bits/ranges_base.h (viewable_range): Adjust as per
  1214. LWG 3481.
  1215. * testsuite/std/ranges/adaptors/all.cc (test07): New test.
  1216. 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
  1217. PR libstdc++/102863
  1218. * include/std/optional (optional::and_then, optional::transform):
  1219. Remove requires-clause.
  1220. * testsuite/20_util/optional/monadic/and_then.cc: Check
  1221. overload resolution doesn't cause errors.
  1222. * testsuite/20_util/optional/monadic/transform.cc: Likewise.
  1223. 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
  1224. * testsuite/20_util/optional/monadic/transform.cc: Check that
  1225. an rvalue result is not materialized too soon.
  1226. 2021-10-19 Patrick Palka <ppalka@redhat.com>
  1227. * include/std/ranges (iota_view::_Iterator::operator+): Adjust
  1228. definition as per LWG 3580.
  1229. (iota_view::_Iterator::operator-): Likewise.
  1230. 2021-10-19 Patrick Palka <ppalka@redhat.com>
  1231. * include/std/ranges (basic_istream_view::_M_object): Value
  1232. initialize as per LWG 3568.
  1233. 2021-10-19 Patrick Palka <ppalka@redhat.com>
  1234. * include/bits/ranges_util.h
  1235. (__detail::__uses_nonqualification_pointer_conversion): Define
  1236. and use it ...
  1237. (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
  1238. * testsuite/std/ranges/subrange/1.cc: New test.
  1239. 2021-10-19 Patrick Palka <ppalka@redhat.com>
  1240. * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
  1241. (iota_view::_Sentinel): Likewise.
  1242. (iota_view::iota_view): Add three overloads, each taking an
  1243. iterator/sentinel pair as per LWG 3523.
  1244. * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
  1245. 2021-10-19 Patrick Palka <ppalka@redhat.com>
  1246. * include/bits/ranges_base.h (view_interface): Forward declare.
  1247. (__detail::__is_derived_from_view_interface_fn): Declare.
  1248. (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
  1249. (enable_view): Adjust as per LWG 3549.
  1250. * include/bits/ranges_util.h (view_interface): Don't derive from
  1251. view_base.
  1252. * include/std/ranges (filter_view): Revert r11-3504 change.
  1253. (transform_view): Likewise.
  1254. (take_view): Likewise.
  1255. (take_while_view): Likewise.
  1256. (drop_view): Likewise.
  1257. (drop_while_view): Likewise.
  1258. (join_view): Likewise.
  1259. (lazy_split_view): Likewise.
  1260. (split_view): Likewise.
  1261. (reverse_view): Likewise.
  1262. * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
  1263. * testsuite/std/ranges/view.cc (test_view::test_view): Remove
  1264. this default ctor since views no longer need to be default initable.
  1265. (test01): New test.
  1266. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1267. * src/c++11/random.cc (which_source): New helper function.
  1268. (random_device::_M_getentropy()): Use which_source and return
  1269. suitable values for sources other than device files.
  1270. * testsuite/26_numerics/random/random_device/entropy.cc: New test.
  1271. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1272. * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
  1273. (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
  1274. relative ${top_srcdir}.
  1275. * doc/Makefile.in: Regenerate.
  1276. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1277. * include/std/variant (_Uninitialized): Use an empty struct
  1278. for the unused union member, instead of char.
  1279. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1280. * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
  1281. non-deducible template parameter from deduction guide.
  1282. * testsuite/23_containers/stack/deduction.cc: Check new C++23
  1283. deduction guides.
  1284. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1285. * include/std/optional (_Optional_payload_base::_Storage): Add
  1286. constructor taking a callable function to invoke.
  1287. (_Optional_payload_base::_M_apply): New function.
  1288. (__cpp_lib_monadic_optional): Define for C++23.
  1289. (optional::and_then, optional::transform, optional::or_else):
  1290. Define for C++23.
  1291. * include/std/ranges (__detail::__cached): Remove.
  1292. (__detail::__non_propagating_cache): Remove use of __cached for
  1293. contained value. Use _Optional_payload_base::_M_construct and
  1294. _Optional_payload_base::_M_apply to set the contained value.
  1295. * include/std/version (__cpp_lib_monadic_optional): Define.
  1296. * testsuite/20_util/optional/monadic/and_then.cc: New test.
  1297. * testsuite/20_util/optional/monadic/or_else.cc: New test.
  1298. * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
  1299. * testsuite/20_util/optional/monadic/transform.cc: New test.
  1300. * testsuite/20_util/optional/monadic/version.cc: New test.
  1301. 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
  1302. PR libstdc++/102825
  1303. * include/bits/mofunc_impl.h (move_only_function): Remove
  1304. invalid base initializer.
  1305. * testsuite/20_util/move_only_function/cons.cc: Instantiate
  1306. constructors to check bodies.
  1307. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1308. * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
  1309. call to function with deduced return type.
  1310. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1311. * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
  1312. Define for C++23.
  1313. (basic_string::resize_and_overwrite): Declare.
  1314. * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
  1315. Define.
  1316. * include/std/version (__cpp_lib_resize_and_overwrite): Define
  1317. for C++23.
  1318. * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
  1319. New test.
  1320. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1321. PR libstdc++/101263
  1322. * include/std/ranges (__cached): New wrapper struct.
  1323. (__non_propagating_cache): Use __cached for contained value.
  1324. (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
  1325. std::construct_at instead of placement new.
  1326. * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
  1327. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1328. * include/std/variant (__cpp_lib_variant): Update value for
  1329. C++20.
  1330. (__variant_cast, __variant_construct): Add constexpr for C++20.
  1331. (__variant_construct_single, __construct_by_index) Likewise. Use
  1332. std::_Construct instead of placement new.
  1333. (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
  1334. buffer with a union and define a destructor.
  1335. (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
  1336. for non-trivial destruction.
  1337. (_Variant_storage::__index_of): New helper variable template.
  1338. (_Variant_storage::~_Variant_storage()): Add constexpr.
  1339. (_Variant_storage::_M_reset()): Likewise.
  1340. (_Copy_ctor_base, _Move_ctor_base): Likewise.
  1341. (_Copy_assign_base, _Move_assign_base): Likewise.
  1342. (variant, swap): Likewise.
  1343. * include/std/version (__cpp_lib_variant): Update value for
  1344. C++20.
  1345. * testsuite/20_util/optional/version.cc: Check for exact value
  1346. in C++17.
  1347. * testsuite/20_util/variant/87619.cc: Increase timeout for
  1348. C++20 mode.
  1349. * testsuite/20_util/variant/constexpr.cc: New test.
  1350. * testsuite/20_util/variant/version.cc: New test.
  1351. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1352. * include/std/variant (__detail::__variant::__get_storage):
  1353. Remove unused function.
  1354. (__variant_construct_by_index): Set index after construction is
  1355. complete. Rename to ...
  1356. (__detail::__variant::__construct_by_index): ... this.
  1357. (variant): Use new name for __variant_construct_by_index friend
  1358. declaration. Remove __get_storage friend declaration.
  1359. (variant::emplace): Use new name and remove try-blocks.
  1360. 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
  1361. * include/std/variant (_Variant_storage::_M_storage()): Remove.
  1362. (__detail::__variant::__get_storage): Remove.
  1363. (variant): Remove friend declaration of __get_storage.
  1364. 2021-10-15 Jason Merrill <jason@redhat.com>
  1365. * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
  1366. * testsuite/20_util/integer_comparisons/greater_neg.cc:
  1367. * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
  1368. Adjust expected message.
  1369. * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
  1370. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1371. * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
  1372. Rename to __get_n and remove first argument. Replace pair of
  1373. overloads with a single function using 'if constexpr'.
  1374. (__variant::__get(Variant&&)): Adjust to use __get_n.
  1375. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1376. * include/bits/fs_path.h (path(path&&)): Make unconditionally
  1377. noexcept.
  1378. (path::_S_convert(T)): Add condtional noexcept.
  1379. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1380. PR libstdc++/102743
  1381. * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
  1382. for returning the same string unchanged.
  1383. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1384. * include/bits/regex.h: Check __cpp_inline_variables instead of
  1385. __cplusplus.
  1386. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1387. * testsuite/20_util/is_layout_compatible/version.cc: Check
  1388. correct macro.
  1389. 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
  1390. * include/bits/stl_construct.h (_Construct): Use
  1391. std::construct_at when constant evaluated.
  1392. * include/std/optional (_Storage, _Optional_payload, optional):
  1393. Add constexpr as specified by P2231R1.
  1394. * include/std/version (__cpp_lib_optional): Update value for
  1395. C++20.
  1396. * testsuite/20_util/optional/requirements.cc: Check feature test
  1397. macro.
  1398. * testsuite/20_util/optional/constexpr/assign.cc: New test.
  1399. * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
  1400. * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
  1401. * testsuite/20_util/optional/constexpr/swap.cc: New test.
  1402. * testsuite/20_util/optional/version.cc: New test.
  1403. 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
  1404. * include/bits/fs_path.h (__detail::__is_contiguous): Add
  1405. partial specializations for pointers and __normal_iterator.
  1406. 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
  1407. * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
  1408. * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
  1409. * testsuite/28_regex/match_results/102667.C: Moved to...
  1410. * testsuite/28_regex/match_results/102667.cc: ...here.
  1411. 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
  1412. * include/bits/fs_path.h (__detail::__is_contiguous): New
  1413. variable template to identify contiguous iterators.
  1414. (__detail::__unified_char8_t): New alias template to decide when
  1415. to treat char8_t as char without encoding conversion.
  1416. (__detail::__effective_range(const basic_string<C,T>&)): Use
  1417. std::char_traits<C> for returned string view.
  1418. (__detail::__effective_range(const basic_string_view<C,T>&)):
  1419. Likewise.
  1420. (__detail::__effective_range(const Source&)): Use
  1421. __is_contiguous to detect mode cases of contiguous iterators.
  1422. Use __unified_char8_t to return a std::string instead of
  1423. std::u8string.
  1424. 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
  1425. PR libstdc++/102592
  1426. * include/bits/fs_path.h (path::path(Iter, Iter, format))
  1427. (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
  1428. __string_from_range directly, instead of two-argument overload
  1429. of _S_convert.
  1430. (path::_S_convert(Iter, Iter)): Remove.
  1431. * testsuite/27_io/filesystem/path/construct/102592.C: New test.
  1432. 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
  1433. * include/bits/c++config (__terminate): Add extern "C++".
  1434. 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
  1435. * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
  1436. Restore test for operator<.
  1437. * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
  1438. Adjust expected errors for C++20.
  1439. 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
  1440. PR libstdc++/101960
  1441. * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
  1442. defauled.
  1443. * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
  1444. array elements before the last element.
  1445. 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
  1446. * include/bits/stl_iterator_base_funcs.h (__advance): Add
  1447. deleted overload to improve diagnostics.
  1448. (__distance): Likewise.
  1449. 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
  1450. * include/bits/atomic_timed_wait.h: Remove unused header.
  1451. * include/bits/c++config (std:__terminate): Define.
  1452. * include/bits/semaphore_base.h: Remove <exception> and use
  1453. __terminate instead of terminate.
  1454. * include/bits/std_thread.h: Likewise.
  1455. * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
  1456. to call __cxxabiv1::__terminate.
  1457. 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
  1458. * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
  1459. std::__to_address by using poitner directly or using base()
  1460. member of __normal_iterator.
  1461. 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
  1462. * testsuite/18_support/numeric_limits/lowest.cc: Use
  1463. numeric_limits<T>::is_integer instead of is_integral<T>::value.
  1464. 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
  1465. PR libstdc++/89927
  1466. * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
  1467. Add __glibcxx_requires_string_len assertion.
  1468. (basic_regex::assign(InputIterator, InputIterator)): Add
  1469. __glibcxx_requires_valid_range assertion.
  1470. * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
  1471. (_Scanner::_M_scan_normal()): Use string literal in assertions.
  1472. 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
  1473. PR libstdc++/102667
  1474. * include/bits/regex.h (match_result::empty()): Optimize by
  1475. calling the base function directly.
  1476. (match_results::end()): Check _Base_type::empty() not empty().
  1477. * testsuite/28_regex/match_results/102667.C: New test.
  1478. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1479. PR libstdc++/98725
  1480. * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
  1481. _GLIBCXX_USE_WCHAR_T.
  1482. * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
  1483. _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
  1484. * testsuite/20_util/from_chars/1_neg.cc: Remove use of
  1485. _GLIBCXX_USE_WCHAR_T.
  1486. * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
  1487. char_traits<wchar_t>::length instead of wcslen.
  1488. * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
  1489. Likewise.
  1490. * testsuite/20_util/is_arithmetic/value.cc: Likewise.
  1491. * testsuite/20_util/is_compound/value.cc: Likewise.
  1492. * testsuite/20_util/is_floating_point/value.cc: Likewise.
  1493. * testsuite/20_util/is_fundamental/value.cc: Likewise.
  1494. * testsuite/20_util/is_integral/value.cc: Likewise.
  1495. * testsuite/20_util/is_signed/value.cc: Likewise.
  1496. * testsuite/20_util/is_unsigned/value.cc: Likewise.
  1497. * testsuite/20_util/is_void/value.cc: Likewise.
  1498. * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
  1499. Likewise.
  1500. * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
  1501. Likewise.
  1502. * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
  1503. Likewise.
  1504. * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
  1505. Likewise.
  1506. * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
  1507. Likewise.
  1508. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
  1509. Likewise.
  1510. * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
  1511. Likewise.
  1512. * testsuite/20_util/to_chars/3.cc: Likewise.
  1513. * testsuite/20_util/type_identity/requirements/typedefs.cc:
  1514. Likewise.
  1515. * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
  1516. * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
  1517. * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
  1518. Likewise.
  1519. * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
  1520. * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
  1521. Likewise.
  1522. * testsuite/21_strings/basic_string/literals/values.cc:
  1523. Likewise.
  1524. * testsuite/21_strings/basic_string/modifiers/64422.cc:
  1525. Likewise.
  1526. * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
  1527. Likewise.
  1528. * testsuite/21_strings/basic_string/requirements/citerators.cc:
  1529. Likewise.
  1530. * testsuite/21_strings/basic_string/requirements/typedefs.cc:
  1531. Likewise.
  1532. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
  1533. Likewise.
  1534. * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
  1535. Likewise.
  1536. * testsuite/21_strings/basic_string_view/literals/types.cc:
  1537. Likewise.
  1538. * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
  1539. Likewise.
  1540. * testsuite/21_strings/basic_string_view/literals/values.cc:
  1541. Likewise.
  1542. * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
  1543. Likewise.
  1544. * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
  1545. * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
  1546. Likewise.
  1547. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
  1548. Likewise.
  1549. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
  1550. Likewise.
  1551. * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
  1552. * testsuite/25_algorithms/fill/4.cc: Likewise.
  1553. * testsuite/25_algorithms/fill_n/1.cc: Likewise.
  1554. * testsuite/experimental/functional/searchers.cc: Likewise. Use
  1555. char_traits<wchar_t>::length instead of wcslen.
  1556. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
  1557. Likewise.
  1558. * testsuite/experimental/string_view/literals/types-char8_t.cc:
  1559. Likewise.
  1560. * testsuite/experimental/string_view/literals/types.cc:
  1561. Likewise.
  1562. * testsuite/experimental/string_view/literals/values-char8_t.cc:
  1563. Likewise.
  1564. * testsuite/experimental/string_view/literals/values.cc:
  1565. Likewise.
  1566. * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
  1567. Likewise.
  1568. * testsuite/experimental/string_view/requirements/typedefs.cc:
  1569. Likewise.
  1570. * testsuite/experimental/string_view/typedefs.cc: Likewise.
  1571. * testsuite/ext/vstring/range_access.cc: Likewise.
  1572. * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
  1573. Likewise.
  1574. * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
  1575. Likewise.
  1576. * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
  1577. Likewise.
  1578. * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
  1579. Likewise.
  1580. * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
  1581. Likewise.
  1582. * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
  1583. Likewise.
  1584. * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
  1585. Likewise.
  1586. * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
  1587. Likewise.
  1588. * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
  1589. * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
  1590. Likewise.
  1591. * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
  1592. * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
  1593. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1594. PR libstdc++/98725
  1595. * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
  1596. (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
  1597. define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
  1598. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1599. PR libstdc++/98725
  1600. * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
  1601. Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
  1602. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1603. PR libstdc++/98725
  1604. * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
  1605. (__byte_operand<wchar_t>): Define specialization.
  1606. * include/std/type_traits (__make_signed<wchar_t>)
  1607. (__make_unsigned<wchar_t>): Remove redundant check for
  1608. __WCHAR_TYPE__ being defined.
  1609. * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
  1610. (__is_integral_helper<wchar_t>): Likewise.
  1611. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1612. PR libstdc++/98725
  1613. * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
  1614. (__rc_string_base<wchar_t>): Define member function.
  1615. * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
  1616. (hash<__gnu_cxx::__wvstring>): Define specialization.
  1617. * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
  1618. (__wsso_string, __wrc_string): Declare typedefs.
  1619. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1620. PR libstdc++/98725
  1621. * include/bits/char_traits.h (char_traits<wchar_t>): Define
  1622. explicit specialization unconditionally.
  1623. * include/bits/basic_string.h (hash<wstring>): Define
  1624. unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
  1625. * include/bits/stringfwd.h (wstring): Likewise.
  1626. * include/debug/string (wstring): Likewise.
  1627. * include/experimental/string_view (experimental::wstring_view)
  1628. (hash<experimental::wstring_view>): Likewise.
  1629. * include/std/string (pmr::wstring, hash<pmr::wstring>):
  1630. Likewise.
  1631. * include/std/string_view (wstring_view, hash<wstring_view>):
  1632. Likewise.
  1633. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1634. * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
  1635. * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
  1636. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1637. * testsuite/22_locale/conversions/buffer/1.cc: Check
  1638. _GLIBCXX_USE_WCHAR_T.
  1639. * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
  1640. test using char16_t.
  1641. * testsuite/22_locale/conversions/string/1.cc: Check
  1642. _GLIBCXX_USE_WCHAR_T.
  1643. * testsuite/27_io/filesystem/path/generic/generic_string.cc:
  1644. Likewise.
  1645. * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
  1646. Likewise.
  1647. * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
  1648. * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
  1649. Likewise.
  1650. * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
  1651. * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
  1652. Likewise.
  1653. * testsuite/experimental/filesystem/path/generic/generic_string.cc:
  1654. Likewise.
  1655. * testsuite/experimental/filesystem/path/native/alloc.cc:
  1656. Likewise.
  1657. * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
  1658. Likewise.
  1659. * testsuite/experimental/filesystem/path/native/string.cc:
  1660. Likewise.
  1661. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1662. * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
  1663. * testsuite/util/testsuite_common_types.h:
  1664. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1665. * testsuite/18_support/numeric_limits/40856.cc: Replace use of
  1666. _GLIBCXX_USE_INT128.
  1667. * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
  1668. * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
  1669. * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
  1670. * testsuite/20_util/is_floating_point/value.cc: Likewise.
  1671. * testsuite/20_util/is_integral/value.cc: Likewise.
  1672. * testsuite/20_util/is_signed/value.cc: Likewise.
  1673. * testsuite/20_util/is_unsigned/value.cc: Likewise.
  1674. * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
  1675. Likewise.
  1676. * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
  1677. Likewise.
  1678. * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
  1679. Likewise.
  1680. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
  1681. Likewise.
  1682. * testsuite/20_util/type_identity/requirements/typedefs.cc:
  1683. Likewise.
  1684. * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
  1685. * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
  1686. * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
  1687. * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
  1688. * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
  1689. * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
  1690. * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
  1691. * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
  1692. * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
  1693. Likewise.
  1694. * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
  1695. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1696. * include/bits/hashtable_policy.h (_Select1st): Replace use of
  1697. std::get.
  1698. (_Select2nd): Remove.
  1699. (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
  1700. typedef instead of deducing it. Remove unnecessary piecewise
  1701. construction.
  1702. (_ReuseOrAllocNode): Make __node_type public.
  1703. (_Map_base): Adjust partial specialization to be able to extract
  1704. the mapped_type without using tuple_element.
  1705. (_Map_base::at): Define inline
  1706. * testsuite/23_containers/unordered_map/requirements/53339.cc:
  1707. Remove XFAIL.
  1708. * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
  1709. Likewise.
  1710. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1711. * include/bits/hashtable.h: Move static assertion to destructor.
  1712. * include/bits/hashtable_policy.h: Deduce value type from node
  1713. type without instantiating it.
  1714. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1715. * src/c++11/limits.cc: Fail if __cpp_inline_variables is
  1716. defined.
  1717. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1718. PR libstdc++/92546
  1719. * include/bits/ranges_algobase.h: Replace <iterator> with a
  1720. subset of the headers it includes.
  1721. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1722. * include/experimental/deque (erase, erase_if): Revert changes
  1723. to avoid debug mode overhead.
  1724. * include/experimental/map (erase, erase_if): Likewise.
  1725. * include/experimental/set (erase, erase_if): Likewise.
  1726. * include/experimental/unordered_map (erase, erase_if):
  1727. Likewise.
  1728. * include/experimental/unordered_set (erase, erase_if):
  1729. Likewise.
  1730. * include/experimental/vector (erase, erase_if): Likewise.
  1731. * include/std/deque (erase, erase_if): Likewise.
  1732. * include/std/map (erase, erase_if): Likewise.
  1733. * include/std/set (erase, erase_if): Likewise.
  1734. * include/std/unordered_map (erase, erase_if): Likewise.
  1735. * include/std/unordered_set (erase, erase_if): Likewise.
  1736. * include/std/vector (erase, erase_if): Likewise.
  1737. 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
  1738. * include/std/chrono (__detail::__units_suffix_misc): New
  1739. helper function.
  1740. (__detail::__units_suffix): Likewise.
  1741. (chrono::operator<<(basic_ostream&, const duration&)): Define.
  1742. * testsuite/20_util/duration/io.cc: New test.
  1743. 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
  1744. * include/Makefile.am: Add new header.
  1745. * include/Makefile.in: Regenerate.
  1746. * include/std/chrono (duration, time_point, system_clock)
  1747. (steady_clock, high_resolution_clock, chrono_literals, sys_time)
  1748. (file_clock, file_time): Move to ...
  1749. * include/bits/chrono.h: New file.
  1750. * include/bits/atomic_futex.h: Include new header instead of
  1751. <chrono>.
  1752. * include/bits/atomic_timed_wait.h: Likewise.
  1753. * include/bits/fs_fwd.h: Likewise.
  1754. * include/bits/semaphore_base.h: Likewise.
  1755. * include/bits/this_thread_sleep.h: Likewise.
  1756. * include/bits/unique_lock.h: Likewise.
  1757. * include/experimental/bits/fs_fwd.h: Likewise.
  1758. * include/experimental/chrono: Likewise.
  1759. * include/experimental/io_context: Likewise.
  1760. * include/experimental/netfwd: Likewise.
  1761. * include/experimental/timer: Likewise.
  1762. * include/std/condition_variable: Likewise.
  1763. * include/std/mutex: Likewise.
  1764. * include/std/shared_mutex: Likewise.
  1765. 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
  1766. PR libstdc++/102377
  1767. * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
  1768. Hardcode to 64 instead of using non-constant constant.
  1769. 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
  1770. * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
  1771. __niter_base calls.
  1772. * include/std/string (erase, erase_if): Likewise.
  1773. * include/std/deque (erase, erase_if): Access non-debug
  1774. container directly.
  1775. * include/std/map (erase, erase_if): Likewise.
  1776. * include/std/set (erase, erase_if): Likewise.
  1777. * include/std/unordered_map (erase, erase_if): Likewise.
  1778. * include/std/unordered_set (erase, erase_if): Likewise.
  1779. * include/std/vector (erase, erase_if): Likewise.
  1780. * include/experimental/deque (erase, erase_if): Likewise.
  1781. * include/experimental/map (erase, erase_if): Likewise.
  1782. * include/experimental/set (erase, erase_if): Likewise.
  1783. * include/experimental/unordered_map (erase, erase_if):
  1784. Likewise.
  1785. * include/experimental/unordered_set (erase, erase_if):
  1786. Likewise.
  1787. * include/experimental/vector (erase, erase_if): Likewise.
  1788. 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
  1789. * include/Makefile.am: Add new headers.
  1790. * include/Makefile.in: Regenerate.
  1791. * include/std/functional: Include <bits/move_only_function.h>.
  1792. * include/std/version (__cpp_lib_move_only_function): Define.
  1793. * include/bits/mofunc_impl.h: New file.
  1794. * include/bits/move_only_function.h: New file.
  1795. * testsuite/20_util/move_only_function/call.cc: New test.
  1796. * testsuite/20_util/move_only_function/cons.cc: New test.
  1797. * testsuite/20_util/move_only_function/move.cc: New test.
  1798. * testsuite/20_util/move_only_function/version.cc: New test.
  1799. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1800. * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
  1801. New test.
  1802. * testsuite/23_containers/span/trivially_copyable.cc: New test.
  1803. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1804. * include/bits/utility.h (__is_in_place_type_v): Define
  1805. variable template to detect in_place_type_t specializations.
  1806. (__is_in_place_type): Replace class template with alias
  1807. template using __is_in_place_type_v.
  1808. * include/std/any (any(T&&)): Check __is_in_place_type first and
  1809. avoid instantiating is_copy_constructible unnecessarily.
  1810. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1811. * testsuite/20_util/integer_comparisons/greater.cc: New test.
  1812. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1813. * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
  1814. Check result matches non-volatile pointer.
  1815. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1816. PR c++/102535
  1817. * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
  1818. expected value for C++20.
  1819. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1820. * include/bits/std_function.h (_Any_data::_M_access): Add
  1821. noexcept.
  1822. (_Function_base::_Base_manager::_M_get_pointer): Likewise.
  1823. (_Function_base::_Base_manager::_M_not_empty_function):
  1824. Likewise.
  1825. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1826. * include/std/ostream (operator<<(const volatile void*)):
  1827. Add new overload, as per P1147R1.
  1828. * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
  1829. New test.
  1830. 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
  1831. * include/bits/stl_queue.h
  1832. (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
  1833. value.
  1834. * include/bits/stl_stack.h
  1835. (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
  1836. * include/std/version
  1837. (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
  1838. * testsuite/23_containers/queue/cons_from_iters.cc: Update
  1839. expected value.
  1840. * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
  1841. 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
  1842. * include/bits/forward_list.h (forward_list): Use non-deduced
  1843. context for allocator parameter of allocator-extended copy and
  1844. move constructors.
  1845. * include/bits/stl_bvector.h (vector<bool>): Likewise.
  1846. * include/bits/stl_deque.h (deque): Likewise.
  1847. * include/bits/stl_list.h (list): Likewise.
  1848. * include/bits/stl_map.h (map): Likewise.
  1849. * include/bits/stl_multimap.h (multimap): Likewise.
  1850. * include/bits/stl_multiset.h (multiset): Likewise.
  1851. * include/bits/stl_set.h (set): Likewise.
  1852. * include/bits/stl_vector.h (vector): Likewise.
  1853. * include/bits/stl_queue.h (queue, priority_queue): Do not
  1854. constrain Allocator template parameter of deduction guides that
  1855. have a Container parameter.
  1856. * include/bits/stl_stack.h (stack): Likewise.
  1857. * include/debug/deque (__gnu_debug::deque): Use non-deduced
  1858. context for allocator parameter of allocator-extended copy and
  1859. move constructors.
  1860. * include/debug/list (__gnu_debug::list): Likewise.
  1861. * include/debug/map.h (__gnu_debug::map): Likewise.
  1862. * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
  1863. * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
  1864. * include/debug/set.h (__gnu_debug::set): Likewise.
  1865. * include/debug/vector (__gnu_debug::vector): Likewise.
  1866. * testsuite/23_containers/deque/cons/deduction.cc: Test class
  1867. template argument deduction with non-deduced allocator
  1868. arguments.
  1869. * testsuite/23_containers/forward_list/cons/deduction.cc:
  1870. Likewise.
  1871. * testsuite/23_containers/list/cons/deduction.cc: Likewise.
  1872. * testsuite/23_containers/map/cons/deduction.cc: Likewise.
  1873. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
  1874. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
  1875. * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
  1876. * testsuite/23_containers/queue/deduction.cc: Likewise.
  1877. * testsuite/23_containers/set/cons/deduction.cc: Likewise.
  1878. * testsuite/23_containers/stack/deduction.cc: Likewise.
  1879. * testsuite/23_containers/unordered_map/cons/deduction.cc:
  1880. Likewise.
  1881. * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
  1882. Likewise.
  1883. * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
  1884. Likewise.
  1885. * testsuite/23_containers/unordered_set/cons/deduction.cc:
  1886. Likewise.
  1887. * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
  1888. 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
  1889. * include/std/variant (__detail::__variant::__as): Add missing
  1890. noexcept to first overload.
  1891. 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
  1892. * include/bits/basic_string.h (basic_string(nullptr_t)): Define
  1893. as deleted.
  1894. (operator=(nullptr_t)): Likewise.
  1895. * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
  1896. (operator=(nullptr_t)): Likewise.
  1897. * include/std/string_view (basic_string_view(nullptr_t)):
  1898. Likewise.
  1899. * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
  1900. * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
  1901. Change dg-warning to dg-error.
  1902. * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
  1903. Likewise.
  1904. 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
  1905. * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
  1906. * src/filesystem/ops-common.h (__last_system_error): Add
  1907. explicit cast to avoid narrowing conversion.
  1908. (do_space): Fix type in function name.
  1909. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1910. PR libstdc++/102100
  1911. * include/Makefile.am (c++config.h): Define
  1912. _GLIBCXX_VERBOSE_ASSERT based on configure output.
  1913. * include/Makefile.in: Regenerate.
  1914. * include/bits/c++config: Fix condition for verbose assertions.
  1915. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1916. PR libstdc++/92546
  1917. * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
  1918. unwrap debug iterators.
  1919. * include/bits/refwrap.h: Do not error if included in C++03.
  1920. * include/bits/stl_algo.h (__remove_if): Move to ...
  1921. * include/bits/stl_algobase.h (__remove_if): ... here.
  1922. * include/std/deque (erase, erase_if): Use __remove_if instead of
  1923. remove and remove_if.
  1924. * include/std/string (erase, erase_if): Likewise.
  1925. * include/std/vector (erase, erase_if): Likewise.
  1926. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1927. PR libstdc++/66742
  1928. * include/bits/list.tcc (list::sort()): Use _Scratch_list
  1929. objects for splicing and merging.
  1930. (list::sort(StrictWeakOrdering)): Likewise.
  1931. * include/bits/stl_list.h (__detail::_Scratch_list): New type.
  1932. * src/c++98/list.cc (_List_node_base::_M_transfer): Add
  1933. assertion for --enable-libstdcxx-debug library.
  1934. * testsuite/23_containers/list/operations/66742.cc: New test.
  1935. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1936. PR libstdc++/100612
  1937. * include/std/thread (__pmf_expects_stop_token): New variable
  1938. template to detect a pointer to member function that needs a
  1939. stop_token to be added to the arguments.
  1940. (jthread::__S_create): Use __pmf_expects_stop_token.
  1941. (jthread::__S_create_pmf): New function.
  1942. * testsuite/30_threads/jthread/100612.cc: New test.
  1943. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1944. * include/bits/stl_queue.h
  1945. (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
  1946. per P1425R4.
  1947. (queue(InputIterator, InputIterator)): Likewise.
  1948. (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
  1949. * include/bits/stl_stack.h
  1950. (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
  1951. (stack(InputIterator, InputIterator)): Likewise.
  1952. (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
  1953. * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
  1954. Define.
  1955. * testsuite/23_containers/queue/cons_from_iters.cc: New test.
  1956. * testsuite/23_containers/stack/cons_from_iters.cc: New test.
  1957. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1958. * include/bits/stl_queue.h (priority_queue): Add
  1959. allocator-extended overloads for constructors taking iterator.
  1960. * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
  1961. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1962. * include/bits/stl_queue.h (priority_queue): Construct sequence
  1963. from iterators when no sequence argument is present (LWG 3529).
  1964. * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
  1965. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1966. * include/bits/stl_queue.h (priority_queue): Constrain
  1967. constructors with InputIterator parameters (LWG 3522).
  1968. * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
  1969. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1970. * include/bits/ranges_base.h (ranges::distance): Split overload
  1971. into two (LWG 3392).
  1972. * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
  1973. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1974. * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
  1975. std::unary_function.
  1976. * testsuite/30_threads/thread/cons/4.cc: Likewise.
  1977. * testsuite/30_threads/thread/cons/5.cc: Likewise.
  1978. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1979. * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
  1980. unnecesary derivation from std::unary_function.
  1981. * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
  1982. * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
  1983. * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
  1984. * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
  1985. * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
  1986. * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
  1987. * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
  1988. * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
  1989. Likewise.
  1990. * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
  1991. * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
  1992. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1993. * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
  1994. expand the format string for freestanding, or non-vebose, or if
  1995. we're just going to abort anyway.
  1996. * src/c++11/snprintf_lite.cc: Remove unused header and
  1997. declaration.
  1998. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  1999. * include/std/variant (__do_visit): Use variant_npos instead of
  2000. literal -1 that requires a narrowing conversion.
  2001. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2002. PR libstdc++/99327
  2003. * src/filesystem/ops-common.h (__unsupported): New function to
  2004. return a suitable error code for missing functionality.
  2005. (posix::off_t): New typedef.
  2006. (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
  2007. fallback implementations.
  2008. (do_copy_file): Replace uses of errc::not_supported.
  2009. * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
  2010. (fs::create_directory, fs::create_directory_symlink)
  2011. (fs::create_hard_link, fs::create_symlink, fs::current_path)
  2012. (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
  2013. (fs::last_write_time, fs::permissions, fs::read_symlink):
  2014. Replace uses of errc::not_supported.
  2015. (fs::resize_file): Qualify off_t.
  2016. * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
  2017. (fs::create_directory, fs::create_directory_symlink)
  2018. (fs::create_hard_link, fs::create_symlink, fs::current_path)
  2019. (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
  2020. (fs::permissions, fs::read_symlink, fs::system_complete):
  2021. Replace uses of errc::not_supported.
  2022. (fs::resize_file): Qualify off_t and enable unconditionally.
  2023. * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
  2024. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2025. * src/filesystem/ops-common.h (last_error): New helper function.
  2026. (filesystem::do_space): Use last_error().
  2027. * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
  2028. (fs::equivalent, fs::remove, fs::temp_directory_path): Use
  2029. last_error().
  2030. * src/filesystem/ops.cc (fs::create_hard_link)
  2031. (fs::remove, fs::temp_directory_path): Likewise.
  2032. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2033. * include/std/type_traits (__conditional): New class template
  2034. for internal uses of std::conditional.
  2035. (__conditional_t): New alias template to replace conditional_t.
  2036. (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
  2037. __conditional_t instead of conditional::type.
  2038. * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
  2039. * include/bits/hashtable.h (_Hashtable): Likewise.
  2040. * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
  2041. (_Local_iterator): Likewise. Replace typedefs with
  2042. using-declarations.
  2043. * include/bits/move.h (move_if_noexcept): Use __conditional_t.
  2044. * include/bits/parse_numbers.h (_Select_int_base): Likewise.
  2045. * include/bits/ptr_traits.h (__make_not_void): Likewise.
  2046. * include/bits/ranges_algobase.h (__copy_or_move_backward)
  2047. (__copy_or_move): Likewise.
  2048. * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
  2049. * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
  2050. * include/bits/regex_compiler.h (_BracketMatcher): Use
  2051. __conditional_t. Replace typedefs with using-declarations.
  2052. * include/bits/shared_ptr_base.h (__shared_count): Use
  2053. __conditional_t.
  2054. * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
  2055. Likewise.
  2056. * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
  2057. (reverse_iterator::iterator_concept)
  2058. (__make_move_if_noexcept_iterator)
  2059. (iterator_traits<common_iterator<_It, _Sent>>)
  2060. (iterator_traits<counted_iterator<_It>>): Likewise.
  2061. * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
  2062. * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
  2063. (_Rb_tree::_M_clone_node): Likewise.
  2064. * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
  2065. Likewise.
  2066. * include/bits/uses_allocator.h (__uses_alloc): Likewise.
  2067. (__is_uses_allocator_predicate): Likewise.
  2068. * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
  2069. * include/experimental/any (any::_Manager, __any_caster):
  2070. Likewise.
  2071. * include/experimental/executor (async_completion): Likewise.
  2072. * include/experimental/functional (__boyer_moore_base_t):
  2073. Likewise.
  2074. * include/std/any (any::_Manager): Likewise.
  2075. * include/std/functional (__boyer_moore_base_t): Likewise.
  2076. * include/std/ranges (borrowed_iterator_t)
  2077. (borrowed_subrange_t, __detail::__maybe_present_t)
  2078. (__detail::__maybe_const_t, split_view): Likewise.
  2079. * include/std/tuple (__empty_not_final, tuple::operator=):
  2080. Likewise.
  2081. * include/std/variant (__detail::__variant::__get_t): Likewise.
  2082. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2083. PR libstdc++/78113
  2084. * include/std/variant (__do_visit): Use a switch when we have a
  2085. single variant with a small number of alternatives.
  2086. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2087. PR libstdc++/90943
  2088. * include/std/variant (__cpp_lib_variant): Update value.
  2089. (__detail::__variant::__as): New helpers implementing the
  2090. as-variant exposition-only function templates.
  2091. (visit, visit<R>): Use __as to upcast the variant parameters.
  2092. * include/std/version (__cpp_lib_variant): Update value.
  2093. * testsuite/20_util/variant/visit_inherited.cc: New test.
  2094. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2095. * include/bits/stl_iterator.h (__normal_iterator): Simplify
  2096. converting constructor and do not require _Container::pointer.
  2097. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2098. * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
  2099. (basic_string(basic_string&&)): Add noexcept and avoid
  2100. allocation, by sharing rep with the rvalue string.
  2101. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2102. * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
  2103. (common_iterator::__postfix_proxy): Add noexcept.
  2104. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2105. PR libstdc++/94418
  2106. * include/bits/stl_iterator.h (reverse_iterator): Use
  2107. conditional noexcept on constructors and assignment operators.
  2108. * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
  2109. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2110. PR libstdc++/100153
  2111. * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
  2112. When size() is zero just deallocate and reset.
  2113. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2114. PR libstdc++/96733
  2115. * include/bits/stl_algo.h (clamp): Use std::min and std::max.
  2116. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2117. * include/bits/regex.h (basic_regex::multiline): Define for
  2118. non-strict C++11 and C++14 modes.
  2119. * include/bits/regex_constants.h (regex_constants::multiline):
  2120. Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
  2121. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2122. * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
  2123. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2124. * include/bits/stream_iterator.h (istream_iterator): Add
  2125. noexcept to constructors and non-throwing member functions and
  2126. friend functions.
  2127. (ostream_iterator): Likewise.
  2128. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2129. * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
  2130. New trait to identify vector<bool> iterators, including debug
  2131. ones.
  2132. (_ForwardIteratorReferenceConcept): Add default template
  2133. argument using _Is_vector_bool_iterator and use it in partial
  2134. specialization for the vector<bool> cases.
  2135. (_Mutable_ForwardIteratorReferenceConcept): Likewise.
  2136. * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
  2137. line number.
  2138. 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
  2139. * include/bits/list.tcc (list::merge): Remove call to size() and
  2140. try-catch block. Use _Finalize_merge instead.
  2141. * include/bits/stl_list.h (list::_Finalize_merge): New
  2142. scope guard type to update _M_size members after a merge.
  2143. 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
  2144. * include/bits/regex.h (basic_regex::multiline): Fix #if
  2145. condition.
  2146. 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
  2147. * include/bits/regex.h (basic_regex::multiline): Define constant
  2148. for C++17.
  2149. * include/bits/regex_constants.h (regex_constants::multiline):
  2150. Define constant for C++17.
  2151. (regex_constants::__multiline): Define duplicate constant for
  2152. internal use in C++11 and C++14.
  2153. * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
  2154. New member function.
  2155. (_Executor::_M_is_line_terminator(_CharT)): New member function.
  2156. (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
  2157. member functions to support multiline matches.
  2158. * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
  2159. 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
  2160. * include/bits/regex_compiler.h (_Compiler::_S_validate): New
  2161. function.
  2162. * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
  2163. _S_validate to check flags.
  2164. * include/bits/regex_error.h (_S_grammar): New error code for
  2165. internal use.
  2166. * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
  2167. 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
  2168. PR libstdc++/84110
  2169. * include/bits/regex_error.h (regex_constants::_S_null): New
  2170. error code for internal use.
  2171. * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
  2172. Check for null character.
  2173. * testsuite/28_regex/basic_regex/84110.cc: New test.
  2174. 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
  2175. * include/bits/regex.h (__detail::__is_contiguous_iter): Move
  2176. here from <bits/regex_compiler.h>.
  2177. (basic_regex::_M_compile): New function to compile an NFA from
  2178. a regular expression string.
  2179. (basic_regex::basic_regex): Use _M_compile instead of delegating
  2180. to other constructors.
  2181. (basic_regex::operator=(const basic_regex&)): Define as
  2182. defaulted.
  2183. (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
  2184. (basic_regex::assign(const basic_regex&)): Use copy assignment.
  2185. (basic_regex::assign(basic_regex&&)): Use move assignment.
  2186. (basic_regex::assign(const C*, flag_type)): Use _M_compile
  2187. instead of constructing a temporary string.
  2188. (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
  2189. (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
  2190. Use _M_compile instead of constructing a temporary basic_regex.
  2191. (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
  2192. constructing a temporary string for contiguous iterators of the
  2193. right value type.
  2194. * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
  2195. <bits/regex.h>.
  2196. (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
  2197. (__compile_nfa): Remove.
  2198. * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
  2199. test.
  2200. * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
  2201. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2202. * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
  2203. Return false for ETIMEDOUT and true otherwise.
  2204. 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
  2205. * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
  2206. to also match message with '__8' in it.
  2207. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2208. * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
  2209. * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
  2210. * include/bits/regex_compiler.tcc: Likewise.
  2211. * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
  2212. * include/bits/regex_scanner.tcc: Likewise.
  2213. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2214. * include/bits/regex_compiler.tcc: Add line break in empty while
  2215. statement.
  2216. * include/bits/regex_executor.tcc: Avoid unused parameter
  2217. warning.
  2218. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2219. * include/bits/regex.h (basic_regex, swap): Add noexcept to
  2220. non-throwing functions.
  2221. * include/bits/regex_automaton.h (_State_base, _State)
  2222. (_NFA_base): Likewise.
  2223. * include/bits/regex_compiler.h (_Compiler): Likewise.
  2224. * include/bits/regex_error.h (regex_error::code()): Likewise.
  2225. * include/bits/regex_scanner.h (_Scanner): Likewise.
  2226. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2227. * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
  2228. Define before first attempt to check it.
  2229. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2230. * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
  2231. Do not check non-default constructible sequences when
  2232. _GLIBCXX_CONCEPT_CHECKS is defined.
  2233. * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
  2234. Likewise.
  2235. * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
  2236. Likewise.
  2237. * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
  2238. Likewise.
  2239. * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
  2240. Likewise.
  2241. * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
  2242. Likewise.
  2243. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2244. * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
  2245. Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
  2246. is defined.
  2247. * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
  2248. Likewise.
  2249. * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
  2250. Likewise.
  2251. * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
  2252. Likewise.
  2253. * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
  2254. Likewise.
  2255. * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
  2256. Likewise.
  2257. * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
  2258. Likewise.
  2259. * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
  2260. Likewise.
  2261. * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
  2262. Likewise.
  2263. * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
  2264. Likewise.
  2265. * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
  2266. Likewise.
  2267. * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
  2268. Likewise.
  2269. * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
  2270. Likewise.
  2271. * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
  2272. Likewise.
  2273. * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
  2274. Likewise.
  2275. * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
  2276. Likewise.
  2277. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
  2278. Likewise.
  2279. * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
  2280. Likewise.
  2281. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2282. * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
  2283. (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
  2284. Check result types of iterator operations.
  2285. (_Mutable_ForwardIteratorConcept): Check that iterator's
  2286. reference type is a reference to its value type.
  2287. (_Mutable_BidirectionalIteratorConcept): Do not require the
  2288. value type to be assignable.
  2289. (_Mutable_RandomAccessIteratorConcept): Likewise.
  2290. * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
  2291. line number.
  2292. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2293. * testsuite/25_algorithms/copy/34595.cc: Add missing operation
  2294. for type used as an iterator.
  2295. * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
  2296. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2297. * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
  2298. comparison function for priority_queue of type with no
  2299. relational operators.
  2300. * testsuite/20_util/is_swappable/value.h: Likewise.
  2301. * testsuite/24_iterators/output/concept.cc: Add operator< to
  2302. type used in set.
  2303. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2304. * include/bits/boost_concept_check.h (_OutputIteratorConcept):
  2305. Use a function to preserve value category of the type.
  2306. * include/bits/stl_algobase.h (copy, move, fill_n): Use a
  2307. reference as the second argument for _OutputIteratorConcept.
  2308. (copy_backward, move_backward): Use _OutputIteratorConcept
  2309. instead of _ConvertibleConcept.
  2310. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2311. * include/bits/stl_iterator.h (pointer_traits): Define partial
  2312. specialization for __normal_iterator.
  2313. * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
  2314. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2315. * include/bits/move.h (forward(remove_reference_t<T>&&)):
  2316. Improve text of static_assert.
  2317. * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
  2318. * testsuite/20_util/forward/f_neg.cc: Likewise.
  2319. 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
  2320. PR libstdc++/102499
  2321. * include/bits/fs_path.h (path::begin, path::end): Add noexcept
  2322. to declarations, to match definitions.
  2323. 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
  2324. * include/bits/range_access.h (cbegin, cend): Remove redundant
  2325. 'inline' specifier.
  2326. 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
  2327. * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
  2328. Remove dg-error lines for C++20-only errors.
  2329. 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
  2330. * testsuite/19_diagnostics/headers/system_error/93151.cc:
  2331. Disable PCH.
  2332. 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
  2333. * src/c++11/system_error.cc (system_error_category) [_WIN32]:
  2334. Map Windows error codes to generic POSIX error numbers. Use
  2335. FormatMessage instead of strerror.
  2336. * testsuite/19_diagnostics/error_category/system_category.cc:
  2337. Adjust for new behaviour on Windows.
  2338. 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
  2339. * src/c++11/system_error.cc (generic_error_category): Define
  2340. class and virtual functions as 'final'.
  2341. (generic_error_category::equivalent(int, const error_condition&)):
  2342. Override.
  2343. (system_error_category): Define class and virtual functions as
  2344. 'final'.
  2345. (system_error_category::equivalent(int, const error_condition&)):
  2346. Override.
  2347. (generic_category_instance, system_category_instance): Use
  2348. constinit union to make the objects immortal.
  2349. 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
  2350. PR libstdc++/102425
  2351. * src/c++11/system_error.cc
  2352. (system_error_category::default_error_condition): Add 0 to
  2353. switch.
  2354. * testsuite/19_diagnostics/error_category/102425.cc: New test.
  2355. 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
  2356. * include/bits/fs_path.h (path::iterator): Add noexcept to all
  2357. member functions and friend functions.
  2358. (distance): Add noexcept.
  2359. (advance): Add noexcept and inline.
  2360. * include/experimental/bits/fs_path.h (path::iterator):
  2361. Add noexcept to all member functions.
  2362. 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
  2363. PR libstdc++/102270
  2364. * include/std/tuple (_Tuple_impl): Add constexpr to constructor
  2365. missed in previous patch.
  2366. * testsuite/20_util/tuple/cons/102270.C: Moved to...
  2367. * testsuite/20_util/tuple/cons/102270.cc: ...here.
  2368. * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
  2369. constexpr to constructor so it can be used for C++20 tests.
  2370. 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
  2371. * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
  2372. * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
  2373. * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
  2374. * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
  2375. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2376. * src/Makefile.am (stamp-debug): Add all Makefiles as
  2377. prerequisites.
  2378. * src/Makefile.in: Regenerate.
  2379. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2380. * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
  2381. timeout factor to 3.
  2382. * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
  2383. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2384. * doc/xml/manual/using.xml: Generalize to apply to more than
  2385. just -std=c++11.
  2386. * doc/html/manual/using_macros.html: Regenerate.
  2387. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2388. * include/std/optional (nullptr_t): Make constructor noexcept.
  2389. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2390. * include/bits/fs_path.h (advance): Remove non-deducible
  2391. template parameter.
  2392. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2393. PR libstdc++/102270
  2394. * include/std/tuple (_Head_base, _Tuple_impl): Add
  2395. _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
  2396. (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
  2397. * testsuite/20_util/tuple/cons/102270.C: New test.
  2398. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2399. PR libstdc++/102280
  2400. * include/std/span (span(Range&&)): Add constraint to deduction
  2401. guide.
  2402. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2403. * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
  2404. * src/c++98/Makefile.in: Regenerate.
  2405. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2406. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  2407. (to_string): Add noexcept if the type width is 32 bits or less.
  2408. 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
  2409. * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
  2410. (__uniq_ptr_impl::_M_deleter): Add noexcept.
  2411. 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
  2412. PR libstdc++/101761
  2413. * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
  2414. va and vb as arguments to wait/notify, remove unused bb local.
  2415. 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
  2416. * crossconfig.m4: Check for TLS support on mingw.
  2417. * configure: Regenerate.
  2418. 2021-09-13 Jason Merrill <jason@redhat.com>
  2419. * include/std/version: Define __cpp_lib_hardware_interference_size.
  2420. * libsupc++/new: Define hardware interference size variables.
  2421. 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
  2422. * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
  2423. Fix invalid hostname to only match the .invalid TLD.
  2424. 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
  2425. * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
  2426. Add new functions.
  2427. * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
  2428. it.
  2429. 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
  2430. * include/std/atomic: Tweak whitespace.
  2431. 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
  2432. PR c++/102177
  2433. * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
  2434. New function to check if a memory order is valid for the failure
  2435. case of compare exchange operations.
  2436. (__atomic_base<I>::compare_exchange_weak): Simplify assertions
  2437. by using __is_valid_cmpexch_failure_order.
  2438. (__atomic_base<I>::compare_exchange_strong): Likewise.
  2439. (__atomic_base<P*>::compare_exchange_weak): Likewise.
  2440. (__atomic_base<P*>::compare_exchange_strong): Likewise.
  2441. (__atomic_impl::compare_exchange_weak): Add assertion.
  2442. (__atomic_impl::compare_exchange_strong): Likewise.
  2443. * include/std/atomic (atomic::compare_exchange_weak): Likewise.
  2444. (atomic::compare_exchange_strong): Likewise.
  2445. 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
  2446. * include/std/functional (invoke_r): Define.
  2447. * include/std/version (__cpp_lib_invoke_r): Define.
  2448. * testsuite/20_util/function_objects/invoke/version.cc: Check
  2449. for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
  2450. * testsuite/20_util/function_objects/invoke/4.cc: New test.
  2451. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2452. PR libstdc++/98421
  2453. * include/std/span (span(Iter, size_type), span(Iter, Iter)):
  2454. Add valid range checks.
  2455. * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
  2456. * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
  2457. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2458. * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
  2459. * configure: Regenerate.
  2460. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2461. * src/c++11/system_error.cc (error_category::~error_category()):
  2462. Remove noexcept-specifier.
  2463. (system_error::~system_error()): Likewise.
  2464. * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
  2465. * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
  2466. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2467. PR libstdc++/102074
  2468. * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
  2469. [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
  2470. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2471. * include/experimental/internet (__make_resolver_error_code):
  2472. Handle EAI_SYSTEM errors.
  2473. (basic_resolver_results): Use __make_resolver_error_code. Use
  2474. Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
  2475. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2476. * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
  2477. Try other service if "http" fails.
  2478. 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
  2479. * testsuite/17_intro/names.cc: Undefine some more names used
  2480. by Solaris system headers.
  2481. 2021-08-30 Jason Merrill <jason@redhat.com>
  2482. PR c++/96286
  2483. * testsuite/30_threads/promise/requirements/lwg3466.cc:
  2484. Remove dg-prune-outputs.
  2485. 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
  2486. * include/bits/alloc_traits.h (allocator_traits): Add explicit
  2487. specialization for allocator<void>. Improve doxygen comments.
  2488. * include/bits/allocator.h (allocator<void>): Restore for the
  2489. versioned namespace.
  2490. (allocator<void>::construct, allocator<void>::destroy): Remove.
  2491. * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
  2492. Add default constructor and converting constructor.
  2493. 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
  2494. * include/bits/stl_uninitialized.h: Fix typo in comment.
  2495. 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
  2496. PR libstdc++/99876
  2497. * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
  2498. to avoid unnecessary current_path() call.
  2499. 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
  2500. * include/bits/std_function.h (function::function(F&&)): Give
  2501. name to defaulted template parameter, to improve diagnostics.
  2502. Use markdown for more doxygen comments.
  2503. 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
  2504. * include/bits/std_function.h (function): Adjust doxygen
  2505. comments.
  2506. * include/bits/unique_ptr.h (make_unique_for_overwrite):
  2507. Change parameter name to match doxygen comment.
  2508. 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
  2509. * include/bits/std_function.h (_function_base::_Base_manager):
  2510. Replace _M_init_functor with a function template using a
  2511. forwarding reference, and a pair of _M_create function
  2512. templates. Reuse _M_create for the clone operation.
  2513. (function::_Decay_t): New alias template.
  2514. (function::_Callable): Simplify by using _Decay.
  2515. (function::function(F)): Change parameter to forwarding
  2516. reference, as per LWG 2447. Add noexcept-specifier. Simplify
  2517. constraints.
  2518. (function::operator=(F&&)): Add noexcept-specifier.
  2519. * testsuite/20_util/function/cons/lwg2774.cc: New test.
  2520. * testsuite/20_util/function/cons/noexcept.cc: New test.
  2521. 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
  2522. * include/bits/std_function.h (function::function(F)): Add
  2523. static assertions to check constructibility requirements.
  2524. 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
  2525. PR libstdc++/100285
  2526. * configure.ac: Check for O_NONBLOCK.
  2527. * configure: Regenerate.
  2528. * include/experimental/internet: Include <ws2tcpip.h> for
  2529. Windows. Use preprocessor conditions around more constants.
  2530. * include/experimental/socket: Use preprocessor conditions
  2531. around more constants.
  2532. * testsuite/experimental/net/internet/resolver/base.cc: Only use
  2533. constants when the corresponding C macro is defined.
  2534. * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
  2535. * testsuite/experimental/net/socket/socket_base.cc: Likewise.
  2536. Make preprocessor checks more fine-grained.
  2537. 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
  2538. * testsuite/17_intro/names.cc: Check 'sz'.
  2539. 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
  2540. * testsuite/17_intro/names.cc: Adjust for Windows.
  2541. 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
  2542. * include/std/valarray: Uglify 'func' parameters.
  2543. * testsuite/17_intro/names.cc: Add 'func' to checks.
  2544. 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
  2545. PR libstdc++/102064
  2546. * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
  2547. Define macro to check conditions for optimizing trivial cases.
  2548. (__check_constructible): New function to do static assert.
  2549. (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
  2550. Use new macro.
  2551. * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
  2552. Adjust dg-error pattern.
  2553. * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
  2554. C++17-specific checks from 89164_c++17.cc.
  2555. * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
  2556. * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
  2557. New test.
  2558. * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
  2559. New test.
  2560. * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
  2561. New test.
  2562. * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
  2563. New test.
  2564. 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
  2565. PR libstdc++/102048
  2566. * include/ext/rope (rope::erase(size_type)): Remove broken
  2567. function.
  2568. 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
  2569. * doc/xml/manual/status_cxx2020.xml: Update table.
  2570. * doc/html/manual/status.html: Regenerate.
  2571. 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
  2572. * include/std/type_traits (is_layout_compatible): Define.
  2573. (is_corresponding_member): Define.
  2574. * include/std/version (__cpp_lib_is_layout_compatible): Define.
  2575. * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
  2576. New test.
  2577. * testsuite/20_util/is_layout_compatible/value.cc: New test.
  2578. * testsuite/20_util/is_layout_compatible/version.cc: New test.
  2579. * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
  2580. New test.
  2581. * testsuite/23_containers/span/layout_compat.cc: Do not use real
  2582. std::is_layout_compatible trait if available.
  2583. 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
  2584. * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
  2585. explicit instantiation definitions.
  2586. 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
  2587. * include/std/ranges (basic_istream_view): Add default template
  2588. argument.
  2589. * testsuite/std/ranges/istream_view.cc: Check it.
  2590. 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
  2591. * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
  2592. precondition check.
  2593. 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
  2594. PR libstdc++/90787
  2595. * testsuite/util/testsuite_fs.h (permissions_are_testable):
  2596. Define as inline.
  2597. 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
  2598. PR libstdc++/90787
  2599. * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
  2600. Use new __gnu_test::permissions_are_testable() function.
  2601. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  2602. Likewise.
  2603. * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
  2604. * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
  2605. * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
  2606. * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
  2607. * testsuite/27_io/filesystem/operations/status.cc: Likewise.
  2608. * testsuite/27_io/filesystem/operations/symlink_status.cc:
  2609. Likewise.
  2610. * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
  2611. Likewise.
  2612. * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
  2613. Likewise.
  2614. * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
  2615. Likewise.
  2616. * testsuite/experimental/filesystem/operations/exists.cc:
  2617. Likewise.
  2618. * testsuite/experimental/filesystem/operations/is_empty.cc:
  2619. Likewise.
  2620. * testsuite/experimental/filesystem/operations/remove.cc:
  2621. Likewise.
  2622. * testsuite/experimental/filesystem/operations/remove_all.cc:
  2623. Likewise.
  2624. * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
  2625. Likewise.
  2626. * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
  2627. New function to guess whether testing permissions will work.
  2628. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2629. * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
  2630. * doc/html/manual/status.html: Regenerate.
  2631. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2632. * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
  2633. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2634. PR libstdc++/101965
  2635. * include/std/charconv (__to_chars_i): Remove redundant check.
  2636. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2637. PR libstdc++/101960
  2638. * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
  2639. class' move constructor. Define as defaulted for versioned
  2640. namespace.
  2641. * testsuite/20_util/tuple/cons/101960.cc: New test.
  2642. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2643. PR libstdc++/100139
  2644. * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
  2645. * doc/html/manual/status.html: Regenerate.
  2646. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2647. * include/bits/shared_ptr.h: Add @since and @headerfile tags.
  2648. * include/bits/unique_ptr.h: Add @headerfile tags.
  2649. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2650. * src/filesystem/ops-common.h (filesystem::file_time): Improve
  2651. overflow check by using system_clock::duration::max().
  2652. 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
  2653. * include/bits/stl_tree.h: Tweak whitespace.
  2654. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2655. * include/bits/unique_ptr.h (default_delete): Add @since tag.
  2656. (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
  2657. (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
  2658. @param, and @returns.
  2659. (_MakeUniq): Move to __detail namespace. Add alias template
  2660. helpers.
  2661. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2662. * include/bits/stl_function.h: Improve doxygen comments.
  2663. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2664. * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
  2665. processing for C++20 components and components that depend on
  2666. compiler features.
  2667. * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
  2668. * include/std/type_traits: Improve doxygen comments for C++20
  2669. traits.
  2670. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2671. * include/ext/type_traits.h (__promote_2, __promote_3)
  2672. (__promote_4): Redfine as alias templates using __promoted_t.
  2673. * include/std/complex (__promote_2): Remove partial
  2674. specializations for std::complex.
  2675. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2676. * include/bits/stl_algo.h (min(initializer_list<T>))
  2677. (min(initializer_list<T>, Compare)): Call __min_element directly to
  2678. avoid redundant debug checks for valid ranges.
  2679. (max(initializer_list<T>), max(initializer_list<T>, Compare)):
  2680. Likewise, for __max_element.
  2681. (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
  2682. Likewise, for __minmax_element.
  2683. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2684. * include/debug/deque (deque(size_type, const T&, const A&)):
  2685. Prevent class template argument deduction and replace with a
  2686. deduction guide.
  2687. * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
  2688. Likewise.
  2689. * include/debug/list (list(size_type, const T&, const A&)):
  2690. Likewise.
  2691. * include/debug/vector (vector(size_type, const T&, const A&)):
  2692. Likewise.
  2693. 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
  2694. * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
  2695. 'std::vector<bool>::reference' as type name, not _Bit_reference.
  2696. (build_libstdcxx_dictionary): Register printers for vector<bool>
  2697. types in debug mode too.
  2698. * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
  2699. output for invalid _Bit_reference. Use vector<bool>::reference
  2700. instead of _Bit_reference.
  2701. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
  2702. 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
  2703. * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
  2704. continued.
  2705. 2021-08-17 Luc Michel <lmichel@kalray.eu>
  2706. Marc Poulhies <mpoulhies@kalrayinc.com>
  2707. * testsuite/lib/gdb-test.exp (gdb_version_check)
  2708. (gdb_version_check_xmethods): Only check the GDB version for
  2709. local native targets.
  2710. 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
  2711. Jonathan Wakely <jwakely@redhat.com>
  2712. * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
  2713. if distance is O(1).
  2714. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  2715. line number.
  2716. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2717. * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
  2718. construction from input iterators.
  2719. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2720. * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
  2721. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2722. PR libstdc++/101923
  2723. * include/bits/std_function.h (function(function&&)): Check for
  2724. non-empty parameter before doing any work.
  2725. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2726. * include/bits/cow_string.h (basic_string::contains): Do not
  2727. define for -std=gnu++20.
  2728. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2729. * include/bits/ranges_util.h (__not_same_as): Rename to
  2730. __different_from.
  2731. * include/std/ranges (__not_same_as): Likewise.
  2732. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2733. * include/std/utility (exchange): Add noexcept-specifier.
  2734. * testsuite/20_util/exchange/noexcept.cc: New test.
  2735. 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
  2736. * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
  2737. (build_libstdcxx_dictionary): Register printer for
  2738. std::error_code and std::error_condition.
  2739. * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
  2740. 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
  2741. PR libstdc++/101937
  2742. * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
  2743. static data member.
  2744. (print_word): Use qualified-id to access it.
  2745. 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
  2746. * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
  2747. Install another copy of the GDB hook.
  2748. * python/Makefile.in: Regenerate.
  2749. 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
  2750. PR libstdc++/101870
  2751. * include/c_global/cmath (hypot): Use __promoted_t.
  2752. (lerp): Add new overload accepting any arithmetic types.
  2753. * include/ext/type_traits.h (__promoted_t): New alias template.
  2754. * testsuite/26_numerics/lerp.cc: Moved to...
  2755. * testsuite/26_numerics/lerp/1.cc: ...here.
  2756. * testsuite/26_numerics/lerp/constexpr.cc: New test.
  2757. * testsuite/26_numerics/lerp/version.cc: New test.
  2758. 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
  2759. * testsuite/26_numerics/lerp.cc: Add header name to #error.
  2760. * testsuite/26_numerics/midpoint/integral.cc: Likewise.
  2761. * testsuite/26_numerics/midpoint/version.cc: New test.
  2762. 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
  2763. * include/experimental/random (experimental::randint): Add
  2764. nodiscard attribute.
  2765. 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
  2766. * src/c++98/locale_init.cc: Require C++11.
  2767. * src/c++98/localename.cc: Likewise.
  2768. * src/c++98/misc-inst.cc: Require C++98.
  2769. 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
  2770. PR libstdc++/101866
  2771. * testsuite/experimental/random/randint.cc: Loop and retry if
  2772. reseed() produces the same sequence.
  2773. 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
  2774. * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
  2775. (is_pointer_interconvertible_base_of_v)
  2776. (is_pointer_interconvertible_base_of): Define for C++20.
  2777. * include/std/version (__cpp_lib_is_pointer_interconvertible):
  2778. Define.
  2779. * testsuite/23_containers/span/layout_compat.cc: Use correct
  2780. feature test macro for std::is_layout_compatible_v.
  2781. * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
  2782. * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
  2783. 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
  2784. * include/bits/regex.h (basic_regex::transform_primary): Use
  2785. _GLIBCXX_STD_C::vector for local variable.
  2786. * include/bits/regex.tcc (__regex_algo_impl): Use reference to
  2787. _GLIBCXX_STD_C::vector base class of match_results.
  2788. * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
  2789. _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
  2790. variables.
  2791. * include/bits/regex_compiler.h (_BracketMatcher): Use
  2792. _GLIBCXX_STD_C::vector for data members.
  2793. * include/bits/regex_executor.h (_Executor): Likewise.
  2794. * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
  2795. 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
  2796. * include/debug/safe_container.h
  2797. (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
  2798. (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
  2799. (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
  2800. 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
  2801. * testsuite/23_containers/unordered_map/cons/default.cc: Add
  2802. equality comparison operators to allocator.
  2803. * testsuite/23_containers/unordered_set/cons/default.cc:
  2804. Likewise.
  2805. 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
  2806. * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
  2807. dg-prune-output reason with 'builtin_unreachable'.
  2808. * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
  2809. * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
  2810. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
  2811. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
  2812. * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
  2813. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
  2814. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
  2815. * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
  2816. 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
  2817. * testsuite/std/ranges/iota/max_size_type.cc: Set
  2818. dg-timeout-factor to 4.
  2819. 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
  2820. * libsupc++/compare (compare_three_way, strong_order)
  2821. (weak_order, partial_order, compare_strong_order_fallback)
  2822. (compare_weak_order_fallback, compare_partial_order_fallback):
  2823. Move nodiscard attributes to correct location.
  2824. 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
  2825. PR libstdc++/101782
  2826. * include/bits/ranges_base.h (ranges::begin, ranges::end)
  2827. (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
  2828. (ranges::empty, ranges::data): Move attribute after the
  2829. declarator-id instead of at the end of the declarator.
  2830. * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
  2831. Move attributes back to the start of the function declarator,
  2832. but move the requires-clause to the end.
  2833. (common_iterator): Move attribute after the declarator-id.
  2834. * include/bits/stl_queue.h (queue): Remove ill-formed attributes
  2835. from friend declaration that are not definitions.
  2836. * include/std/ranges (views::all, views::filter)
  2837. (views::transform, views::take, views::take_while,
  2838. views::drop) (views::drop_while, views::join,
  2839. views::lazy_split) (views::split, views::counted,
  2840. views::common, views::reverse) (views::elements): Move
  2841. attributes after the declarator-id.
  2842. 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
  2843. * libsupc++/compare (partial_ordering, weak_ordering)
  2844. (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
  2845. (compare_three_way, strong_order, weak_order, partial_order)
  2846. (compare_strong_order_fallback, compare_weak_order_fallback)
  2847. (compare_partial_order_fallback, __detail::__synth3way): Add
  2848. nodiscard attribute.
  2849. * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
  2850. -Wno-unused-result to options.
  2851. 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
  2852. PR libstdc++/101782
  2853. * include/bits/ranges_base.h (ranges::begin, ranges::end)
  2854. (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
  2855. (ranges::empty, ranges::data): Move attribute to the end of
  2856. the declarator.
  2857. * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
  2858. (common_iterator): Likewise for non-member operator functions.
  2859. * include/std/ranges (views::all, views::filter)
  2860. (views::transform, views::take, views::take_while, views::drop)
  2861. (views::drop_while, views::join, views::lazy_split)
  2862. (views::split, views::counted, views::common, views::reverse)
  2863. (views::elements): Likewise.
  2864. * testsuite/std/ranges/access/101782.cc: New test.
  2865. 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
  2866. * include/bits/forward_list.h: Add [[nodiscard]] to functions
  2867. with no side-effects.
  2868. * include/bits/stl_bvector.h: Likewise.
  2869. * include/bits/stl_deque.h: Likewise.
  2870. * include/bits/stl_list.h: Likewise.
  2871. * include/bits/stl_queue.h: Likewise.
  2872. * include/bits/stl_stack.h: Likewise.
  2873. * include/bits/stl_vector.h: Likewise.
  2874. * include/debug/deque: Likewise.
  2875. * include/debug/forward_list: Likewise.
  2876. * include/debug/list: Likewise.
  2877. * include/debug/safe_iterator.h: Likewise.
  2878. * include/debug/vector: Likewise.
  2879. * include/std/array: Likewise.
  2880. * testsuite/23_containers/array/creation/3_neg.cc: Use
  2881. -Wno-unused-result.
  2882. * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
  2883. to void.
  2884. * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
  2885. * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
  2886. * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
  2887. * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
  2888. Likewise.
  2889. * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
  2890. Likewise.
  2891. * testsuite/23_containers/array/tuple_interface/get_neg.cc:
  2892. Adjust dg-error line numbers.
  2893. * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
  2894. result to void.
  2895. * testsuite/23_containers/deque/debug/invalidation/4.cc:
  2896. Likewise.
  2897. * testsuite/23_containers/deque/types/1.cc: Use
  2898. -Wno-unused-result.
  2899. * testsuite/23_containers/list/types/1.cc: Cast result to void.
  2900. * testsuite/23_containers/priority_queue/members/7161.cc:
  2901. Likewise.
  2902. * testsuite/23_containers/queue/members/7157.cc: Likewise.
  2903. * testsuite/23_containers/vector/59829.cc: Likewise.
  2904. * testsuite/23_containers/vector/ext_pointer/types/1.cc:
  2905. Likewise.
  2906. * testsuite/23_containers/vector/ext_pointer/types/2.cc:
  2907. Likewise.
  2908. * testsuite/23_containers/vector/types/1.cc: Use
  2909. -Wno-unused-result.
  2910. 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
  2911. * include/bits/iterator_concepts.h (iter_move): Add
  2912. [[nodiscard]].
  2913. * include/bits/range_access.h (begin, end, cbegin, cend)
  2914. (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
  2915. * include/bits/ranges_base.h (ranges::begin, ranges::end)
  2916. (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
  2917. (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
  2918. (ranges::empty, ranges::data, ranges::cdata): Likewise.
  2919. * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
  2920. (back_insert_iterator, front_insert_iterator, insert_iterator)
  2921. (move_iterator, move_sentinel, common_iterator)
  2922. (counted_iterator): Likewise.
  2923. * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
  2924. Likewise.
  2925. * include/bits/stream_iterator.h (istream_iterator)
  2926. (ostream_iterartor): Likewise.
  2927. * include/bits/streambuf_iterator.h (istreambuf_iterator)
  2928. (ostreambuf_iterator): Likewise.
  2929. * include/std/ranges (views::single, views::iota, views::all)
  2930. (views::filter, views::transform, views::take, views::take_while)
  2931. (views::drop, views::drop_while, views::join, views::lazy_split)
  2932. (views::split, views::counted, views::common, views::reverse)
  2933. (views::elements): Likewise.
  2934. * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
  2935. * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
  2936. * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
  2937. Likewise.
  2938. * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
  2939. * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
  2940. Likewise.
  2941. * testsuite/21_strings/basic_string/range_access/char/1.cc:
  2942. Cast result to void.
  2943. * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
  2944. Likewise.
  2945. * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
  2946. Likewise.
  2947. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
  2948. Likewise.
  2949. * testsuite/23_containers/array/range_access.cc: Likewise.
  2950. * testsuite/23_containers/deque/range_access.cc: Likewise.
  2951. * testsuite/23_containers/forward_list/range_access.cc:
  2952. Likewise.
  2953. * testsuite/23_containers/list/range_access.cc: Likewise.
  2954. * testsuite/23_containers/map/range_access.cc: Likewise.
  2955. * testsuite/23_containers/multimap/range_access.cc: Likewise.
  2956. * testsuite/23_containers/multiset/range_access.cc: Likewise.
  2957. * testsuite/23_containers/set/range_access.cc: Likewise.
  2958. * testsuite/23_containers/unordered_map/range_access.cc:
  2959. Likewise.
  2960. * testsuite/23_containers/unordered_multimap/range_access.cc:
  2961. Likewise.
  2962. * testsuite/23_containers/unordered_multiset/range_access.cc:
  2963. Likewise.
  2964. * testsuite/23_containers/unordered_set/range_access.cc:
  2965. Likewise.
  2966. * testsuite/23_containers/vector/range_access.cc: Likewise.
  2967. * testsuite/24_iterators/customization_points/iter_move.cc:
  2968. Likewise.
  2969. * testsuite/24_iterators/istream_iterator/sentinel.cc:
  2970. Likewise.
  2971. * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
  2972. Likewise.
  2973. * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
  2974. * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
  2975. * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
  2976. * testsuite/24_iterators/range_access/range_access.cc:
  2977. Likewise.
  2978. * testsuite/24_iterators/range_operations/100768.cc: Likewise.
  2979. * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
  2980. * testsuite/28_regex/range_access.cc: Likewise.
  2981. * testsuite/experimental/string_view/range_access/char/1.cc:
  2982. Likewise.
  2983. * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
  2984. Likewise.
  2985. * testsuite/ext/vstring/range_access.cc: Likewise.
  2986. * testsuite/std/ranges/adaptors/take.cc: Likewise.
  2987. * testsuite/std/ranges/p2259.cc: Likewise.
  2988. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  2989. * include/bits/random.tcc (linear_congruential_engine): Do not
  2990. define static constexpr members when they are implicitly inline.
  2991. * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
  2992. (__ratio_add, __ratio_subtract): Likewise.
  2993. * include/std/type_traits (integral_constant): Likewise.
  2994. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  2995. line number.
  2996. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  2997. * testsuite/util/testsuite_common_types.h: Replace uses of
  2998. tr1::unordered_map and tr1::unordered_set with their C++11
  2999. equivalents.
  3000. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
  3001. dg-error line number.
  3002. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
  3003. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
  3004. Likewise.
  3005. * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
  3006. Likewise.
  3007. * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
  3008. Likewise.
  3009. * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
  3010. Likewise.
  3011. * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
  3012. Likewise.
  3013. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3014. * include/std/memory_resource (polymorphic_allocator::delete_object):
  3015. Call destructor directly instead of using destroy.
  3016. (allocator_traits<polymorphic_allocator<T>>): Define partial
  3017. specialization.
  3018. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3019. * testsuite/20_util/function_objects/binders/3113.cc: Remove
  3020. trailing whitespace.
  3021. * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
  3022. * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
  3023. * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
  3024. Likewise.
  3025. * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
  3026. * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
  3027. Likewise.
  3028. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
  3029. Likewise.
  3030. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
  3031. Likewise.
  3032. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3033. * doc/xml/manual/evolution.xml: Document deprecation.
  3034. * doc/html/*: Regenerate.
  3035. * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
  3036. (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
  3037. * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
  3038. and later.
  3039. * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
  3040. for C++11 and C++14 changes to std::random_shuffle and
  3041. std::shuffle.
  3042. * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
  3043. use deprecated algorithms.
  3044. * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
  3045. * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
  3046. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
  3047. Likewise.
  3048. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
  3049. Likewise.
  3050. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3051. * testsuite/23_containers/forward_list/operations/3.cc:
  3052. Use lambda instead of std::bind2nd.
  3053. * testsuite/20_util/function_objects/binders/3113.cc: Add
  3054. options for testing deprecated features.
  3055. * testsuite/20_util/pair/cons/99957.cc: Likewise.
  3056. * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
  3057. * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
  3058. * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
  3059. Likewise.
  3060. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
  3061. * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
  3062. * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
  3063. * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
  3064. * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
  3065. * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
  3066. * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
  3067. Likewise.
  3068. * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
  3069. Likewise.
  3070. * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
  3071. New proc.
  3072. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3073. * include/bits/regex_executor.h (_State_info): Replace
  3074. unique_ptr<bool[]> with array of bool.
  3075. * include/bits/regex_executor.tcc: Likewise.
  3076. * include/bits/regex_scanner.tcc: Replace std::strchr with
  3077. __builtin_strchr.
  3078. * include/std/regex: Replace standard headers with smaller
  3079. internal ones.
  3080. * testsuite/28_regex/traits/char/lookup_classname.cc: Include
  3081. <string.h> for strlen.
  3082. * testsuite/28_regex/traits/char/lookup_collatename.cc:
  3083. Likewise.
  3084. 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
  3085. * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
  3086. RAII class template.
  3087. (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
  3088. instead of unique_ptr.
  3089. 2021-08-02 Patrick Palka <ppalka@redhat.com>
  3090. PR libstdc++/101599
  3091. * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
  3092. Add missing std::move in return statement.
  3093. (__partition_copy_fn::operator()): Rename templtae parameter
  3094. _O2 to _Out2. Uglify function parameters out_true and out_false.
  3095. * include/bits/ranges_algobase.h (__copy_or_move): Add missing
  3096. std::move to recursive call that unwraps a __normal_iterator
  3097. output iterator.
  3098. * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
  3099. * testsuite/25_algorithms/move/constrained.cc (test05): New test.
  3100. 2021-08-02 Patrick Palka <ppalka@redhat.com>
  3101. PR libstdc++/101589
  3102. * include/std/ranges (lazy_split_view::_InnerIter::base): Make
  3103. the const& overload unconstrained and return a const reference
  3104. as per LWG 3533. Make unconditionally noexcept.
  3105. (elements_view::base): Revert accidental r12-569 change.
  3106. (elements_view::_Iterator::base): Make the const& overload
  3107. unconstrained and return a const reference as per LWG 3533.
  3108. Make unconditionally noexcept.
  3109. 2021-08-02 Patrick Palka <ppalka@redhat.com>
  3110. PR libstdc++/101483
  3111. * include/std/ranges (join_view::_Iterator::_Iterator): Add
  3112. missing std::move.
  3113. 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
  3114. PR libstdc++/101709
  3115. * src/filesystem/ops-common.h (get_temp_directory_from_env):
  3116. Add error_code parameter.
  3117. * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
  3118. argument to get_temp_directory_from_env and check it.
  3119. * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
  3120. 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
  3121. * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
  3122. Add dg-error for c++11_only target.
  3123. 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
  3124. PR libstdc++/65018
  3125. * configure.ac: Check for secure_getenv.
  3126. * config.h.in: Regenerate.
  3127. * configure: Regenerate.
  3128. * src/filesystem/ops-common.h (get_temp_directory_from_env): New
  3129. helper function to obtain path from the environment.
  3130. * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
  3131. * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
  3132. * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
  3133. Print messages if test cannot be run.
  3134. * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
  3135. Likewise. Fix incorrect condition. Use "TMP" to work with
  3136. Windows as well as POSIX.
  3137. 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
  3138. * src/c++17/memory_resource.cc: Use __exchange instead
  3139. of std::exchange.
  3140. 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
  3141. * include/experimental/optional (__throw_bad_optional_access):
  3142. Replace GNU attribute with C++11 attribute.
  3143. (optional::value, optional::value_or): Use if statements
  3144. instead of conditional expressions.
  3145. * include/std/optional (__throw_bad_optional_access)
  3146. (optional::value, optional::value_or): Likewise.
  3147. 2021-07-27 Marek Polacek <polacek@redhat.com>
  3148. DR 1512
  3149. PR c++/99701
  3150. * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
  3151. Move a line...
  3152. * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
  3153. ...here. New test.
  3154. 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
  3155. * include/bits/cow_string.h: Consistently use tab for
  3156. indentation.
  3157. 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
  3158. * include/Makefile.am: Add new header.
  3159. * include/Makefile.in: Regenerate.
  3160. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  3161. (basic_string): Move definition of Copy-on-Write string to
  3162. new file.
  3163. * include/bits/basic_string.tcc: Likewise.
  3164. * include/bits/cow_string.h: New file.
  3165. 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
  3166. * include/std/algorithm: Do not include <utility>.
  3167. * include/std/functional: Likewise.
  3168. * include/std/regex: Include <bits/stl_pair.h> instead of
  3169. <utility>.
  3170. * include/debug/map.h: Likewise.
  3171. * include/debug/multimap.h: Likewise.
  3172. * include/debug/multiset.h: Likewise.
  3173. * include/debug/set.h: Likewise.
  3174. * include/debug/vector: Likewise.
  3175. * include/bits/fs_path.h: Likewise.
  3176. * include/bits/unique_ptr.h: Do not include <utility>.
  3177. * include/experimental/any: Likewise.
  3178. * include/experimental/executor: Likewise.
  3179. * include/experimental/memory: Likewise.
  3180. * include/experimental/optional: Likewise.
  3181. * include/experimental/socket: Use __exchange instead
  3182. of std::exchange.
  3183. * src/filesystem/ops-common.h: Likewise.
  3184. * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
  3185. errors to not use a hardcoded line number.
  3186. * testsuite/20_util/default_delete/void_neg.cc: Likewise.
  3187. * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
  3188. Include <utility> for std::as_const.
  3189. * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
  3190. Likewise.
  3191. * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
  3192. Likewise.
  3193. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
  3194. Likewise.
  3195. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
  3196. Adjust dg-error line number.
  3197. 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
  3198. * include/Makefile.am: Add bits/utility.h header.
  3199. * include/Makefile.in: Regenerate.
  3200. * include/bits/utility.h: New file.
  3201. * include/std/utility (tuple_size, tuple_element): Move
  3202. to new header.
  3203. * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
  3204. Move to <tuple>.
  3205. (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
  3206. (in_place_t, in_place_index_t, in_place_type_t): Likewise.
  3207. * include/bits/ranges_util.h: Include new header instead of
  3208. <utility>.
  3209. * include/bits/stl_pair.h (tuple_size, tuple_element): Move
  3210. partial specializations for std::pair here.
  3211. (get): Move overloads for std::pair here.
  3212. * include/std/any: Include new header instead of <utility>.
  3213. * include/std/array: Likewise.
  3214. * include/std/memory_resource: Likewise.
  3215. * include/std/optional: Likewise.
  3216. * include/std/variant: Likewise.
  3217. * include/std/tuple: Likewise.
  3218. (__is_tuple_like_impl<tuple<T...>>): Move here.
  3219. (get) Declare overloads for std::array.
  3220. * include/std/version (__cpp_lib_tuples_by_type): Change type
  3221. to long.
  3222. * testsuite/20_util/optional/84601.cc: Include <utility>.
  3223. * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
  3224. Likewise.
  3225. * testsuite/23_containers/array/tuple_interface/get_neg.cc:
  3226. Adjust dg-error line numbers.
  3227. * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
  3228. * testsuite/std/ranges/access/cend.cc: Likewise.
  3229. * testsuite/std/ranges/access/end.cc: Likewise.
  3230. * testsuite/std/ranges/single_view.cc: Likewise.
  3231. 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
  3232. * include/std/future: Include <bits/atomic_base.h> instead of
  3233. <atomic>.
  3234. 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
  3235. * include/bits/stl_relops.h: Update documentation comments.
  3236. 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
  3237. PR libstdc++/101583
  3238. * include/bits/hashtable.h (_Hashtable): Replace mixin with
  3239. _Enable_default_ctor. Construct it explicitly in all
  3240. non-forwarding, non-defaulted constructors.
  3241. * testsuite/23_containers/unordered_map/cons/default.cc: Check
  3242. non-default constructors can be used.
  3243. * testsuite/23_containers/unordered_set/cons/default.cc:
  3244. Likewise.
  3245. 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
  3246. * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
  3247. 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
  3248. PR libstdc++/94295
  3249. * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
  3250. (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
  3251. (allocator::allocate, allocator::deallocate): Use new macros.
  3252. 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
  3253. PR libstdc++/101571
  3254. * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
  3255. constructor parameter to reference and use addressof.
  3256. * testsuite/util/testsuite_iterators.h: Define deleted operator&
  3257. overloads for test iterators.
  3258. 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
  3259. * include/bits/std_function.h (_Function_base): Add
  3260. default member initializers and define constructor as defaulted.
  3261. (function::_M_invoker): Add default member initializer.
  3262. 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
  3263. PR libstdc++/100682
  3264. * doc/xml/manual/debug_mode.xml: Update documentation about
  3265. debug capability of std::array.
  3266. * doc/html/*: Regenerate.
  3267. * include/debug/array: New file.
  3268. 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
  3269. PR libstdc++/101542
  3270. * include/ext/rope (sequence_buffer): Add move constructor and
  3271. move assignment operator.
  3272. * testsuite/ext/rope/101542.cc: New test.
  3273. 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
  3274. PR libstdc++/101510
  3275. * src/c++17/fs_ops.cc (fs::create_directories): Use status
  3276. instead of symlink_status.
  3277. * src/filesystem/ops.cc (fs::create_directories): Likewise.
  3278. * testsuite/27_io/filesystem/operations/create_directories.cc:
  3279. Check symlink to existing directory.
  3280. * testsuite/27_io/filesystem/operations/create_directory.cc: Do
  3281. not test with symlinks on Windows.
  3282. * testsuite/experimental/filesystem/operations/create_directories.cc:
  3283. Check symlink to existing directory.
  3284. * testsuite/experimental/filesystem/operations/create_directory.cc:
  3285. Do not test with symlinks on Windows.
  3286. 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
  3287. PR libstdc++/100863
  3288. * include/bits/hashtable.h (_Hashtable): Conditionally delete
  3289. default constructor by deriving from _Enable_special_members.
  3290. * testsuite/23_containers/unordered_map/cons/default.cc: New test.
  3291. * testsuite/23_containers/unordered_set/cons/default.cc: New test.
  3292. 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
  3293. PR libstdc++/101510
  3294. * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
  3295. * testsuite/27_io/filesystem/operations/create_directory.cc:
  3296. Test creating directory with name of existing symlink to
  3297. directory.
  3298. * testsuite/experimental/filesystem/operations/create_directory.cc:
  3299. Likewise.
  3300. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3301. * include/std/tuple (get<I>): Add deleted overload for bad
  3302. index.
  3303. * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
  3304. expected errors.
  3305. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3306. * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
  3307. Use __int_traits unconditionally.
  3308. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3309. * include/bits/random.h (_Shift::__value): Use constexpr.
  3310. (_Select_uint_least_t::type): Use using-declaration.
  3311. (_Mod): Likewise.
  3312. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  3313. line number.
  3314. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3315. * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
  3316. instead of diagnostic pragmas.
  3317. * include/bits/functional_hash.h: Likewise.
  3318. * include/bits/iterator_concepts.h (__is_signed_int128)
  3319. (__is_unsigned_int128): Likewise.
  3320. * include/bits/max_size_type.h (__max_size_type): Likewise.
  3321. (numeric_limits<__max_size_type>): Likewise.
  3322. * include/bits/std_abs.h (abs): Likewise.
  3323. * include/bits/stl_algobase.h (__size_to_integer): Likewise.
  3324. * include/bits/uniform_int_dist.h (uniform_int_distribution):
  3325. Likewise.
  3326. * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
  3327. Likewise.
  3328. * include/std/type_traits (__is_integral_helper<INT_N>)
  3329. (__is_signed_integer, __is_unsigned_integer)
  3330. (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
  3331. * include/std/limits (__INT_N): Add __extension__ keyword.
  3332. * include/bits/random.h (_Select_uint_least_t)
  3333. (random_device): Likewise.
  3334. 2021-07-16 Patrick Palka <ppalka@redhat.com>
  3335. PR libstdc++/101231
  3336. * include/std/ranges (_CachedPosition::_M_get): For non-forward
  3337. ranges, just call __builtin_unreachable.
  3338. * testsuite/std/ranges/istream_view.cc (test05): New test.
  3339. 2021-07-16 Patrick Palka <ppalka@redhat.com>
  3340. PR libstdc++/101214
  3341. * include/std/ranges (split_view::split_view): Use std::move.
  3342. (split_view::_Iterator::_Iterator): Remove redundant
  3343. default_initializable constraint.
  3344. (split_view::_Sentinel::_Sentinel): Declare.
  3345. * testsuite/std/ranges/adaptors/split.cc (test02): New test.
  3346. 2021-07-16 Marek Polacek <polacek@redhat.com>
  3347. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
  3348. dg-error.
  3349. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3350. * include/bits/unique_ptr.h: Adjust doxygen markup.
  3351. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3352. PR libstdc++/101307
  3353. * include/std/type_traits: Adjust doxygen markup.
  3354. 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
  3355. * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
  3356. uses of non-standard integer types.
  3357. * include/bits/functional_hash.h: Likewise.
  3358. * include/bits/iterator_concepts.h: Likewise.
  3359. * include/bits/max_size_type.h: Likewise.
  3360. * include/bits/std_abs.h: Likewise.
  3361. * include/bits/stl_algobase.h: Likewise.
  3362. * include/bits/uniform_int_dist.h: Likewise.
  3363. * include/ext/numeric_traits.h: Likewise.
  3364. * include/std/type_traits: Likewise.
  3365. 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
  3366. PR libstdc++/101427
  3367. * include/std/tuple (tuple_element): Improve static_assert text.
  3368. (__get_helper): Add deleted overload.
  3369. (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
  3370. __get_helper directly.
  3371. (__get_helper2): Remove.
  3372. (__find_uniq_type_in_pack): New constexpr helper function.
  3373. (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
  3374. of __get_helper2.
  3375. * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
  3376. expected errors.
  3377. * testsuite/20_util/tuple/element_access/101427.cc: New test.
  3378. 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
  3379. PR libstdc++/101429
  3380. * include/bits/c++config (__replacement_assert): Add noexcept.
  3381. [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
  3382. instead of __replacement_assert.
  3383. 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
  3384. * include/std/string_view (basic_string_view(It, End)): Add
  3385. noexcept-specifier.
  3386. * testsuite/21_strings/basic_string_view/cons/char/range.cc:
  3387. Check noexcept-specifier. Also check construction without CTAD.
  3388. 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
  3389. PR c++/101361
  3390. * include/std/string_view (ends_with): Use traits_type::compare
  3391. directly.
  3392. 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
  3393. * include/std/string_view: Only include <bits/ranges_base.h>
  3394. once, and only for C++20 and later.
  3395. 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
  3396. PR libstdc++/101411
  3397. * include/std/span (as_writable_bytes): Add requires-clause.
  3398. * testsuite/23_containers/span/101411.cc: New test.
  3399. 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
  3400. * include/std/mutex (__lock_impl): Check
  3401. _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
  3402. 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
  3403. PR libstdc++/101271
  3404. * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
  3405. Remove noexcept-specifier.
  3406. (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
  3407. * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
  3408. operator[].
  3409. 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
  3410. * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
  3411. * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
  3412. Add some more predefined macros.
  3413. * include/bits/fs_fwd.h: Move @addtogroup commands inside
  3414. namespaces. Add better documentation.
  3415. * include/bits/fs_path.h: Likewise.
  3416. * include/experimental/bits/fs_fwd.h: Likewise.
  3417. * include/experimental/bits/fs_path.h: Likewise.
  3418. * include/ext/throw_allocator.h: Fix typo and improve docs.
  3419. * include/std/chrono: Move @addtogroup commands.
  3420. * include/std/system_error: Move @addtogroup commands.
  3421. * libsupc++/exception: Improve documentation.
  3422. * libsupc++/exception.h: Add @since documentation.
  3423. 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
  3424. PR libstdc++/101258
  3425. * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
  3426. (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
  3427. (PREDEFINED): Add/fix some more macros that need to be expanded.
  3428. * include/bits/random.h: Stop Doxygen from documenting internal
  3429. implementation details.
  3430. * include/bits/random.tcc: Likewise.
  3431. * include/bits/this_thread_sleep.h: Fix @file name.
  3432. * include/experimental/bits/simd.h: Add to Doxygen group. Do not
  3433. document internal implementation details.
  3434. * include/experimental/bits/simd_detail.h: Do not document
  3435. internal implementation details.
  3436. * include/experimental/simd: Define Doxygen groups.
  3437. * include/experimental/type_traits: Improve documentation for
  3438. the header file. Define groups. Use @since commands.
  3439. * include/std/scoped_allocator (scoped_allocator_adaptor): Move
  3440. declaration before undocumented region.
  3441. * include/std/type_traits (true_type, false_type): Use using
  3442. declaration instead of typedef.
  3443. (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
  3444. (is_nothrow_invocable_r_v): Move definitions next to other C++17
  3445. variable templates.
  3446. Do not document internal implementation details. Move misplaced
  3447. group-end command. Define group for variable templates.
  3448. * include/std/variant: Do not document internal implementation
  3449. details.
  3450. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  3451. line number.
  3452. 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
  3453. * include/experimental/simd: Do not define anything pre-C++17.
  3454. 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
  3455. * include/bits/random.tcc [__cpp_inline_variables]: Remove
  3456. redundant definitions of static constexpr member variables.
  3457. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  3458. line number.
  3459. 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
  3460. * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
  3461. explicit instantiation declarations.
  3462. * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
  3463. explicit instantiation definitions.
  3464. 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
  3465. PR libstdc++/97088
  3466. * testsuite/17_intro/names.cc: Fix #if condition for names used
  3467. by newlib headers.
  3468. 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
  3469. PR libstdc++/101236
  3470. * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
  3471. Fail gracefully if element_type is incomplete.
  3472. * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
  3473. the standard doesn't require this test to work for array types.
  3474. * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
  3475. types can be used with array specialization.
  3476. * testsuite/20_util/unique_ptr/101236.cc: New test.
  3477. 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
  3478. * doc/xml/manual/intro.xml: Document LWG 415 change.
  3479. * doc/html/manual/bugs.html: Regenerate.
  3480. * include/bits/istream.tcc (ws): Create sentry and catch
  3481. exceptions.
  3482. * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
  3483. * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
  3484. 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
  3485. * include/bits/ostream.tcc (basic_ostream::write): Call sputn
  3486. directly instead of using _M_write. Do setstate(__err) all
  3487. outside the try-catch block.
  3488. * include/std/ostream (basic_ostream::_M_write): Declare
  3489. private. Use __ostream_insert. Do not define for the versioned
  3490. namespace.
  3491. 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
  3492. * doc/xml/manual/intro.xml: Document LWG 581 change.
  3493. * doc/html/manual/bugs.html: Regenerate.
  3494. * include/bits/basic_ios.tcc: Whitespace.
  3495. * include/bits/ostream.tcc (basic_ostream::flush()): Construct
  3496. sentry.
  3497. * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
  3498. additional cases.
  3499. * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
  3500. Likewise.
  3501. * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
  3502. * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
  3503. Likewise.
  3504. 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
  3505. * include/bits/ostream.tcc (sentry): Only set failbit if badbit
  3506. is set, not if eofbit is set.
  3507. (tellp, seekp, seekp): Create sentry object. Do not set badbit
  3508. on exceptions.
  3509. * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
  3510. Adjust expected behaviour.
  3511. * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
  3512. Likewise.
  3513. * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
  3514. Likewise.
  3515. * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
  3516. Likewise.
  3517. * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
  3518. * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
  3519. * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
  3520. * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
  3521. 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
  3522. * include/std/syncstream (basic_syncbuf::swap()): Remove
  3523. noexcept, as per LWG 3498.
  3524. 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
  3525. PR libstdc++/97088
  3526. * testsuite/17_intro/names.cc: Undef more names for newlib and
  3527. also for arm-none-linux-gnueabi.
  3528. * testsuite/experimental/names.cc: Disable PCH.
  3529. 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
  3530. * include/experimental/bits/simd.h (__bit_cast): Implement via
  3531. __builtin_bit_cast #if available.
  3532. (__proposed::simd_bit_cast): Add overloads for simd and
  3533. simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
  3534. available), which return an object of the requested type with
  3535. the same bits as the argument.
  3536. * include/experimental/bits/simd_math.h: Use simd_bit_cast
  3537. instead of __bit_cast to allow casts to fixed_size_simd.
  3538. (copysign): Remove branch that was only required if __bit_cast
  3539. cannot be constexpr.
  3540. * testsuite/experimental/simd/tests/bits/test_values.h: Switch
  3541. from __bit_cast to __proposed::simd_bit_cast since the former
  3542. will not cast fixed_size objects anymore.
  3543. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3544. * include/experimental/bits/simd_math.h
  3545. (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
  3546. (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
  3547. __arg3.
  3548. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3549. * include/experimental/bits/simd.h (__execute_on_index_sequence)
  3550. (__execute_on_index_sequence_with_return)
  3551. (__call_with_n_evaluations, __call_with_subscripts): Add flatten
  3552. attribute.
  3553. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3554. * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
  3555. (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
  3556. roundp[sd] calls.
  3557. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3558. * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
  3559. implementation doesn't require a _VecBltnBtmsk ABI tag, it
  3560. requires either a 64-Byte input (in which case AVX512F must be
  3561. available) or AVX512VL.
  3562. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3563. * include/experimental/bits/simd_math.h: Undefine internal
  3564. macros after use.
  3565. (frexp): Move #if to a more sensible position and reformat
  3566. preceding code.
  3567. (logb): Call _SimdImpl::_S_logb for fixed_size instead of
  3568. duplicating the code here.
  3569. (modf): Simplify condition.
  3570. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3571. * include/experimental/bits/simd_math.h (fabs): Remove
  3572. fabs(simd<integral>) overload.
  3573. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3574. * include/experimental/bits/simd_converter.h
  3575. (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
  3576. * include/experimental/bits/simd_fixed_size.h
  3577. (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
  3578. arguments by const-ref.
  3579. (_S_masked_unary): Pass _SimdTuple by const-ref.
  3580. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3581. * include/experimental/bits/simd_fixed_size.h
  3582. (_AbisInSimdTuple): Removed.
  3583. 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
  3584. * include/experimental/bits/simd.h: Add missing operator~
  3585. overload for simd<floating-point> to __float_bitwise_operators.
  3586. * include/experimental/bits/simd_builtin.h
  3587. (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
  3588. implement complement for floating-point vectors.
  3589. * include/experimental/bits/simd_fixed_size.h
  3590. (_SimdImplFixedSize::_S_copysign): New function, forwarding to
  3591. copysign implementation of _SimdTuple members.
  3592. * include/experimental/bits/simd_math.h (copysign): Call
  3593. _SimdImpl::_S_copysign for fixed_size arguments. Simplify
  3594. generic copysign implementation using the new ~ operator.
  3595. 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
  3596. * testsuite/experimental/simd/README.md: Fix typos.
  3597. 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
  3598. * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
  3599. Add noexcept.
  3600. * include/bits/unique_ptr.h (unique_ptr::operator*): Add
  3601. conditional noexcept as per LWG 2762.
  3602. * testsuite/20_util/shared_ptr/observers/array.cc: Check that
  3603. dereferencing cannot throw.
  3604. * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
  3605. * testsuite/20_util/optional/observers/lwg2762.cc: New test.
  3606. * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
  3607. 2021-06-23 Patrick Palka <ppalka@redhat.com>
  3608. PR c++/101174
  3609. * testsuite/23_containers/multiset/cons/deduction.cc:
  3610. Uncomment CTAD example that was rejected by this bug.
  3611. * testsuite/23_containers/set/cons/deduction.cc: Likewise.
  3612. 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
  3613. * include/std/chrono (chrono::year::is_leap()): Fix incorrect
  3614. logic in comment.
  3615. 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
  3616. * testsuite/experimental/simd/README.md: New file.
  3617. 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
  3618. * testsuite/experimental/simd/driver.sh: Rewrite output
  3619. verbosity logic. Add -p/--percentage option. Allow -v/--verbose
  3620. to be used twice. Add -x and -o short options. Parse long
  3621. options with = instead of separating space generically. Parce
  3622. contracted short options. Make unrecognized options an error.
  3623. If same-line output is active, trap on EXIT to increment the
  3624. progress (only with --percentage), erase the line and print the
  3625. current status.
  3626. * testsuite/experimental/simd/generate_makefile.sh: Initialize
  3627. helper files for progress account keeping. Update help target
  3628. for changes to DRIVEROPTS.
  3629. 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
  3630. * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
  3631. and associated warning.
  3632. * testsuite/Makefile.in: Regenerate.
  3633. 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
  3634. Jonathan Wakely <jwakely@redhat.com>
  3635. Ulrich Drepper <drepper@redhat.com>
  3636. * include/std/chrono (chrono::year::is_leap()): Optimize.
  3637. 2021-06-23 Patrick Palka <ppalka@redhat.com>
  3638. PR c++/86439
  3639. * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
  3640. CTAD examples.
  3641. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
  3642. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
  3643. Mention one of the replaced examples is broken due to PR101174.
  3644. * testsuite/23_containers/set/cons/deduction.cc: Likewise.
  3645. * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
  3646. ambiguous CTAD examples.
  3647. * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
  3648. Likewise.
  3649. * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
  3650. Likewise.
  3651. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
  3652. 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
  3653. * include/std/mutex (__detail::__try_lock_impl): Rename
  3654. parameter to avoid clashing with newlib's __lockable macro.
  3655. (try_lock): Add 'inline' specifier.
  3656. * testsuite/17_intro/names.cc: Add check for __lockable.
  3657. * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
  3658. 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
  3659. Matthias Kretz <m.kretz@gsi.de>
  3660. * include/std/mutex (lock): Replace recursion with iteration
  3661. when lockables all have the same type.
  3662. (__detail::__try_lock_impl): Likewise. Pass lockables as
  3663. parameters, instead of a tuple. Always lock the first one, and
  3664. recurse for the rest.
  3665. (__detail::__lock_impl): Adjust call to __try_lock_impl.
  3666. (__detail::__try_to_lock): Remove.
  3667. * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
  3668. * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
  3669. arguments.
  3670. * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
  3671. std::try_lock.
  3672. * testsuite/30_threads/try_lock/5.cc: New test.
  3673. 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
  3674. * include/std/memory (declare_reachable, undeclare_reachable)
  3675. (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
  3676. (pointer_safety): Only define for C++11 to C++20 inclusive.
  3677. * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
  3678. 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
  3679. * include/bits/random.h (seed_seq): Constrain initializer-list
  3680. constructor.
  3681. * include/bits/random.tcc (seed_seq): Add template parameter.
  3682. * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
  3683. for noexcept.
  3684. * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
  3685. constraints.
  3686. 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
  3687. PR libstdc++/100806
  3688. * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
  3689. Force _M_release() to wake all waiting threads.
  3690. * testsuite/30_threads/semaphore/100806.cc: New test.
  3691. 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
  3692. * include/std/mutex (__try_to_lock): Move to __detail namespace.
  3693. (struct __try_lock_impl): Replace with ...
  3694. (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
  3695. function templates to implement std::try_lock.
  3696. (try_lock): Use new __try_lock_impl.
  3697. (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
  3698. template to implement std::lock.
  3699. (lock): Use __lock_impl.
  3700. 2021-06-21 Patrick Palka <ppalka@redhat.com>
  3701. * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
  3702. 2021-06-20 Patrick Palka <ppalka@redhat.com>
  3703. * include/std/ranges (__non_propagating_cache::operator bool):
  3704. Define for split_view::begin().
  3705. (split_view): Define as per P2210.
  3706. (views::__detail::__can_split_view): Define.
  3707. (views::_Split, views::split): Define.
  3708. * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
  3709. Test views::split.
  3710. * testsuite/std/ranges/adaptors/split.cc: New test.
  3711. * testsuite/std/ranges/p2325.cc (test08a): New test.
  3712. * testsuite/std/ranges/p2367.cc (test01): Test views::split.
  3713. 2021-06-20 Patrick Palka <ppalka@redhat.com>
  3714. * include/std/ranges: Rename views::split to views::lazy_split,
  3715. split_view to lazy_split_view, etc. throughout.
  3716. * testsuite/std/ranges/*: Likewise.
  3717. * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
  3718. * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
  3719. 2021-06-20 Patrick Palka <ppalka@redhat.com>
  3720. * include/std/ranges (split_view::_OuterIter::__at_end):
  3721. Check _M_trailing_empty.
  3722. (split_view::_OuterIter::_M_trailing_empty): Define this
  3723. data member.
  3724. (split_view::_OuterIter::operator++): Set _M_trailing_empty
  3725. appropriately.
  3726. (split_view::_OuterIter::operator==): Compare
  3727. _M_trailing_empty.
  3728. * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
  3729. split parts instead of one.
  3730. * testsuite/std/ranges/adaptors/split.cc (test11): New test.
  3731. 2021-06-20 Patrick Palka <ppalka@redhat.com>
  3732. * include/std/ranges (split_view::_InnerIter::base): Define as
  3733. per P2210.
  3734. 2021-06-19 Patrick Palka <ppalka@redhat.com>
  3735. * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
  3736. Consider _Base instead of _Vp as per LWG 3555.
  3737. (elements_view::_Iterator::_S_iter_concept): Likewise.
  3738. 2021-06-19 Patrick Palka <ppalka@redhat.com>
  3739. * include/std/ranges (split_view::_OuterIter::value_type::begin):
  3740. Remove the non-const overload, and remove the copyable constraint
  3741. on the const overload as per LWG 3553.
  3742. 2021-06-19 Patrick Palka <ppalka@redhat.com>
  3743. * include/bits/stl_iterator.h
  3744. (__detail::__common_iter_use_postfix_proxy): Add
  3745. move_constructible constraint as per LWG 3546.
  3746. (common_iterator::__postfix_proxy): Adjust initializer of
  3747. _M_keep as per LWG 3546.
  3748. 2021-06-18 Patrick Palka <ppalka@redhat.com>
  3749. PR libstdc++/100387
  3750. * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
  3751. to limit comparison complexity to 3*N/2.
  3752. (__minmax_element_fn::operator()): Likewise.
  3753. (shift_right): Avoid premature std::move of __result.
  3754. * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
  3755. New tests.
  3756. * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
  3757. Likewise.
  3758. 2021-06-18 Patrick Palka <ppalka@redhat.com>
  3759. * include/std/concepts (convertible_to): Just use declval as per
  3760. LWG 3557.
  3761. 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
  3762. PR libstdc++/95833
  3763. * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
  3764. incorrect static_assert with ones matching the 'Mandates'
  3765. conditions in the standard.
  3766. * testsuite/26_numerics/reduce/95833.cc: New test.
  3767. 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
  3768. * testsuite/21_strings/basic_string/cons/char/1.cc: Use
  3769. diagnostic pragma to suppress -Wstringop-overread error.
  3770. 2021-06-18 Patrick Palka <ppalka@redhat.com>
  3771. * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
  3772. (find_if, __find_if_not_fn, find_if_not, _in_in_result)
  3773. (__mismatch_fn, mismatch, __search_fn, search): Move to ...
  3774. * include/bits/ranges_util.h: ... here.
  3775. * include/std/ranges (__detail::find, __detail::find_if)
  3776. (__detail::find_if_not, __detail::mismatch): Remove.
  3777. (filter_view): Use ranges::find_if instead.
  3778. (drop_while_view): Use ranges::find_if_not instead.
  3779. (split_view): Use ranges::find and ranges::mismatch instead.
  3780. 2021-06-18 Patrick Palka <ppalka@redhat.com>
  3781. * include/bits/iterator_concepts.h (weakly_incrementable): Remove
  3782. default_initializable requirement.
  3783. * include/bits/ranges_base.h (ranges::view): Likewise.
  3784. * include/bits/ranges_util.h (subrange): Constrain the default
  3785. ctor.
  3786. * include/bits/stl_iterator.h (back_insert_iterator): Remove the
  3787. default ctor.
  3788. (front_insert_iterator): Likewise.
  3789. (insert_iterator): Likewise. Remove NSDMIs.
  3790. (common_iterator): Constrain the default ctor.
  3791. (counted_iterator): Likewise.
  3792. * include/bits/stream_iterator.h (ostream_iterator): Remove the
  3793. default ctor.
  3794. * include/std/ranges (__detail::__box::operator=): Handle
  3795. self-assignment in the primary template.
  3796. (__detail::__box): In the partial specialization: adjust
  3797. constraints as per P2325. Add specialized operator= for the
  3798. case when the wrapped type is not copyable. Constrain the
  3799. default ctor. Avoid list-initialization.
  3800. (single_view): Constraint the default ctor.
  3801. (iota_view): Relax semiregular constraint to copyable.
  3802. Constrain the default ctor.
  3803. (iota_view::_Iterator): Constraint the default ctor.
  3804. (basic_istream_view): Remove the default ctor. Remove NSDMIs.
  3805. Remove redundant checks for empty _M_stream.
  3806. (basic_istream_view::_Iterator): Likewise.
  3807. (ref_view): Remove the default ctor. Remove NSDMIs.
  3808. (ref_view::_Iterator): Constrain the default ctor.
  3809. (__detail::__non_propagating_cache::operator=): Define overload
  3810. for assigning from a value of the underlying type.
  3811. (filter_view): Likewise.
  3812. (filter_view::_Iterator): Likewise.
  3813. (transform_view): Likewise.
  3814. (transform_view::_Iterator): Likewise.
  3815. (take_view): Likewise.
  3816. (take_view::_Iterator): Likewise.
  3817. (take_while_view): Likewise.
  3818. (take_while_view::_Iterator): Likewise.
  3819. (drop_while_view): Likewise.
  3820. (drop_while_view::_Iterator): Likewise.
  3821. (join_view): Likewise.
  3822. (split_view::_OuterIter::__current): Adjust after changing the
  3823. type of _M_current.
  3824. (split_view::_M_current): Wrap it in a __non_propagating_cache.
  3825. (split_view::split_view): Constrain the default ctor.
  3826. (common_view): Constrain the default ctor.
  3827. (reverse_view): Likewise.
  3828. (elements_view): Likewise.
  3829. * include/std/span (enable_view<span<_ElementType, _Extent>>):
  3830. Define this partial specialization to true unconditionally.
  3831. * include/std/version (__cpp_lib_ranges): Adjust value.
  3832. * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
  3833. Don't attempt to default construct a back_insert_iterator.
  3834. * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
  3835. Don't attempt to default construct a front_insert_iterator.
  3836. * testsuite/24_iterators/insert_iterator/constexpr.cc:
  3837. Don't attempt to default construct an insert_iterator.
  3838. * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
  3839. Remove this test for default constructibility of ostream_iterator.
  3840. * testsuite/std/ranges/97600.cc: Don't attempt to default
  3841. construct a basic_istream_view.
  3842. * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
  3843. Rename to ...
  3844. * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
  3845. (test02): Adjust now that __box is copyable-box not
  3846. semiregular-box.
  3847. (test03): New test.
  3848. * testsuite/std/ranges/p2325.cc: New test.
  3849. * testsuite/std/ranges/single_view.cc (test06): New test.
  3850. * testsuite/std/ranges/view.cc: Adjust now that view doesn't
  3851. require default_initializable.
  3852. 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
  3853. PR libstdc++/91488
  3854. * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
  3855. define when is_constant_evaluated is available.
  3856. * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
  3857. Likewise.
  3858. (__constant_string_p, __constant_array_p): Remove.
  3859. (char_traits): Use is_constant_evaluated directly.
  3860. * include/std/version (__cpp_lib_constexpr_char_traits)
  3861. (__cpp_lib_constexpr_string): Only define when
  3862. is_constant_evaluated is available.
  3863. 2021-06-17 Patrick Palka <ppalka@redhat.com>
  3864. PR libstdc++/100940
  3865. * include/std/ranges (__adaptor::_Partial): For the "simple"
  3866. forwarding partial specializations, also require that
  3867. the extra arguments are trivially copyable.
  3868. * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
  3869. 2021-06-17 Patrick Palka <ppalka@redhat.com>
  3870. PR libstdc++/100940
  3871. * include/std/ranges (__adaptor::_RangeAdaptor): Document the
  3872. template form of _S_has_simple_extra_args.
  3873. (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
  3874. parameter pack. Try to treat _S_has_simple_extra_args as a
  3875. variable template parameterized by _Args.
  3876. (__adaptor::_Partial): Pass _Arg/_Args to the constraint
  3877. __adaptor_has_simple_extra_args.
  3878. (views::_Take::_S_has_simple_extra_args): Templatize according
  3879. to the type of the extra argument.
  3880. (views::_Drop::_S_has_simple_extra_args): Likewise.
  3881. (views::_Split::_S_has_simple_extra_args): Define.
  3882. * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
  3883. Adjust after changes to _S_has_simple_extra_args mechanism.
  3884. (test03): Define.
  3885. 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
  3886. * include/bits/iterator_concepts.h (__decay_copy): Name type.
  3887. 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
  3888. * include/bits/ranges_base.h (ranges::begin, ranges::end)
  3889. (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
  3890. (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
  3891. (ranges::empty, ranges::data, ranges::cdata): Remove final
  3892. keywords and deleted operator& overloads.
  3893. * testsuite/24_iterators/customization_points/iter_move.cc: Use
  3894. new is_customization_point_object function.
  3895. * testsuite/24_iterators/customization_points/iter_swap.cc:
  3896. Likewise.
  3897. * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
  3898. Likewise.
  3899. * testsuite/std/ranges/access/begin.cc: Likewise.
  3900. * testsuite/std/ranges/access/cbegin.cc: Likewise.
  3901. * testsuite/std/ranges/access/cdata.cc: Likewise.
  3902. * testsuite/std/ranges/access/cend.cc: Likewise.
  3903. * testsuite/std/ranges/access/crbegin.cc: Likewise.
  3904. * testsuite/std/ranges/access/crend.cc: Likewise.
  3905. * testsuite/std/ranges/access/data.cc: Likewise.
  3906. * testsuite/std/ranges/access/empty.cc: Likewise.
  3907. * testsuite/std/ranges/access/end.cc: Likewise.
  3908. * testsuite/std/ranges/access/rbegin.cc: Likewise.
  3909. * testsuite/std/ranges/access/rend.cc: Likewise.
  3910. * testsuite/std/ranges/access/size.cc: Likewise.
  3911. * testsuite/std/ranges/access/ssize.cc: Likewise.
  3912. * testsuite/util/testsuite_iterators.h
  3913. (is_customization_point_object): New function.
  3914. 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
  3915. * include/bits/ranges_base.h (ranges::begin, ranges::end)
  3916. (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
  3917. (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
  3918. (ranges::empty, ranges::data, ranges::cdata): Make types final.
  3919. Add deleted operator& overloads.
  3920. (ranges::advance, ranges::distance, ranges::next, ranges::prev):
  3921. Likewise.
  3922. * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
  3923. ill-formed & expressions with using-declarations. Add checks for
  3924. other function objects.
  3925. 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
  3926. * include/bits/ranges_util.h (view_interface): Add noexcept to
  3927. empty, operator bool, data and size members.
  3928. (subrange): Add noexcept to constructors.
  3929. * include/std/ranges (single_view, ref_view): Add noexcept to
  3930. constructors.
  3931. (views::single, views::all): Add noexcept.
  3932. * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
  3933. * testsuite/std/ranges/single_view.cc: Likewise.
  3934. 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
  3935. * include/bits/ranges_util.h (subrange): Add __size_type typedef
  3936. and use it to simplify declarations.
  3937. (subrange(i, s, n)): Remove assertion.
  3938. * testsuite/std/ranges/subrange/constexpr.cc: New test.
  3939. 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
  3940. * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
  3941. Replace with function object.
  3942. (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
  3943. __decay_copy unqualified.
  3944. * include/bits/ranges_base.h (__member_end, __adl_end):
  3945. Likewise. Use __range_iter_t for type of ranges::begin.
  3946. (__member_rend): Use correct value category for rbegin argument.
  3947. (__member_data): Use __decay_copy unqualified.
  3948. (__begin_data): Use __range_iter_t for type of ranges::begin.
  3949. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3950. * include/bits/ranges_base.h (ranges::empty): Check whether
  3951. conversion to bool can throw.
  3952. * testsuite/std/ranges/access/empty.cc: Check for correct
  3953. noexcept-specifier.
  3954. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3955. PR libstdc++/100894
  3956. * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
  3957. use the type if it's a reference.
  3958. * testsuite/20_util/common_reference/100894.cc: New test.
  3959. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3960. * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
  3961. Add dg-require-filesystem-ts directive.
  3962. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3963. PR libstdc++/101034
  3964. * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
  3965. (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
  3966. to use lvalue.
  3967. * testsuite/20_util/any/cons/101034.cc: New test.
  3968. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3969. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
  3970. -std=gnu++17 option.
  3971. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3972. PR libstdc++/101056
  3973. * libsupc++/compare (compare_partial_order_fallback): Add
  3974. constraint using reversed parameter order, as per LWG 3465.
  3975. * testsuite/18_support/comparisons/algorithms/fallback.cc:
  3976. Adjust expected result.
  3977. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3978. * libsupc++/compare (__decayed_same_as): New helper concept.
  3979. (strong_order, weak_order, partial_order): Constrain with new
  3980. concept instead of using static_assert.
  3981. (compare_strong_order_fallback, compare_weak_order_fallback)
  3982. (compare_partial_order_fallback): Likewise. Do not deduce return
  3983. types. Remove redundant if-constexpr checks.
  3984. * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
  3985. 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
  3986. PR libstdc++/101055
  3987. * include/std/tuple: Use reserved form of attribute name.
  3988. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
  3989. check for no_unique_address.
  3990. * testsuite/17_intro/headers/c++2014/all_attributes.cc:
  3991. Likewise.
  3992. * testsuite/17_intro/headers/c++2017/all_attributes.cc:
  3993. Likewise.
  3994. 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
  3995. * include/bits/fs_path.h (operator==, operator<=>): Use new
  3996. _S_compare function.
  3997. (path::_S_compare): New function to call path::compare in a
  3998. context where path::iterator is complete.
  3999. * include/experimental/bits/fs_path.h (operator<, operator==):
  4000. Define after path::iterator is complete.
  4001. * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
  4002. test.
  4003. * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
  4004. New test.
  4005. 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
  4006. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
  4007. test logic with constexpr check for is_always_lock_free.
  4008. 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
  4009. PR libstdc++/100982
  4010. * include/std/optional (optional::operator=(const optional<U>&)):
  4011. Fix value category used in is_assignable check.
  4012. * testsuite/20_util/optional/assignment/100982.cc: New test.
  4013. 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
  4014. * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
  4015. * include/bits/iterator_concepts.h (indirectly_readable_traits):
  4016. Add LWG issue number to comment.
  4017. * include/std/memory_resource (polymorphic_allocator::release):
  4018. Deprecate.
  4019. * testsuite/20_util/allocator/requirements/typedefs.cc: Add
  4020. dg-warning for deprecation. Also check std::allocator<void>.
  4021. 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
  4022. PR libstdc++/100889
  4023. * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
  4024. Change parameter type from _Tp to _Tp*.
  4025. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
  4026. coverage of types tested.
  4027. 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
  4028. * include/std/barrier (__tree_barrier::_M_arrive): Remove
  4029. unnecessary hasher instantiation.
  4030. 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
  4031. * include/experimental/propagate_const (swap): Constrain.
  4032. * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
  4033. 2021-06-07 Avi Kivity <avi@scylladb.com>
  4034. PR libstdc++/100900
  4035. * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
  4036. Add missing typename.
  4037. 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
  4038. PR libstdc++/98842
  4039. * include/std/optional (operator<=>(const optional<T>& const U&)):
  4040. Add missing constraint and add workaround for template
  4041. recursion.
  4042. * testsuite/20_util/optional/relops/three_way.cc: Check that
  4043. type without equality comparison cannot be compared when wrapped
  4044. in std::optional.
  4045. 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
  4046. PR libstdc++/100824
  4047. * include/bits/ranges_base.h (_SSize): Return signed type.
  4048. * testsuite/std/ranges/access/ssize.cc: Check with __int128.
  4049. 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
  4050. * include/bits/ranges_base.h (_SSize): Return the result of
  4051. ranges::size converted to the wider of make-signed-like-t<S> and
  4052. ptrdiff_t, rather than the ranges different type.
  4053. * testsuite/std/ranges/access/ssize.cc: Adjust expected result
  4054. for an iota_view that uses an integer class type for its
  4055. difference_type.
  4056. 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
  4057. PR libstdc++/100824
  4058. * include/bits/ranges_base.h (__member_data): Use __decay_copy.
  4059. * testsuite/std/ranges/access/data.cc: Add testcase from PR.
  4060. 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
  4061. PR libstdc++/100824
  4062. * include/bits/iterator_concepts.h (__detail::__decay_copy)
  4063. (__detail::__member_begin, __detail::__adl_begin): Move to
  4064. namespace ranges::__cust_access.
  4065. (__detail::__ranges_begin): Likewise, and rename to __begin.
  4066. Remove redundant static assertion.
  4067. * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
  4068. Use lvalue in noexcept specifier.
  4069. (__as_const): Add non-deduced parameter for value category.
  4070. (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
  4071. __as_const.
  4072. (__member_size, __adl_size, __member_empty, __size0_empty):
  4073. (__eq_iter_empty, __adl_data): Use lvalue objects in
  4074. requirements.
  4075. (__sentinel_size): Likewise. Add check for conversion to
  4076. unsigned-like.
  4077. (__member_data): Allow non-lvalue types to satisfy the concept,
  4078. but use lvalue object in requirements.
  4079. (_Size, _SSize): Remove forwarding to always use an lvalue.
  4080. (_Data): Likewise. Add static assertion for arrays.
  4081. * testsuite/std/ranges/access/cdata.cc: Adjust expected
  4082. behaviour for rvalues. Add negative tests for ill-formed
  4083. expressions.
  4084. * testsuite/std/ranges/access/data.cc: Likewise.
  4085. * testsuite/std/ranges/access/empty.cc: Adjust expected
  4086. behaviour for rvalues.
  4087. * testsuite/std/ranges/access/size.cc: Likewise.
  4088. 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
  4089. * include/std/any (any::_Manager::_S_access): New static
  4090. function to access the contained value.
  4091. (any::emplace, __any_caster): Use _S_access member of the
  4092. manager type.
  4093. 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
  4094. * doc/xml/manual/status_cxx2020.xml:
  4095. * doc/html/*: Regenerate.
  4096. * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
  4097. Define.
  4098. * include/std/version (__cpp_lib_generic_unordered_lookup):
  4099. Define.
  4100. * testsuite/23_containers/unordered_map/operations/1.cc: Check
  4101. feature test macro.
  4102. * testsuite/23_containers/unordered_set/operations/1.cc:
  4103. Likewise.
  4104. 2021-06-03 Patrick Palka <ppalka@redhat.com>
  4105. * include/bits/ranges_algo.h (__detail::__can_reread_output):
  4106. Factor out this concept from ...
  4107. (__unique_copy_fn::operator()): ... here. Use the concept
  4108. throughout.
  4109. * testsuite/std/ranges/range.cc: Remove now ill-formed use
  4110. of range_value_t on an output_range.
  4111. * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
  4112. Define value_type, pointer and reference member types to void.
  4113. 2021-06-03 Patrick Palka <ppalka@redhat.com>
  4114. PR libstdc++/100577
  4115. * include/std/ranges (_RangeAdaptorClosure): Document
  4116. _S_has_simple_call_op mechanism.
  4117. (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
  4118. (__closure_has_simple_call_op): New concept.
  4119. (__adaptor_has_simple_extra_args): Likewise.
  4120. (_Partial<_Adaptor, _Args...>): New partial specialization.
  4121. (_Partial<_Adaptor, _Arg>): Likewise.
  4122. (_Pipe<_Lhs, _Rhs>): Likewise.
  4123. (views::_All::_S_has_simple_call_op): Define to true.
  4124. (views::_Filter::_S_has_simple_extra_args): Likewise.
  4125. (views::_Transform::_S_has_simple_extra_args): Likewise.
  4126. (views::_Take::_S_has_simple_extra_args): Likewise.
  4127. (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
  4128. (views::_Drop::_S_has_simple_extra_args): Likewise.
  4129. (views::_DropWhile::_S_has_simple_extra_args): Likewise.
  4130. (views::_Join::_S_has_simple_call_op): Likewise.
  4131. (views::_Split): Document why we don't define
  4132. _S_has_simple_extra_args to true for this adaptor.
  4133. (views::_Common::_S_has_simple_call_op): Define to true.
  4134. (views::_Reverse::_S_has_simple_call_op): Likewise.
  4135. (views::_Elements::_S_has_simple_call_op): Likewise.
  4136. * testsuite/std/ranges/adaptors/100577.cc: New test.
  4137. 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
  4138. PR libstdc++/100863
  4139. PR libstdc++/65816
  4140. * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
  4141. Value-initialize subobject.
  4142. * testsuite/23_containers/unordered_map/allocator/default_init.cc:
  4143. Remove XFAIL.
  4144. * testsuite/23_containers/unordered_set/allocator/default_init.cc:
  4145. Remove XFAIL.
  4146. 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
  4147. PR libstdc++/96088
  4148. * testsuite/23_containers/unordered_map/96088.cc: Adjust
  4149. expected number of allocations.
  4150. * testsuite/23_containers/unordered_set/96088.cc: Likewise.
  4151. 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
  4152. * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
  4153. * doc/xml/manual/status_cxxtr1.xml: Likewise.
  4154. * doc/xml/manual/status_cxxtr24733.xml: Likewise.
  4155. * doc/html/*: Regenerate.
  4156. 2021-06-01 Patrick Palka <ppalka@redhat.com>
  4157. PR c++/65816
  4158. * testsuite/23_containers/deque/allocator/default_init.cc,
  4159. testsuite/23_containers/forward_list/allocator/default_init.cc,
  4160. testsuite/23_containers/list/allocator/default_init.cc,
  4161. testsuite/23_containers/map/allocator/default_init.cc,
  4162. testsuite/23_containers/set/allocator/default_init.cc,
  4163. testsuite/23_containers/vector/allocator/default_init.cc,
  4164. testsuite/23_containers/vector/bool/allocator/default_init.cc:
  4165. Remove xfail.
  4166. 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
  4167. * testsuite/23_containers/unordered_map/96088.cc: Change
  4168. effective target to c++17.
  4169. * testsuite/23_containers/unordered_set/96088.cc: Likewise.
  4170. 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
  4171. * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
  4172. isblank for C++11 and later.
  4173. 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
  4174. PR libstdc++/100833
  4175. * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
  4176. Fix return value for no-op case.
  4177. * testsuite/24_iterators/range_operations/advance.cc: Test
  4178. return values of three-argument overload.
  4179. 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
  4180. PR libstdc++/99453
  4181. * python/Makefile.am: Use archive name for printer hook if no
  4182. dynamic library name is available.
  4183. * python/Makefile.in: Regenerate.
  4184. 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
  4185. * doc/xml/manual/abi.xml: Remove dead reference to "Intel
  4186. Compilers for Linux: Compatibility with GNU Compilers" article.
  4187. * doc/html/manual/abi.html: Regenerate.
  4188. 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
  4189. * include/debug/formatter.h
  4190. (_Error_formatter::_Parameter::_Named): New.
  4191. (_Error_formatter::_Parameter::_Type): Inherit latter.
  4192. (_Error_formatter::_Parameter::_M_integer): Likewise.
  4193. (_Error_formatter::_Parameter::_M_string): Likewise.
  4194. * src/c++11/debug.cc: Include <cstring>.
  4195. (_Print_func_t): New.
  4196. (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
  4197. (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
  4198. (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
  4199. (print_type): Rename in...
  4200. (print_type_info): ...this. Use pretty_print.
  4201. (print_address, print_integer): New.
  4202. (print_named_name, print_iterator_constness, print_iterator_state): New.
  4203. (print_iterator_seq_type): New.
  4204. (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
  4205. (print_field): Use latters.
  4206. (print_quoted_named_name, print_type_type, print_type, print_instance): New.
  4207. (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
  4208. Change signature to...
  4209. (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
  4210. ...this and adapt. Remove intermediate buffer to render input string.
  4211. (print_string(PrintContext&, const char*, ptrdiff_t)): New.
  4212. 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
  4213. PR libstdc++/100768
  4214. * include/bits/ranges_base.h (advance, distance, next, prev):
  4215. Replace function templates with function objects.
  4216. * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
  4217. Adjust for changes to function objects.
  4218. * testsuite/std/ranges/adaptors/elements.cc: Add using
  4219. declarations for names from namespace ranges.
  4220. * testsuite/std/ranges/adaptors/transform.cc: Likewise.
  4221. * testsuite/24_iterators/range_operations/100768.cc: New test.
  4222. 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
  4223. PR libstdc++/96088
  4224. * include/bits/hashtable_policy.h (_Select2nd): New.
  4225. (_NodeBuilder<>): New.
  4226. (_ReuseOrAllocNode<>::operator()): Use variadic template args.
  4227. (_AllocNode<>::operator()): Likewise.
  4228. * include/bits/hashtable.h
  4229. (_Hashtable<>::__node_builder_t): New.
  4230. (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
  4231. New.
  4232. (_Hashtable<>::_S_forward_key): New.
  4233. (_Hashtable<>::_M_insert): Use latter.
  4234. (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
  4235. Instantiate node first, compute hash code second.
  4236. * testsuite/23_containers/unordered_map/96088.cc: New test.
  4237. * testsuite/23_containers/unordered_multimap/96088.cc: New test.
  4238. * testsuite/23_containers/unordered_multiset/96088.cc: New test.
  4239. * testsuite/23_containers/unordered_set/96088.cc: New test.
  4240. * testsuite/util/replacement_memory_operators.h
  4241. (counter::_M_increment): New.
  4242. (counter::_M_decrement): New.
  4243. (counter::reset()): New.
  4244. 2021-05-24 Patrick Palka <ppalka@redhat.com>
  4245. PR libstdc++/100479
  4246. * include/std/ranges (__detail::__non_propagating_cache): Move
  4247. definition up to before that of _CachedPosition. Make base
  4248. class _Optional_base protected instead of private. Add const
  4249. overload for operator*.
  4250. (__detail::_CachedPosition): Rewrite the partial specialization
  4251. for forward ranges as a derived class of __non_propagating_cache.
  4252. Remove the size constraint on the partial specialization for
  4253. random access ranges. Add copy/move/copy-assignment/move-assignment
  4254. members to the offset partial specialization for random
  4255. access ranges that propagate the cached value but additionally
  4256. invalidate it in the source object on move.
  4257. * testsuite/std/ranges/adaptors/100479.cc: New test.
  4258. 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
  4259. * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
  4260. call to ranges::next.
  4261. * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
  4262. * testsuite/25_algorithms/is_sorted_until/constrained.cc:
  4263. Likewise.
  4264. * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
  4265. swap_ranges.
  4266. 2021-05-21 Patrick Palka <ppalka@redhat.com>
  4267. PR libstdc++/100606
  4268. * include/std/ranges (drop_while_view::begin): Assert the
  4269. precondition added by LWG 3490.
  4270. 2021-05-21 Patrick Palka <ppalka@redhat.com>
  4271. PR libstdc++/100690
  4272. * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
  4273. Split out this member function from ...
  4274. (iota_view::_Sentinel::operator-): ... here, for sake of access
  4275. control.
  4276. * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
  4277. 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
  4278. * include/bits/random.tcc (__representable_as_double)
  4279. (__p1_representable_as_double): Add "" to static asserts.
  4280. 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
  4281. PR libstdc++/100676
  4282. * include/bits/c++config (__glibcxx_assert_1): Rename to ...
  4283. (__glibcxx_constexpr_assert): ... this.
  4284. (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
  4285. (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
  4286. or __glibcxx_assert_impl.
  4287. (__glibcxx_assert_2): Remove
  4288. * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
  4289. __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
  4290. * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
  4291. Adjust expected error.
  4292. * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
  4293. Likewise.
  4294. * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
  4295. Likewise.
  4296. Likewise.
  4297. * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
  4298. Likewise.
  4299. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
  4300. Likewise.
  4301. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
  4302. Likewise.
  4303. * testsuite/23_containers/span/back_neg.cc: Likewise.
  4304. * testsuite/23_containers/span/front_neg.cc: Likewise.
  4305. * testsuite/23_containers/span/index_op_neg.cc: Likewise.
  4306. 2021-05-20 Patrick Palka <ppalka@redhat.com>
  4307. PR libstdc++/100639
  4308. * include/bits/stl_iterator.h (reverse_iterator::difference_type):
  4309. In C++20 mode, define in terms of iter_difference_t as per P0896R4.
  4310. (reverse_iterator::reference): Likewise, but with iter_reference_t.
  4311. (reverse_iterator::value_type): Likewise, but with iter_value_t.
  4312. * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
  4313. * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
  4314. 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
  4315. PR libstdc++/100361
  4316. * include/std/charconv (to_chars): Hide the overloads for
  4317. floating-point types for 16 bit targets.
  4318. * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
  4319. * testsuite/20_util/to_chars/double.cc: Run this test only on
  4320. size32plus targets.
  4321. * testsuite/20_util/to_chars/float.cc: Likewise.
  4322. * testsuite/20_util/to_chars/long_double.cc: Likewise.
  4323. 2021-05-18 Patrick Palka <ppalka@redhat.com>
  4324. PR libstdc++/100631
  4325. * include/std/ranges (elements_view::_Sentinel::operator-): Use
  4326. _M_distance_from in the other operator- overload too.
  4327. * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
  4328. 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
  4329. * testsuite/lib/prune.exp: Add note about 'dg-note'.
  4330. 2021-05-18 Patrick Palka <ppalka@redhat.com>
  4331. PR libstdc++/100475
  4332. * include/std/ranges (__box::__box): Use non-list-initialization
  4333. in member initializer list of in-place constructor of the
  4334. partial specialization for semiregular types.
  4335. (__box::operator->): Use std::__addressof.
  4336. * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
  4337. (test02): New test.
  4338. * testsuite/std/ranges/single_view.cc (test04): New test.
  4339. 2021-05-18 Patrick Palka <ppalka@redhat.com>
  4340. PR libstdc++/100621
  4341. * include/std/ranges (reverse_view::_S_needs_cached_begin):
  4342. Set to true if the underlying non-common random-access range
  4343. doesn't have a sized sentinel.
  4344. 2021-05-18 Patrick Palka <ppalka@redhat.com>
  4345. PR libstdc++/100631
  4346. * include/std/ranges (elements_view::_Iterator): Also befriend
  4347. _Sentinel<!_Const>.
  4348. (elements_view::_Sentinel::_M_equal): Templatize.
  4349. (elements_view::_Sentinel::_M_distance_from): Split out from ...
  4350. (elements_view::_Sentinel::operator-): ... here. Depend on
  4351. _Base2 instead of _Base in the return type.
  4352. * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
  4353. New tests.
  4354. 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
  4355. * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
  4356. until value change observed.
  4357. (__waiter_base::_M_laundered): New member.
  4358. (__waiter_base::_M_notify): Check _M_laundered to determine
  4359. whether to wake one or all.
  4360. (__detail::__atomic_compare): Return true if call to
  4361. __builtin_memcmp() == 0.
  4362. (__waiter_base::_S_do_spin_v): Adjust predicate.
  4363. * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
  4364. test.
  4365. 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
  4366. PR libstdc++/100630
  4367. * include/experimental/bits/fs_path.h (__is_constructible_from):
  4368. Test construction from a const lvalue, not an rvalue.
  4369. * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
  4370. * testsuite/experimental/filesystem/path/construct/100630.cc:
  4371. New test.
  4372. 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
  4373. PR libstdc++/89728
  4374. * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
  4375. Declare (but do not define) partial specialization.
  4376. * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
  4377. 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
  4378. * include/std/thread (jthread::_S_create): Fix static assert
  4379. message.
  4380. * testsuite/30_threads/jthread/95989.cc: Re-enable test.
  4381. * testsuite/30_threads/jthread/jthread.cc: Do not require
  4382. pthread effective target.
  4383. * testsuite/30_threads/jthread/2.cc: Moved to...
  4384. * testsuite/30_threads/jthread/version.cc: ...here.
  4385. 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
  4386. * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
  4387. * doc/Makefile.in: Regenerate.
  4388. * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
  4389. value.
  4390. * scripts/run_doxygen (print_usage): Always print to stdout and
  4391. do not exit.
  4392. (fail): New function for exiting on error.
  4393. (parse_options): Handle --latex_cmd. Do not treat --help the
  4394. same as errors. Simplify handling of required arguments.
  4395. 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
  4396. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
  4397. Increase dg-timeout-factor to 4. Fix -Wunused-parameter
  4398. warnings. Replace bitwise AND with logical AND in loop
  4399. condition.
  4400. * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
  4401. Replace bitwise AND with logical AND in loop condition.
  4402. * testsuite/util/pstl/test_utils.h: Remove unused parameter
  4403. names.
  4404. 2021-05-11 Patrick Palka <ppalka@redhat.com>
  4405. * src/c++17/ryu/LOCAL_PATCHES: Update.
  4406. * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
  4407. Remove declarations for never-defined functions.
  4408. * testsuite/20_util/to_chars/4.cc: New test.
  4409. 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
  4410. * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
  4411. alternative for macro.
  4412. * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
  4413. target keyword.
  4414. * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
  4415. syntax.
  4416. 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
  4417. * include/bits/allocator.h (allocator<void>) [C++20]: Add
  4418. missing noexcept to constructor. Restore missing POCMA and
  4419. is_always_equal_traits.
  4420. [C++17]: Make construct and destroy members private and
  4421. declare allocator_traits as a friend.
  4422. * include/bits/memoryfwd.h (allocator_traits): Declare.
  4423. * include/ext/malloc_allocator.h (malloc_allocator::allocate):
  4424. Add nodiscard attribute. Add static assertion for LWG 3307.
  4425. * include/ext/new_allocator.h (new_allocator::allocate): Add
  4426. static assertion for LWG 3307.
  4427. * testsuite/20_util/allocator/void.cc: Check that converting
  4428. constructor is noexcept. Check for propagation traits and
  4429. size_type and difference_type. Check that pointer and
  4430. const_pointer are gone in C++20.
  4431. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4432. * include/std/stop_token: Remove TODO comment.
  4433. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4434. * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
  4435. Initialize a non-reference deleter from an rvalue, as per LWG
  4436. 3548.
  4437. (__shared_ptr::_UniqCompatible): Add missing constraint.
  4438. * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
  4439. * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
  4440. constraints.
  4441. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4442. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
  4443. -std=gnu++17 from dg-options directive.
  4444. * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
  4445. Likewise.
  4446. * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
  4447. Likewise.
  4448. * testsuite/17_intro/headers/c++2017/operator_names.cc:
  4449. Likewise.
  4450. * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
  4451. * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
  4452. * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
  4453. Likewise.
  4454. * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
  4455. * testsuite/18_support/byte/81076.cc: Likewise.
  4456. * testsuite/18_support/byte/global_neg.cc: Likewise.
  4457. * testsuite/18_support/byte/ops.cc: Likewise.
  4458. * testsuite/18_support/byte/requirements.cc: Likewise.
  4459. * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
  4460. * testsuite/18_support/launder/1.cc: Likewise.
  4461. * testsuite/18_support/launder/nodiscard.cc: Likewise.
  4462. * testsuite/18_support/launder/requirements.cc: Likewise.
  4463. * testsuite/18_support/launder/requirements_neg.cc: Likewise.
  4464. * testsuite/18_support/new_aligned.cc: Likewise.
  4465. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
  4466. Likewise.
  4467. * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
  4468. Likewise.
  4469. * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
  4470. * testsuite/20_util/addressof/requirements/constexpr.cc:
  4471. Likewise.
  4472. * testsuite/20_util/as_const/1.cc: Likewise.
  4473. * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
  4474. * testsuite/20_util/bind/83427.cc: Likewise.
  4475. * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
  4476. * testsuite/20_util/bool_constant/requirements.cc: Likewise.
  4477. * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
  4478. Likewise.
  4479. * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
  4480. Likewise.
  4481. * testsuite/20_util/duration_cast/rounding.cc: Likewise.
  4482. * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
  4483. Likewise.
  4484. * testsuite/20_util/from_chars/1_neg.cc: Likewise.
  4485. * testsuite/20_util/from_chars/requirements.cc: Likewise.
  4486. * testsuite/20_util/function/91456.cc: Likewise.
  4487. * testsuite/20_util/function/cons/deduction.cc: Likewise.
  4488. * testsuite/20_util/function_objects/83607.cc: Likewise.
  4489. * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
  4490. * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
  4491. * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
  4492. * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
  4493. * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
  4494. Likewise.
  4495. * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
  4496. Likewise.
  4497. * testsuite/20_util/has_unique_object_representations/value.cc:
  4498. Likewise.
  4499. * testsuite/20_util/hash/nullptr.cc: Likewise.
  4500. * testsuite/20_util/in_place/requirements.cc: Likewise.
  4501. * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
  4502. * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
  4503. Likewise.
  4504. * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
  4505. Likewise.
  4506. * testsuite/20_util/is_aggregate/value.cc: Likewise.
  4507. * testsuite/20_util/is_invocable/83395.cc: Likewise.
  4508. * testsuite/20_util/is_invocable/91456.cc: Likewise.
  4509. * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
  4510. Likewise.
  4511. * testsuite/20_util/is_invocable/requirements/typedefs.cc:
  4512. Likewise.
  4513. * testsuite/20_util/is_invocable/value.cc: Likewise.
  4514. * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
  4515. * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
  4516. * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
  4517. * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
  4518. Likewise.
  4519. * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
  4520. * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
  4521. * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
  4522. Likewise.
  4523. * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
  4524. Likewise.
  4525. * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
  4526. * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
  4527. Likewise.
  4528. * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
  4529. Likewise.
  4530. * testsuite/20_util/is_nothrow_swappable_with/value.cc:
  4531. Likewise.
  4532. * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
  4533. Likewise.
  4534. * testsuite/20_util/is_swappable/requirements/typedefs.cc:
  4535. Likewise.
  4536. * testsuite/20_util/is_swappable/value.cc: Likewise.
  4537. * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
  4538. Likewise.
  4539. * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
  4540. Likewise.
  4541. * testsuite/20_util/is_swappable_with/value.cc: Likewise.
  4542. * testsuite/20_util/logical_traits/83134.cc: Likewise.
  4543. * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
  4544. Likewise.
  4545. * testsuite/20_util/logical_traits/requirements/typedefs.cc:
  4546. Likewise.
  4547. * testsuite/20_util/logical_traits/value.cc: Likewise.
  4548. * testsuite/20_util/pair/cons/deduction.cc: Likewise.
  4549. * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
  4550. * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
  4551. Likewise.
  4552. * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
  4553. * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
  4554. * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
  4555. * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
  4556. * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
  4557. Likewise.
  4558. * testsuite/20_util/time_point/arithmetic/constexpr.cc:
  4559. Likewise.
  4560. * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
  4561. * testsuite/20_util/to_chars/3.cc: Likewise.
  4562. * testsuite/20_util/to_chars/chars_format.cc: Likewise.
  4563. * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
  4564. * testsuite/20_util/to_chars/requirements.cc: Likewise.
  4565. * testsuite/20_util/tuple/78939.cc: Likewise.
  4566. * testsuite/20_util/tuple/apply/1.cc: Likewise.
  4567. * testsuite/20_util/tuple/apply/2.cc: Likewise.
  4568. * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
  4569. * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
  4570. * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
  4571. * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
  4572. * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
  4573. * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
  4574. * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
  4575. Likewise.
  4576. * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
  4577. * testsuite/20_util/void_t/1.cc: Likewise.
  4578. * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
  4579. * testsuite/24_iterators/container_access.cc: Likewise.
  4580. * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
  4581. Likewise.
  4582. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
  4583. Likewise.
  4584. * testsuite/24_iterators/range_access/range_access_cpp17.cc:
  4585. Likewise.
  4586. * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
  4587. Likewise.
  4588. * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
  4589. * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
  4590. Likewise.
  4591. * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
  4592. * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
  4593. Likewise.
  4594. * testsuite/26_numerics/lcm/1.cc: Likewise.
  4595. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  4596. * testsuite/26_numerics/valarray/deduction.cc: Likewise.
  4597. * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
  4598. Likewise.
  4599. * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
  4600. Likewise.
  4601. * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
  4602. Likewise.
  4603. * testsuite/27_io/types/4.cc: Likewise.
  4604. * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
  4605. * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
  4606. * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
  4607. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4608. * testsuite/20_util/function_objects/searchers.cc: Remove
  4609. -std=gnu++17 from dg-options directive.
  4610. * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
  4611. Likewise.
  4612. * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
  4613. Likewise.
  4614. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
  4615. Likewise.
  4616. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
  4617. Likewise.
  4618. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
  4619. Likewise.
  4620. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
  4621. Likewise.
  4622. * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
  4623. Likewise.
  4624. * testsuite/25_algorithms/clamp/1.cc: Likewise.
  4625. * testsuite/25_algorithms/clamp/2.cc: Likewise.
  4626. * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
  4627. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
  4628. Likewise.
  4629. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
  4630. Likewise.
  4631. * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
  4632. * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
  4633. Likewise.
  4634. * testsuite/25_algorithms/sample/1.cc: Likewise.
  4635. * testsuite/25_algorithms/sample/2.cc: Likewise.
  4636. * testsuite/25_algorithms/sample/3.cc: Likewise.
  4637. * testsuite/25_algorithms/sample/81221.cc: Likewise.
  4638. * testsuite/25_algorithms/search/searcher.cc: Likewise.
  4639. * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
  4640. * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
  4641. * testsuite/26_numerics/reduce/1.cc: Likewise.
  4642. * testsuite/26_numerics/reduce/2.cc: Likewise.
  4643. * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
  4644. * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
  4645. * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
  4646. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4647. * testsuite/23_containers/array/cons/deduction.cc: Remove
  4648. -std=gnu++17 from dg-options directive.
  4649. * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
  4650. * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
  4651. Likewise.
  4652. * testsuite/23_containers/array/requirements/constexpr_iter.cc:
  4653. Likewise.
  4654. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
  4655. Likewise.
  4656. * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
  4657. * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
  4658. Likewise.
  4659. * testsuite/23_containers/forward_list/cons/deduction.cc:
  4660. Likewise.
  4661. * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
  4662. Likewise.
  4663. * testsuite/23_containers/list/cons/deduction.cc: Likewise.
  4664. * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
  4665. Likewise.
  4666. * testsuite/23_containers/map/cons/deduction.cc: Likewise.
  4667. * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
  4668. * testsuite/23_containers/map/modifiers/insert/83226.cc:
  4669. Likewise.
  4670. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
  4671. Likewise.
  4672. * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
  4673. * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
  4674. Likewise.
  4675. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
  4676. * testsuite/23_containers/multimap/modifiers/extract.cc:
  4677. Likewise.
  4678. * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
  4679. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
  4680. * testsuite/23_containers/multiset/modifiers/extract.cc:
  4681. Likewise.
  4682. * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
  4683. * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
  4684. * testsuite/23_containers/queue/deduction.cc: Likewise.
  4685. * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
  4686. Likewise.
  4687. * testsuite/23_containers/set/cons/deduction.cc: Likewise.
  4688. * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
  4689. * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
  4690. * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
  4691. * testsuite/23_containers/stack/deduction.cc: Likewise.
  4692. * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
  4693. Likewise.
  4694. * testsuite/23_containers/unordered_map/cons/deduction.cc:
  4695. Likewise.
  4696. * testsuite/23_containers/unordered_map/modifiers/extract.cc:
  4697. Likewise.
  4698. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
  4699. Likewise.
  4700. * testsuite/23_containers/unordered_map/modifiers/merge.cc:
  4701. Likewise.
  4702. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
  4703. Likewise.
  4704. * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
  4705. Likewise.
  4706. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
  4707. Likewise.
  4708. * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
  4709. Likewise.
  4710. * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
  4711. Likewise.
  4712. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
  4713. Likewise.
  4714. * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
  4715. Likewise.
  4716. * testsuite/23_containers/unordered_set/cons/deduction.cc:
  4717. Likewise.
  4718. * testsuite/23_containers/unordered_set/modifiers/extract.cc:
  4719. Likewise.
  4720. * testsuite/23_containers/unordered_set/modifiers/merge.cc:
  4721. Likewise.
  4722. * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
  4723. Likewise.
  4724. * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
  4725. * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
  4726. * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
  4727. Likewise.
  4728. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4729. * testsuite/21_strings/basic_string/79162.cc: Remove
  4730. -std=gnu++17 from dg-options directive.
  4731. * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
  4732. * testsuite/21_strings/basic_string/cons/char/79162.cc:
  4733. Likewise.
  4734. * testsuite/21_strings/basic_string/cons/char/86138.cc:
  4735. Likewise.
  4736. * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
  4737. * testsuite/21_strings/basic_string/cons/char/deduction.cc:
  4738. Likewise.
  4739. * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
  4740. Likewise.
  4741. * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
  4742. * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
  4743. Likewise.
  4744. * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
  4745. Likewise.
  4746. * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
  4747. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  4748. Likewise.
  4749. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
  4750. Likewise.
  4751. * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
  4752. * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
  4753. * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
  4754. * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
  4755. Likewise.
  4756. * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
  4757. Likewise.
  4758. * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
  4759. Likewise.
  4760. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
  4761. Likewise.
  4762. * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
  4763. Likewise.
  4764. * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
  4765. Likewise.
  4766. * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
  4767. Likewise.
  4768. * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
  4769. Likewise.
  4770. * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
  4771. Likewise.
  4772. * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
  4773. Likewise.
  4774. * testsuite/21_strings/basic_string/operations/data/char/2.cc:
  4775. Likewise.
  4776. * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
  4777. Likewise.
  4778. * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
  4779. Likewise.
  4780. * testsuite/21_strings/basic_string/operations/find/char/5.cc:
  4781. Likewise.
  4782. * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
  4783. Likewise.
  4784. * testsuite/21_strings/basic_string/operators/char/5.cc:
  4785. Likewise.
  4786. * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
  4787. Likewise.
  4788. * testsuite/21_strings/basic_string_view/capacity/1.cc:
  4789. Likewise.
  4790. * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
  4791. Likewise.
  4792. * testsuite/21_strings/basic_string_view/cons/char/1.cc:
  4793. Likewise.
  4794. * testsuite/21_strings/basic_string_view/cons/char/2.cc:
  4795. Likewise.
  4796. * testsuite/21_strings/basic_string_view/cons/char/3.cc:
  4797. Likewise.
  4798. * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
  4799. Likewise.
  4800. * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
  4801. Likewise.
  4802. * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
  4803. Likewise.
  4804. * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
  4805. Likewise.
  4806. * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
  4807. Likewise.
  4808. * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
  4809. Likewise.
  4810. * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
  4811. Likewise.
  4812. * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
  4813. Likewise.
  4814. * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
  4815. Likewise.
  4816. * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
  4817. Likewise.
  4818. * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
  4819. Likewise.
  4820. * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
  4821. Likewise.
  4822. * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
  4823. Likewise.
  4824. * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
  4825. Likewise.
  4826. * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
  4827. Likewise.
  4828. * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
  4829. Likewise.
  4830. * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
  4831. Likewise.
  4832. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
  4833. Likewise.
  4834. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
  4835. Likewise.
  4836. * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
  4837. Likewise.
  4838. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
  4839. Likewise.
  4840. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
  4841. Likewise.
  4842. * testsuite/21_strings/basic_string_view/include.cc: Likewise.
  4843. * testsuite/21_strings/basic_string_view/inserters/94051.cc:
  4844. Likewise.
  4845. * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
  4846. Likewise.
  4847. * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
  4848. Likewise.
  4849. * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
  4850. Likewise.
  4851. * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
  4852. Likewise.
  4853. * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
  4854. Likewise.
  4855. * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
  4856. Likewise.
  4857. * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
  4858. Likewise.
  4859. * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
  4860. Likewise.
  4861. * testsuite/21_strings/basic_string_view/literals/types.cc:
  4862. Likewise.
  4863. * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
  4864. Likewise.
  4865. * testsuite/21_strings/basic_string_view/literals/values.cc:
  4866. Likewise.
  4867. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
  4868. Likewise.
  4869. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
  4870. Likewise.
  4871. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
  4872. Likewise.
  4873. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
  4874. Likewise.
  4875. * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
  4876. Likewise.
  4877. * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
  4878. Likewise.
  4879. * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
  4880. Likewise.
  4881. * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
  4882. Likewise.
  4883. * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
  4884. Likewise.
  4885. * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
  4886. Likewise.
  4887. * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
  4888. Likewise.
  4889. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
  4890. Likewise.
  4891. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
  4892. Likewise.
  4893. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
  4894. Likewise.
  4895. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
  4896. Likewise.
  4897. * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
  4898. Likewise.
  4899. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
  4900. Likewise.
  4901. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
  4902. Likewise.
  4903. * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
  4904. Likewise.
  4905. * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
  4906. Likewise.
  4907. * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
  4908. Likewise.
  4909. * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
  4910. Likewise.
  4911. * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
  4912. Likewise.
  4913. * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
  4914. Likewise.
  4915. * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
  4916. Likewise.
  4917. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
  4918. Likewise.
  4919. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
  4920. Likewise.
  4921. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
  4922. Likewise.
  4923. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
  4924. Likewise.
  4925. * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
  4926. Likewise.
  4927. * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
  4928. Likewise.
  4929. * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
  4930. Likewise.
  4931. * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
  4932. Likewise.
  4933. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
  4934. Likewise.
  4935. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
  4936. Likewise.
  4937. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
  4938. Likewise.
  4939. * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
  4940. Likewise.
  4941. * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
  4942. Likewise.
  4943. * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
  4944. Likewise.
  4945. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
  4946. Likewise.
  4947. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
  4948. Likewise.
  4949. * testsuite/21_strings/basic_string_view/operators/char/2.cc:
  4950. Likewise.
  4951. * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
  4952. Likewise.
  4953. * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
  4954. Likewise.
  4955. * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
  4956. Likewise.
  4957. * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
  4958. Likewise.
  4959. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
  4960. Likewise.
  4961. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
  4962. Likewise.
  4963. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
  4964. Likewise.
  4965. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
  4966. Likewise.
  4967. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
  4968. Likewise.
  4969. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
  4970. Likewise.
  4971. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
  4972. Likewise.
  4973. * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
  4974. Likewise.
  4975. * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
  4976. Likewise.
  4977. * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
  4978. * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
  4979. * testsuite/21_strings/char_traits/requirements/char/99181.cc:
  4980. Likewise.
  4981. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
  4982. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  4983. * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
  4984. from dg-options directive.
  4985. * testsuite/20_util/memory_resource/2.cc: Likewise.
  4986. * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
  4987. * testsuite/20_util/monotonic_buffer_resource/93208.cc:
  4988. Likewise.
  4989. * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
  4990. Likewise.
  4991. * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
  4992. Likewise.
  4993. * testsuite/20_util/monotonic_buffer_resource/release.cc:
  4994. Likewise.
  4995. * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
  4996. Likewise.
  4997. * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
  4998. * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
  4999. Likewise.
  5000. * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
  5001. * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
  5002. * testsuite/20_util/synchronized_pool_resource/allocate.cc:
  5003. Likewise.
  5004. * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
  5005. Likewise.
  5006. * testsuite/20_util/synchronized_pool_resource/cons.cc:
  5007. Likewise.
  5008. * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
  5009. Likewise.
  5010. * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
  5011. Likewise.
  5012. * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
  5013. Likewise.
  5014. * testsuite/20_util/synchronized_pool_resource/options.cc:
  5015. Likewise.
  5016. * testsuite/20_util/synchronized_pool_resource/release.cc:
  5017. Likewise.
  5018. * testsuite/20_util/synchronized_pool_resource/release_single.cc:
  5019. Likewise.
  5020. * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
  5021. Likewise.
  5022. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
  5023. Likewise.
  5024. * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
  5025. Likewise.
  5026. * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
  5027. Likewise.
  5028. * testsuite/20_util/unsynchronized_pool_resource/options.cc:
  5029. Likewise.
  5030. * testsuite/20_util/unsynchronized_pool_resource/release.cc:
  5031. Likewise.
  5032. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
  5033. Likewise.
  5034. * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
  5035. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
  5036. Likewise.
  5037. * testsuite/23_containers/forward_list/pmr_typedefs.cc:
  5038. Likewise.
  5039. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
  5040. Likewise.
  5041. * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
  5042. * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
  5043. * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
  5044. * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
  5045. * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
  5046. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
  5047. Likewise.
  5048. * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
  5049. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
  5050. Likewise.
  5051. * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
  5052. * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
  5053. * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
  5054. Likewise.
  5055. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
  5056. Likewise.
  5057. * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
  5058. Likewise.
  5059. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
  5060. Likewise.
  5061. * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
  5062. Likewise.
  5063. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
  5064. Likewise.
  5065. * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
  5066. Likewise.
  5067. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
  5068. Likewise.
  5069. * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
  5070. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
  5071. Likewise.
  5072. * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
  5073. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5074. * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
  5075. dg-options.
  5076. * testsuite/29_atomics/atomic/is_always_lock_free.cc:
  5077. * testsuite/29_atomics/atomic/requirements/typedefs.cc:
  5078. * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
  5079. * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
  5080. * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
  5081. * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
  5082. * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
  5083. * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
  5084. Likewise.
  5085. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
  5086. Likewise.
  5087. * testsuite/30_threads/shared_lock/70766.cc: Likewise.
  5088. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
  5089. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
  5090. Likewise.
  5091. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
  5092. * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
  5093. Likewise.
  5094. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
  5095. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
  5096. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
  5097. * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
  5098. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5099. * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
  5100. dg-options directive.
  5101. * testsuite/20_util/any/assign/2.cc: Likewise.
  5102. * testsuite/20_util/any/assign/emplace.cc: Likewise.
  5103. * testsuite/20_util/any/assign/exception.cc: Likewise.
  5104. * testsuite/20_util/any/assign/self.cc: Likewise.
  5105. * testsuite/20_util/any/cons/1.cc: Likewise.
  5106. * testsuite/20_util/any/cons/2.cc: Likewise.
  5107. * testsuite/20_util/any/cons/90415.cc: Likewise.
  5108. * testsuite/20_util/any/cons/92156.cc: Likewise.
  5109. * testsuite/20_util/any/cons/aligned.cc: Likewise.
  5110. * testsuite/20_util/any/cons/explicit.cc: Likewise.
  5111. * testsuite/20_util/any/cons/in_place.cc: Likewise.
  5112. * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
  5113. * testsuite/20_util/any/make_any.cc: Likewise.
  5114. * testsuite/20_util/any/misc/any_cast.cc: Likewise.
  5115. * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
  5116. * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
  5117. * testsuite/20_util/any/misc/swap.cc: Likewise.
  5118. * testsuite/20_util/any/modifiers/1.cc: Likewise.
  5119. * testsuite/20_util/any/modifiers/83658.cc: Likewise.
  5120. * testsuite/20_util/any/modifiers/92156.cc: Likewise.
  5121. * testsuite/20_util/any/observers/type.cc: Likewise.
  5122. * testsuite/20_util/any/requirements.cc: Likewise.
  5123. * testsuite/20_util/any/typedefs.cc: Likewise.
  5124. * testsuite/20_util/optional/77288.cc: Likewise.
  5125. * testsuite/20_util/optional/84601.cc: Likewise.
  5126. * testsuite/20_util/optional/assignment/1.cc: Likewise.
  5127. * testsuite/20_util/optional/assignment/2.cc: Likewise.
  5128. * testsuite/20_util/optional/assignment/3.cc: Likewise.
  5129. * testsuite/20_util/optional/assignment/4.cc: Likewise.
  5130. * testsuite/20_util/optional/assignment/5.cc: Likewise.
  5131. * testsuite/20_util/optional/assignment/6.cc: Likewise.
  5132. * testsuite/20_util/optional/assignment/7.cc: Likewise.
  5133. * testsuite/20_util/optional/assignment/8.cc: Likewise.
  5134. * testsuite/20_util/optional/assignment/9.cc: Likewise.
  5135. * testsuite/20_util/optional/bad_access.cc: Likewise.
  5136. * testsuite/20_util/optional/cons/77727.cc: Likewise.
  5137. * testsuite/20_util/optional/cons/85642.cc: Likewise.
  5138. * testsuite/20_util/optional/cons/copy.cc: Likewise.
  5139. * testsuite/20_util/optional/cons/deduction.cc: Likewise.
  5140. * testsuite/20_util/optional/cons/default.cc: Likewise.
  5141. * testsuite/20_util/optional/cons/move.cc: Likewise.
  5142. * testsuite/20_util/optional/cons/trivial.cc: Likewise.
  5143. * testsuite/20_util/optional/cons/value.cc: Likewise.
  5144. * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
  5145. * testsuite/20_util/optional/constexpr/cons/default.cc:
  5146. Likewise.
  5147. * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
  5148. * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
  5149. * testsuite/20_util/optional/constexpr/make_optional.cc:
  5150. Likewise.
  5151. * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
  5152. * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
  5153. * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
  5154. * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
  5155. * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
  5156. * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
  5157. * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
  5158. * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
  5159. * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
  5160. * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
  5161. * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
  5162. * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
  5163. * testsuite/20_util/optional/hash.cc: Likewise.
  5164. * testsuite/20_util/optional/in_place.cc: Likewise.
  5165. * testsuite/20_util/optional/make_optional.cc: Likewise.
  5166. * testsuite/20_util/optional/nullopt.cc: Likewise.
  5167. * testsuite/20_util/optional/observers/1.cc: Likewise.
  5168. * testsuite/20_util/optional/observers/2.cc: Likewise.
  5169. * testsuite/20_util/optional/observers/3.cc: Likewise.
  5170. * testsuite/20_util/optional/observers/4.cc: Likewise.
  5171. * testsuite/20_util/optional/observers/5.cc: Likewise.
  5172. * testsuite/20_util/optional/observers/6.cc: Likewise.
  5173. * testsuite/20_util/optional/relops/1.cc: Likewise.
  5174. * testsuite/20_util/optional/relops/2.cc: Likewise.
  5175. * testsuite/20_util/optional/relops/3.cc: Likewise.
  5176. * testsuite/20_util/optional/relops/4.cc: Likewise.
  5177. * testsuite/20_util/optional/relops/5.cc: Likewise.
  5178. * testsuite/20_util/optional/relops/6.cc: Likewise.
  5179. * testsuite/20_util/optional/relops/7.cc: Likewise.
  5180. * testsuite/20_util/optional/requirements.cc: Likewise.
  5181. * testsuite/20_util/optional/swap/1.cc: Likewise.
  5182. * testsuite/20_util/optional/swap/2.cc: Likewise.
  5183. * testsuite/20_util/optional/typedefs.cc: Likewise.
  5184. * testsuite/20_util/variant/80165.cc: Likewise.
  5185. * testsuite/20_util/variant/85183.cc: Likewise.
  5186. * testsuite/20_util/variant/86874.cc: Likewise.
  5187. * testsuite/20_util/variant/87431.cc: Likewise.
  5188. * testsuite/20_util/variant/87619.cc: Likewise.
  5189. * testsuite/20_util/variant/91807.cc: Likewise.
  5190. * testsuite/20_util/variant/any.cc: Likewise.
  5191. * testsuite/20_util/variant/compile.cc: Likewise.
  5192. * testsuite/20_util/variant/deduction.cc: Likewise.
  5193. * testsuite/20_util/variant/exception_safety.cc: Likewise.
  5194. * testsuite/20_util/variant/hash.cc: Likewise.
  5195. * testsuite/20_util/variant/index_type.cc: Likewise.
  5196. * testsuite/20_util/variant/relops/89851.cc: Likewise.
  5197. * testsuite/20_util/variant/relops/90008.cc: Likewise.
  5198. * testsuite/20_util/variant/run.cc: Likewise.
  5199. * testsuite/20_util/variant/visit.cc: Likewise.
  5200. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5201. * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
  5202. -std=gnu++17 from dg-options directive.
  5203. * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
  5204. * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
  5205. * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
  5206. * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
  5207. * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
  5208. * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
  5209. * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
  5210. * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
  5211. Likewise.
  5212. * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
  5213. * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
  5214. * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
  5215. * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
  5216. * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
  5217. * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
  5218. Likewise.
  5219. * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
  5220. * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
  5221. Likewise.
  5222. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  5223. Likewise.
  5224. * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
  5225. * testsuite/27_io/filesystem/operations/all.cc: Likewise.
  5226. * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
  5227. * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
  5228. * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
  5229. * testsuite/27_io/filesystem/operations/create_directories.cc:
  5230. Likewise.
  5231. * testsuite/27_io/filesystem/operations/create_directory.cc:
  5232. Likewise.
  5233. * testsuite/27_io/filesystem/operations/create_symlink.cc:
  5234. Likewise.
  5235. * testsuite/27_io/filesystem/operations/current_path.cc:
  5236. Likewise.
  5237. * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
  5238. * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
  5239. * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
  5240. * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
  5241. * testsuite/27_io/filesystem/operations/last_write_time.cc:
  5242. Likewise.
  5243. * testsuite/27_io/filesystem/operations/permissions.cc:
  5244. Likewise.
  5245. * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
  5246. * testsuite/27_io/filesystem/operations/read_symlink.cc:
  5247. Likewise.
  5248. * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
  5249. * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
  5250. * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
  5251. * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
  5252. * testsuite/27_io/filesystem/operations/resize_file.cc:
  5253. Likewise.
  5254. * testsuite/27_io/filesystem/operations/space.cc: Likewise.
  5255. * testsuite/27_io/filesystem/operations/status.cc: Likewise.
  5256. * testsuite/27_io/filesystem/operations/symlink_status.cc:
  5257. Likewise.
  5258. * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
  5259. Likewise.
  5260. * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
  5261. Likewise.
  5262. * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
  5263. * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
  5264. * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
  5265. * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
  5266. * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
  5267. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
  5268. * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
  5269. * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
  5270. * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
  5271. * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
  5272. * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
  5273. * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
  5274. * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
  5275. * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
  5276. * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
  5277. * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
  5278. * testsuite/27_io/filesystem/path/construct/default.cc:
  5279. Likewise.
  5280. * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
  5281. * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
  5282. * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
  5283. * testsuite/27_io/filesystem/path/construct/string_view.cc:
  5284. Likewise.
  5285. * testsuite/27_io/filesystem/path/decompose/extension.cc:
  5286. Likewise.
  5287. * testsuite/27_io/filesystem/path/decompose/filename.cc:
  5288. Likewise.
  5289. * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
  5290. Likewise.
  5291. * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
  5292. Likewise.
  5293. * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
  5294. Likewise.
  5295. * testsuite/27_io/filesystem/path/decompose/root_name.cc:
  5296. Likewise.
  5297. * testsuite/27_io/filesystem/path/decompose/root_path.cc:
  5298. Likewise.
  5299. * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
  5300. * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
  5301. Likewise.
  5302. * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
  5303. * testsuite/27_io/filesystem/path/generation/normal.cc:
  5304. Likewise.
  5305. * testsuite/27_io/filesystem/path/generation/normal2.cc:
  5306. Likewise.
  5307. * testsuite/27_io/filesystem/path/generation/proximate.cc:
  5308. Likewise.
  5309. * testsuite/27_io/filesystem/path/generation/relative.cc:
  5310. Likewise.
  5311. * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
  5312. * testsuite/27_io/filesystem/path/generic/generic_string.cc:
  5313. Likewise.
  5314. * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
  5315. * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
  5316. * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
  5317. * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
  5318. * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
  5319. * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
  5320. * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
  5321. Likewise.
  5322. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
  5323. Likewise.
  5324. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
  5325. Likewise.
  5326. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
  5327. Likewise.
  5328. * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
  5329. * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
  5330. * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
  5331. Likewise.
  5332. * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
  5333. * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
  5334. * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
  5335. * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
  5336. Likewise.
  5337. * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
  5338. * testsuite/27_io/filesystem/path/query/empty_neg.cc:
  5339. * testsuite/27_io/filesystem/path/query/has_extension.cc:
  5340. Likewise.
  5341. * testsuite/27_io/filesystem/path/query/has_filename.cc:
  5342. Likewise.
  5343. * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
  5344. Likewise.
  5345. * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
  5346. Likewise.
  5347. * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
  5348. Likewise.
  5349. * testsuite/27_io/filesystem/path/query/has_root_name.cc:
  5350. Likewise.
  5351. * testsuite/27_io/filesystem/path/query/has_root_path.cc:
  5352. Likewise.
  5353. * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
  5354. * testsuite/27_io/filesystem/path/query/is_absolute.cc:
  5355. Likewise.
  5356. * testsuite/27_io/filesystem/path/query/is_relative.cc:
  5357. Likewise.
  5358. * testsuite/experimental/filesystem/path/construct/string_view.cc:
  5359. Likewise.
  5360. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5361. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
  5362. Remove -std=gnu++17 from dg-options.
  5363. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
  5364. Likewise.
  5365. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
  5366. Likewise.
  5367. * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
  5368. Likewise.
  5369. * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
  5370. * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
  5371. Likewise.
  5372. * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
  5373. Likewise.
  5374. * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
  5375. Likewise.
  5376. * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
  5377. Likewise.
  5378. * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
  5379. Likewise.
  5380. * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
  5381. Likewise.
  5382. * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
  5383. Likewise.
  5384. * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
  5385. Likewise.
  5386. * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
  5387. Likewise.
  5388. * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
  5389. Likewise.
  5390. * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
  5391. Likewise.
  5392. * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
  5393. Likewise.
  5394. * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
  5395. Likewise.
  5396. * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
  5397. Likewise.
  5398. * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
  5399. Likewise.
  5400. * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
  5401. Likewise.
  5402. * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
  5403. Likewise.
  5404. * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
  5405. Likewise.
  5406. * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
  5407. Likewise.
  5408. * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
  5409. Likewise.
  5410. * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
  5411. Likewise.
  5412. * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
  5413. Likewise.
  5414. * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
  5415. Likewise.
  5416. * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
  5417. Likewise.
  5418. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
  5419. Likewise.
  5420. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
  5421. Likewise.
  5422. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
  5423. Likewise.
  5424. * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
  5425. Likewise.
  5426. * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
  5427. Likewise.
  5428. * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
  5429. Likewise.
  5430. * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
  5431. Likewise.
  5432. * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
  5433. Likewise.
  5434. * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
  5435. Likewise.
  5436. * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
  5437. Likewise.
  5438. * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
  5439. Likewise.
  5440. * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
  5441. * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
  5442. Likewise.
  5443. * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
  5444. Likewise.
  5445. * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
  5446. Likewise.
  5447. * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
  5448. Likewise.
  5449. * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
  5450. Likewise.
  5451. * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
  5452. * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
  5453. * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
  5454. * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
  5455. * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
  5456. * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
  5457. * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
  5458. * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
  5459. Likewise.
  5460. * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
  5461. * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
  5462. * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
  5463. Likewise.
  5464. * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
  5465. Likewise.
  5466. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5467. * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
  5468. for additional errors in C++20.
  5469. * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
  5470. Likewise.
  5471. * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
  5472. * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
  5473. 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
  5474. * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
  5475. clash with std::any.
  5476. 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
  5477. * include/std/istream (__rvalue_stream_extraction_t): Replace
  5478. use of __rval_streamable.
  5479. * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
  5480. (__rval_streamable): Remove.
  5481. (_Require_derived_from_ios_base, __derived_from_ios_base): New
  5482. helper for checking constraints.
  5483. * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
  5484. reference to the wrong subclause of the standard.
  5485. * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
  5486. Likewise.
  5487. * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
  5488. Likewise.
  5489. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
  5490. Likewise.
  5491. * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
  5492. New test.
  5493. * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
  5494. errors.
  5495. 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
  5496. * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
  5497. Improve static_assert messages.
  5498. * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
  5499. * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
  5500. 2021-05-06 Patrick Palka <ppalka@redhat.com>
  5501. * include/std/ranges (filter_view::_Iterator::base): Make the
  5502. const& overload unconstrained and return a const reference as
  5503. per LWG 3533. Make unconditionally noexcept.
  5504. (transform_view::_Iterator::base): Likewise.
  5505. (elements_view::_Iterator::base): Likewise.
  5506. 2021-05-06 Patrick Palka <ppalka@redhat.com>
  5507. * include/bits/stl_iterator.h (move_iterator::base): Make the
  5508. const& overload unconstrained and return a const reference as
  5509. per LWG 3391. Make unconditionally noexcept.
  5510. (counted_iterator::base): Likewise.
  5511. * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
  5512. * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
  5513. has_member_base concept to decay-copy the result of base().
  5514. 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
  5515. * include/std/type_traits (remove_cvref_t): Define in terms of
  5516. remove_cvref.
  5517. * testsuite/20_util/remove_cvref/value.cc: Check alias.
  5518. 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
  5519. Revert:
  5520. 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
  5521. * include/std/charconv (__from_chars_alnum): Pass unsigned
  5522. char to std::isdigit.
  5523. 2021-05-05 Patrick Palka <ppalka@redhat.com>
  5524. * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
  5525. Remove constraints on this partial specialization.
  5526. * include/std/ranges (enable_borrowed_range<iota_view>):
  5527. Likewise.
  5528. 2021-05-05 Patrick Palka <ppalka@redhat.com>
  5529. * include/std/ranges (transform_view::_Iterator::iter_swap):
  5530. Remove as per LWG 3520.
  5531. (join_view::_Iterator::iter_swap): Add indirectly_swappable
  5532. constraint as per LWG 3517.
  5533. 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
  5534. * testsuite/20_util/function_objects/invoke/3.cc: Check feature
  5535. test macro.
  5536. * testsuite/20_util/function_objects/invoke/version.cc: New test.
  5537. 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
  5538. * include/std/charconv (__from_chars_alnum): Pass unsigned
  5539. char to std::isdigit.
  5540. 2021-05-05 Corentin Gay <gay@adacore.com>
  5541. * acinclude.m4: Add VxWorks-specific case for the
  5542. configuration of ctypes.
  5543. * configure: Regenerate.
  5544. * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
  5545. version.
  5546. * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
  5547. * config/os/vxworks/ctype_configure_char.cc: Likewise.
  5548. * config/os/vxworks/ctype_inline.h: Likewise.
  5549. * testsuite/28_regex/traits/char/isctype.cc: Defines
  5550. NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
  5551. * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
  5552. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5553. * include/std/future (promise::set_value): Check for existence
  5554. of shared state before dereferncing it.
  5555. (promise::set_exception, promise::set_value_at_thread_exit)
  5556. (promise::set_exception_at_thread_exit): Likewise.
  5557. (promise<R&>::set_value, promise<R&>::set_exception)
  5558. (promise<R&>::set_value_at_thread_exit)
  5559. (promise<R&>::set_exception_at_thread_exit): Likewise.
  5560. (promise<void>::set_value, promise<void>::set_exception)
  5561. (promise<void>::set_value_at_thread_exit)
  5562. (promise<void>::set_exception_at_thread_exit): Likewise.
  5563. * testsuite/30_threads/promise/members/at_thread_exit2.cc:
  5564. Remove unused variable.
  5565. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5566. * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
  5567. Do not do arithmetic on null pointer.
  5568. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5569. * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
  5570. (find_key_pointer(key_const_reference, false_type))
  5571. (find_key_pointer(key_const_reference, true_type)): Do not
  5572. dereference null pointer.
  5573. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5574. * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
  5575. overflow.
  5576. * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
  5577. non-zero value to null pointer.
  5578. * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
  5579. Use past-the-end iterator for result.
  5580. * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
  5581. * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
  5582. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5583. PR libstdc++/100384
  5584. * include/std/variant (__get_t): New alias template yielding the
  5585. return type of std::get<N> on a variant.
  5586. (__visit_result_t): New alias template yielding the result of
  5587. std::visit.
  5588. (__same_types): Move into namespace __detail::__variant.
  5589. (__check_visitor_results): Likewise. Use __invoke_result_t and
  5590. __get_t.
  5591. (__check_visitor_result): Remove.
  5592. (visit): Use __visit_result_t for return type.
  5593. * testsuite/20_util/variant/100384.cc: New test.
  5594. 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
  5595. * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
  5596. checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
  5597. * config.h.in: Regenerate.
  5598. * configure: Regenerate.
  5599. * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
  5600. * include/bits/random.h (_Select_uint_least_t<s, 1>):
  5601. Use __SIZEOF_INT128__ to decide whether to use __int128.
  5602. * include/std/charconv (__to_chars_unsigned_type): Likewise.
  5603. 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
  5604. * doc/xml/manual/ctype.xml: Move unix.org reference to https.
  5605. * doc/html/manual/facets.html: Regenerate.
  5606. 2021-04-30 Patrick Palka <ppalka@redhat.com>
  5607. * include/std/ranges (__detail::__non_propating_cache): Define
  5608. as per P2328.
  5609. (join_view): Remove constraints on the value and reference types
  5610. of the wrapped iterator type as per P2328.
  5611. (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
  5612. (join_view::_Iterator::operator++): Likewise.
  5613. (join_view::_M_inner): Use __non_propating_cache as per P2328.
  5614. Remove now-redundant use of __maybe_present_t.
  5615. * testsuite/std/ranges/adaptors/join.cc: Include <array>.
  5616. (test10): New test.
  5617. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5618. * include/bits/basic_string.h (__cpp_lib_constexpr_string):
  5619. Only define for C++17 and later.
  5620. * include/std/version (__cpp_lib_semaphore): Fix condition
  5621. to match the one in <semaphore>.
  5622. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5623. * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
  5624. * config.h.in: Regenerate.
  5625. * configure: Regenerate.
  5626. * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
  5627. * include/bits/postypes.h: Remove include of <stdint.h> and
  5628. definition/undefinition of the __STDC_LIMIT_MACROS and
  5629. __STDC_CONSTANT_MACROS macros.
  5630. (streamoff): Use __INT64_TYPE__ if defined.
  5631. 2021-04-30 Patrick Palka <ppalka@redhat.com>
  5632. * include/std/ranges (split_view::_InnerIter::operator++):
  5633. Depend on _Base instead of _Vp directly, as per LWG 3532.
  5634. 2021-04-30 Patrick Palka <ppalka@redhat.com>
  5635. * include/bits/ranges_util.h (subrange::subrange): Avoid
  5636. list-initialization in delegating constructor.
  5637. * include/std/ranges (single_view): Replace implicit guide
  5638. with explicit deduction guide that decays its argument.
  5639. (_Single::operator()): Avoid CTAD when constructing the
  5640. single_view object.
  5641. (_Iota::operator()): Avoid list-initialization.
  5642. (__detail::__can_filter_view, _Filter::operator()): Likewise.
  5643. (__detail::__can_transform_view, _Transform::operator()): Likewise.
  5644. (take_view::begin): Likewise.
  5645. (__detail::__can_take_view, _Take::operator()): Likewise.
  5646. (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
  5647. (__detail::__can_drop_view, _Drop::operator()): Likewise.
  5648. (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
  5649. (split_view::split_view): Use views::single when initializing
  5650. _M_pattern.
  5651. (__detail::__can_split_view, _Split::operator()): Avoid
  5652. list-initialization.
  5653. (_Counted::operator()): Likewise.
  5654. * testsuite/std/ranges/p2367.cc: New test.
  5655. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5656. PR libstdc++/60497
  5657. * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
  5658. std::addressof.
  5659. * include/bits/basic_string.tcc (basic_string::swap)
  5660. (basic_string::assign): Likewise.
  5661. * include/bits/deque.tcc (deque::operator=(const deque&)):
  5662. Likewise.
  5663. * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
  5664. Likewise.
  5665. * include/bits/vector.tcc (vector::operator=(const vector&)):
  5666. Likewise.
  5667. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5668. * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
  5669. per LWG 1203.
  5670. * include/std/ostream (operator<<(Ostream&&, const x&)):
  5671. Likewise.
  5672. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
  5673. Adjust dg-error pattern.
  5674. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
  5675. Likewise.
  5676. * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
  5677. is_extractable trait to replace std::__is_extractable. Make it
  5678. work with rvalue streams as well as lvalues, to replace f() and
  5679. g() helper functions.
  5680. * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
  5681. Likewise.
  5682. * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
  5683. Define is_insertable trait to replace std::__is_insertable. Make
  5684. it work with rvalue streams as well as lvalues, to replace f()
  5685. and g() helper functions.
  5686. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
  5687. Likewise.
  5688. * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
  5689. errors from new constraints.
  5690. * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
  5691. which are no longer expected to compile.
  5692. * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
  5693. Verify LWG 1203 changes.
  5694. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5695. PR libstdc++/100285
  5696. * include/experimental/socket (__basic_socket_impl::set_option)
  5697. (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
  5698. Just set error code.
  5699. * testsuite/experimental/net/socket/socket_base.cc: CHeck
  5700. for <sys/socket.h> not <socket.h>.
  5701. 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
  5702. PR libstdc++/100180
  5703. PR libstdc++/100286
  5704. PR libstdc++/100351
  5705. * testsuite/experimental/net/internet/address/v4/comparisons.cc:
  5706. Use new effective-target keyword.
  5707. * testsuite/experimental/net/internet/address/v4/cons.cc:
  5708. Likewise.
  5709. * testsuite/experimental/net/internet/address/v4/creation.cc:
  5710. Likewise.
  5711. * testsuite/experimental/net/internet/address/v4/members.cc:
  5712. Likewise.
  5713. * testsuite/experimental/net/internet/address/v6/members.cc:
  5714. Likewise.
  5715. * testsuite/experimental/net/internet/resolver/base.cc:
  5716. Likewise.
  5717. * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
  5718. Likewise.
  5719. * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
  5720. Likewise.
  5721. * testsuite/experimental/net/internet/socket/opt.cc:
  5722. Likewise.
  5723. * testsuite/experimental/net/internet/tcp.cc:
  5724. Likewise.
  5725. * testsuite/experimental/net/internet/udp.cc:
  5726. Likewise.
  5727. * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
  5728. New proc to check net_ts_ip et.
  5729. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5730. PR libstdc++/97930
  5731. * testsuite/20_util/pair/requirements/structural.cc: New test.
  5732. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5733. * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
  5734. new definitions for constructors and assignment operators using
  5735. concepts for constraints.
  5736. * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
  5737. later.
  5738. * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
  5739. expected error messages to also match C++20 errors.
  5740. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5741. PR libstdc++/99957
  5742. * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
  5743. Combine and replace with ...
  5744. (_PCC::_DeprConsPair): New SFINAE helper function.
  5745. (pair): Merge preprocessor blocks so that all C++03 members
  5746. are defined together at the end.
  5747. (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
  5748. Replace _T1 and _T2 parameters with __null_ptr_constant and
  5749. adjust constraints.
  5750. * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
  5751. * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
  5752. * testsuite/20_util/pair/cons/99957.cc: New test.
  5753. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5754. * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
  5755. * include/std/version (__cpp_lib_constexpr_string): Define.
  5756. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
  5757. Check for __cpp_lib_constexpr_string.
  5758. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
  5759. Likewise.
  5760. * testsuite/21_strings/char_traits/requirements/version.cc: New test.
  5761. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5762. * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
  5763. dealing with errors. Use '@' to prevent shell command being
  5764. echoed.
  5765. * doc/Makefile.in: Regenerate.
  5766. 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
  5767. PR libstdc++/100298
  5768. * include/bits/std_thread.h (thread::hardware_concurrency): Add
  5769. missing noexcept to inline definition for non-gthreads targets.
  5770. 2021-04-28 Patrick Palka <ppalka@redhat.com>
  5771. PR libstdc++/100187
  5772. PR libstdc++/100237
  5773. PR libstdc++/100249
  5774. PR libstdc++/100287
  5775. * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
  5776. the __value_comp lambda an explicit bool return type.
  5777. (__is_permutation_fn::operator()): Give the __proj_scan local
  5778. variable auto&& return type. Give the __comp_scan lambda an
  5779. explicit bool return type.
  5780. (__remove_fn::operator()): Give the __pred lambda an explicit
  5781. bool return type.
  5782. (__partition_fn::operator()): Don't std::move __first twice
  5783. when returning an empty subrange.
  5784. (__min_fn::operator()): Don't std::move __comp.
  5785. (__max_fn::operator()): Likewise.
  5786. (__minmax_fn::operator()): Likewise.
  5787. 2021-04-27 Patrick Palka <ppalka@redhat.com>
  5788. PR libstdc++/100290
  5789. * include/std/ranges (join_view::_Iterator::operator++): Correct
  5790. the return type of the lambda to avoid returning a copy of
  5791. _M_parent->_M_inner.
  5792. * testsuite/std/ranges/adaptors/join.cc (test10): New test.
  5793. 2021-04-27 Jakub Jelinek <jakub@redhat.com>
  5794. Revert:
  5795. 2021-04-22 Jakub Jelinek <jakub@redhat.com>
  5796. PR target/100182
  5797. * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
  5798. ia32.
  5799. * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
  5800. ia32.
  5801. 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
  5802. * include/experimental/internet (address_v6::bytes_type): Adjust
  5803. formatting.
  5804. (basic_endpoint): Define _M_is_v6() to put all checks for
  5805. AF_INET6 in one place.
  5806. (basic_endpoint::resize): Simplify.
  5807. (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
  5808. (operator!=(const tcp&, const tcp&)): Likewise.
  5809. (operator==(const udp&, const udp&)): Likewise.
  5810. (operator!=(const udp&, const udp&)): Likewise.
  5811. * testsuite/experimental/net/internet/tcp.cc: New test.
  5812. * testsuite/experimental/net/internet/udp.cc: New test.
  5813. 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
  5814. PR libstdc++/100286
  5815. * include/experimental/internet (resolver_errc, resolver_category())
  5816. (make_error_code, make_error_condition): Define unconditionally,
  5817. only make enumerators and use of gai_strerror depend on the
  5818. availability of <netdb.h>.
  5819. (address_v4::to_string): Use correct constant for string length.
  5820. (address_v4::to_string, address_v6::to_string): Define
  5821. unconditionally, throw if unsupported.
  5822. (make_address_v4, make_address_v6): Define unconditionally.
  5823. Return an error if unsupported.
  5824. (tcp, udp, v6_only, unicast::hops, multicast::*): Define
  5825. conditionally,
  5826. * testsuite/experimental/net/internet/socket/opt.cc: Check for
  5827. <netinet/in.h> and <netinet/tcp.h> before using types from
  5828. namespace net::ip.
  5829. 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
  5830. PR libstdc++/100285
  5831. * include/experimental/internet (resolver_base::flags):
  5832. Define overloaded operators as hidden friends.
  5833. * include/experimental/socket (socket_base::message_flags):
  5834. Likewise.
  5835. 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
  5836. * include/experimental/internet (tcp::no_delay, v6_only)
  5837. (unicast::hops, multicast::hops, multicast::enable_loopback):
  5838. Change access of base class and static data members. Add
  5839. using-declaration for __socket_crtp::operator=(_Tp).
  5840. (multicast::__mcastopt): New type.
  5841. (multicast::join_group, multicast::leave_group): Derive from
  5842. __mcastopt for common implementation.
  5843. * include/experimental/socket: Add comment.
  5844. * testsuite/experimental/net/internet/socket/opt.cc: New test.
  5845. * testsuite/experimental/net/socket/socket_base.cc: Check for
  5846. protected constructor/destructor of socket_base. Check for
  5847. explicit constructors of socket option classes.
  5848. 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
  5849. * include/experimental/bits/net.h (__socket_base): Add
  5850. bool template parameter to allow BooleanSocketOption and
  5851. IntegerSocketOption to have different __socket_base<int>
  5852. base classes.
  5853. (__socket_base<bool>): Adjust base class.
  5854. (__socket_base<int>): Add partial specialization.
  5855. (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
  5856. * include/experimental/socket (socket_base::broadcast)
  5857. (socket_base::debug, socket_base::do_not_route)
  5858. (socket_base::keep_alive, socket_base::linger)
  5859. (socket_base::out_of_band_inline)
  5860. (socket_base::receive_buffer_size)
  5861. (socket_base::receive_low_watermark)
  5862. (socket_base::reuse_address, socket_base::send_buffer_size)
  5863. (socket_base::send_low_watermark): Add using-declaration for
  5864. __socket_crtp::operator=(_Tp).
  5865. * testsuite/experimental/net/socket/socket_base.cc: Check
  5866. properties of socket option types.
  5867. 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
  5868. * include/experimental/internet (resolver_base::flags): Remove
  5869. enumerators. Initialize constants directly with desired values.
  5870. Make all operators constexpr and noexcept.
  5871. * testsuite/experimental/net/internet/resolver/base.cc: Use
  5872. __gnu_test::test_bitmask_values for bitmask type. Check
  5873. construction and destruction is protected.
  5874. 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
  5875. * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
  5876. 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
  5877. PR libstdc++/100259
  5878. * include/experimental/internet (net::ip::make_error_code)
  5879. (net::ip::make_error_condition, net::ip::make_network_v4)
  5880. (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
  5881. 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
  5882. * testsuite/lib/dg-options.exp (atomic_link_flags): New.
  5883. (add_options_for_libatomic): Use atomic_link_flags.
  5884. 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
  5885. PR libstdc++/100180
  5886. * include/experimental/io_context (io_context): Define
  5887. dummy_pollfd type so that most member functions still compile
  5888. without <poll.h> and struct pollfd.
  5889. 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
  5890. * include/experimental/io_context (io_context::async_wait): Add
  5891. comment.
  5892. * include/experimental/socket (basic_socket::async_connect):
  5893. Cast wait_type constant to int.
  5894. (basic_datagram_socket::async_receive): Likewise.
  5895. (basic_datagram_socket::async_receive_from): Likewise.
  5896. (basic_datagram_socket::async_send): Likewise.
  5897. (basic_datagram_socket::async_send_to): Likewise.
  5898. (basic_stream_socket::async_receive): Likewise.
  5899. (basic_stream_socket::async_send): Likewise. Use io_context
  5900. parameter directly, instead of via an executor.
  5901. (basic_socket_acceptor::async_accept): Likewise.
  5902. 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
  5903. * include/experimental/socket (socket_base::shutdown_type):
  5904. (socket_base::wait_type, socket_base::message_flags):
  5905. Remove enumerators. Initialize constants directly with desired
  5906. values.
  5907. (socket_base::message_flags): Make all operators constexpr and
  5908. noexcept.
  5909. * testsuite/util/testsuite_common_types.h (test_bitmask_values):
  5910. New test utility.
  5911. * testsuite/experimental/net/socket/socket_base.cc: New test.
  5912. 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
  5913. * config/os/aix/atomicity.h: Delete.
  5914. 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
  5915. * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
  5916. Handle system_clock as well as steady_clock.
  5917. * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
  5918. * testsuite/30_threads/semaphore/try_acquire_until.cc:
  5919. Re-enable.
  5920. 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
  5921. * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
  5922. options for libatomic.
  5923. 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
  5924. * config/os/gnu-linux/os_defines.h: Fix type in comment.
  5925. 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
  5926. PR libstdc++/99006
  5927. * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
  5928. is not an array type.
  5929. * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
  5930. * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
  5931. 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
  5932. * include/bits/atomic_wait.h: Always notify waiters in the
  5933. case of 'bare' address notification.
  5934. 2021-04-22 Jakub Jelinek <jakub@redhat.com>
  5935. PR target/100182
  5936. * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
  5937. ia32.
  5938. * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
  5939. ia32.
  5940. 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
  5941. PR libstdc++/100179
  5942. * include/bits/semaphore_base.h: Remove #error.
  5943. * include/std/semaphore: Do not define anything unless one of
  5944. the implementations is available.
  5945. 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
  5946. * include/bits/semaphore_base.h: Always reload __old in
  5947. __atomic_semaphore::_S_do_try_acquire().
  5948. * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
  5949. re-enable testcase.
  5950. 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
  5951. Jonathan Wakely <jwakely@redhat.com>
  5952. PR libstdc++/99453
  5953. * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
  5954. * python/Makefile.in: Regenerate.
  5955. 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
  5956. * include/bits/semaphore_base.h: Add missing _M_try_acquire()
  5957. member to __platform_wait.
  5958. 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
  5959. * include/std/latch: Replace tab characters in license text.
  5960. * include/std/semaphore: Likewise.
  5961. 2021-04-21 Jakub Jelinek <jakub@redhat.com>
  5962. PR libstdc++/100164
  5963. * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
  5964. rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
  5965. * configure: Regenerated.
  5966. * config.h.in: Regenerated.
  5967. 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
  5968. * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
  5969. test for targets not using futexes for semaphores.
  5970. * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
  5971. * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
  5972. Disable for all targets.
  5973. 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
  5974. * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
  5975. * include/Makefile.in: Regenerate.
  5976. * include/bits/this_thread_sleep.h: New file.
  5977. * include/bits/atomic_base.h: Adjust all calls
  5978. to __atomic_wait/__atomic_notify for new call signatures.
  5979. * include/bits/atomic_timed_wait.h: Extensive rewrite.
  5980. * include/bits/atomic_wait.h: Likewise.
  5981. * include/bits/semaphore_base.h: Adjust all calls
  5982. to __atomic_wait/__atomic_notify for new call signatures.
  5983. * include/std/atomic: Likewise.
  5984. * include/std/barrier: Likewise.
  5985. * include/std/latch: Likewise.
  5986. * include/std/semaphore: Likewise.
  5987. * include/std/thread (this_thread::sleep_for)
  5988. (this_thread::sleep_until): Move to new header.
  5989. * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
  5990. test.
  5991. * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
  5992. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  5993. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  5994. * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
  5995. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
  5996. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
  5997. 2021-04-20 Patrick Palka <ppalka@redhat.com>
  5998. PR libstdc++/95983
  5999. * include/bits/stl_iterator.h (__detail::__move_iter_cat):
  6000. Define.
  6001. (move_iterator): Derive from the above in C++20 in order to
  6002. conditionally define iterator_category as per P2259.
  6003. (move_iterator::__base_cat): No longer used, so remove.
  6004. (move_iterator::iterator_category): Remove in C++20.
  6005. (__detail::__common_iter_use_postfix_proxy): Define.
  6006. (common_iterator::_Proxy): Rename to ...
  6007. (common_iterator:__arrow_proxy): ... this.
  6008. (common_iterator::__postfix_proxy): Define as per P2259.
  6009. (common_iterator::operator->): Adjust.
  6010. (common_iterator::operator++): Adjust as per P2259.
  6011. (iterator_traits<common_iterator>::_S_iter_cat): Define.
  6012. (iterator_traits<common_iterator>::iterator_category): Change as
  6013. per P2259.
  6014. (__detail::__counted_iter_value_type): Define.
  6015. (__detail::__counted_iter_concept): Define.
  6016. (__detail::__counted_iter_cat): Define.
  6017. (counted_iterator): Derive from the above three classes in order
  6018. to conditionally define value_type, iterator_concept and
  6019. iterator category respectively as per P2259.
  6020. (counted_iterator::operator->): Define as per P2259.
  6021. (incrementable_traits<counted_iterator>): Remove as per P2259.
  6022. (iterator_traits<counted_iterator>): Adjust as per P2259.
  6023. * include/std/ranges (__detail::__iota_view_iter_cat): Define.
  6024. (iota_view::_Iterator): Derive from the above in order to
  6025. conditionally define iterator_category as per P2259.
  6026. (iota_view::_S_iter_cat): Rename to ...
  6027. (iota_view::_S_iter_concept): ... this.
  6028. (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
  6029. (iota_view::iterator_category): Remove.
  6030. (__detail::__filter_view_iter_cat): Define.
  6031. (filter_view::_Iterator): Derive from the above in order to
  6032. conditionally define iterator_category as per P2259.
  6033. (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
  6034. (filter_view::_Iterator::iterator_category): Remove.
  6035. (transform_view::_Base): Define.
  6036. (transform_view::__iter_cat): Define.
  6037. (transform_view::_Iterator): Derive from the above in order to
  6038. conditionally define iterator_category as per P2259.
  6039. (transform_view::_Iterator::_Base): Just alias
  6040. transform_view::_Base.
  6041. (transform_view::_Iterator::_S_iter_cat): Move to struct
  6042. transform_view::__iter_cat.
  6043. (transform_view::_Iterator::iterator_category): Remove.
  6044. (transform_view::_Sentinel::_Base): Just alias
  6045. transform_view::_Base.
  6046. (join_view::_Base): Define.
  6047. (join_view::_Outer_iter): Define.
  6048. (join_view::_Inner_iter): Define.
  6049. (join_view::_S_ref_is_glvalue): Define.
  6050. (join_view::__iter_cat): Define.
  6051. (join_view::_Iterator): Derive from it in order to conditionally
  6052. define iterator_category as per P2259.
  6053. (join_view::_Iterator::_Base): Just alias join_view::_Base.
  6054. (join_view::_Iterator::_S_ref_is_glvalue): Just alias
  6055. join_view::_S_ref_is_glvalue.
  6056. (join_view::_Iterator::_S_iter_cat): Move to struct
  6057. transform_view::__iter_cat.
  6058. (join_view::_Iterator::_Outer_iter): Just alias
  6059. join_view::_Outer_iter.
  6060. (join_view::_Iterator::_Inner_iter): Just alias
  6061. join_view::_Inner_iter.
  6062. (join_view::_Iterator::iterator_category): Remove.
  6063. (join_view::_Sentinel::_Base): Just alias join_view::_Base.
  6064. (__detail::__split_view_outer_iter_cat): Define.
  6065. (__detail::__split_view_inner_iter_cat): Define.
  6066. (split_view::_Base): Define.
  6067. (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
  6068. in order to conditionally define iterator_category as per P2259.
  6069. (split_view::_Outer_iter::iterator_category): Remove.
  6070. (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
  6071. in order to conditionally define iterator_category as per P2259.
  6072. (split_view::_Inner_iter::_S_iter_cat): Move to
  6073. __split_view_inner_iter_cat.
  6074. (split_view::_Inner_iter::iterator_category): Remove.
  6075. (elements_view::_Base): Define.
  6076. (elements_view::__iter_cat): Define.
  6077. (elements_view::_Iterator): Derive from the above in order to
  6078. conditionall define iterator_category as per P2259.
  6079. (elements_view::_Iterator::_Base): Just alias
  6080. elements_view::_Base.
  6081. (elements_view::_Iterator::_S_iter_concept)
  6082. (elements_view::_Iterator::iterator_concept): Define as per
  6083. P2259.
  6084. (elements_view::_Iterator::iterator_category): Remove.
  6085. (elements_view::_Sentinel::_Base): Just alias
  6086. elements_view::_Base.
  6087. * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
  6088. Adjust constraints on iterator_traits<counted_iterator>.
  6089. * testsuite/std/ranges/p2259.cc: New test.
  6090. 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
  6091. PR libstdc++/100146
  6092. * include/std/charconv (__cpp_lib_to_chars): Define
  6093. conditionally.
  6094. * include/std/version (__cpp_lib_to_chars): Likewise..
  6095. * testsuite/20_util/from_chars/4.cc: Only check feature test
  6096. macro, not _GLIBCXX_HAVE_USELOCALE.
  6097. * testsuite/20_util/from_chars/5.cc: Likewise.
  6098. * testsuite/20_util/from_chars/6.cc: Likewise.
  6099. * testsuite/20_util/to_chars/long_double.cc: Likewise.
  6100. 2021-04-20 Jakub Jelinek <jakub@redhat.com>
  6101. * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
  6102. versions with _IEEE128_ substring are found, set ieee_version_found
  6103. to true. Ignore missing symbols with _IEEE128_ in version name if
  6104. !ieee_version_found. Use i->first as version_name instead of
  6105. i->second.version_name if the latter is empty.
  6106. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
  6107. 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
  6108. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
  6109. Updated.
  6110. 2021-04-17 Jakub Jelinek <jakub@redhat.com>
  6111. * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
  6112. * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
  6113. 2021-04-17 Jakub Jelinek <jakub@redhat.com>
  6114. * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
  6115. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
  6116. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
  6117. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
  6118. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
  6119. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
  6120. 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
  6121. * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
  6122. add libatomic options for 32-bit sparc*-*-linux-gnu.
  6123. 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
  6124. PR libstdc++/96657
  6125. * libsupc++/Makefile.am: Add atomicity.cc here.
  6126. * src/c++98/Makefile.am: Remove it from here.
  6127. * libsupc++/Makefile.in: Regenerate.
  6128. * src/c++98/Makefile.in: Regenerate.
  6129. * testsuite/18_support/exception_ptr/96657.cc: New test.
  6130. 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
  6131. PR libstdc++/100060
  6132. * include/std/bit: Only include <ext/numeric_traits.h> for
  6133. hosted build, use <limits> otherwise.
  6134. 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
  6135. * doc/xml/manual/backwards_compatibility.xml: Remove porting
  6136. notes for libg++ and libstdc++-v2, and bibliography.
  6137. * doc/html/*: Regenerated.
  6138. 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
  6139. PR libstdc++/100044
  6140. * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
  6141. Remove helper concept.
  6142. (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
  6143. deduction guides, as per LWG 3404.
  6144. * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
  6145. template argument deduction fails.
  6146. 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
  6147. * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
  6148. Adjust expected error for C++20 mode.
  6149. * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
  6150. Likewise.
  6151. 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
  6152. PR libstdc++/99995
  6153. * testsuite/17_intro/headers/c++1998/49745.cc: Include all
  6154. standard headers and XFAIL for effective-target c++20.
  6155. 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
  6156. PR libstdc++/99402
  6157. * include/debug/helper_functions.h (__can_advance(_InputIterator,
  6158. const std::pair<_Diff, _Distance_precision>&, int)): New.
  6159. (__can_advance(const _Safe_iterator<>&,
  6160. const std::pair<_Diff, _Distance_precision>&, int)): New.
  6161. * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
  6162. use latter.
  6163. (__glibcxx_check_can_increment_range): Adapt to use latter.
  6164. (__glibcxx_check_can_decrement_range): Likewise.
  6165. * include/debug/safe_iterator.h
  6166. (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
  6167. int)): New.
  6168. (__can_advance(const _Safe_iterator<>&,
  6169. const std::pair<_Diff, _Distance_precision>&, int)): New.
  6170. * include/debug/safe_iterator.tcc
  6171. (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
  6172. int)): New.
  6173. (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
  6174. std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
  6175. __dp_sign_max_size.
  6176. (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
  6177. (__copy_move_backward_a): Likewise.
  6178. (__equal_aux): Likewise.
  6179. * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
  6180. const std::pair<_Diff, _Distance_precision>&, int)): New.
  6181. (__can_advance(const std::move_iterator<>&,
  6182. const std::pair<_Diff, _Distance_precision>&, int)): New.
  6183. * testsuite/25_algorithms/copy/debug/99402.cc: New test.
  6184. 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
  6185. PR libstdc++/99985
  6186. * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
  6187. to be a valid constexpr function in C++11.
  6188. * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
  6189. 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
  6190. * include/bits/fs_fwd.h: Fix doxygen group command.
  6191. * include/bits/streambuf_iterator.h: Likewise.
  6192. * include/bits/uses_allocator_args.h: Likewise.
  6193. * include/std/memory: Likewise.
  6194. * include/tr1/complex: Likewise.
  6195. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6196. * include/bits/basic_string.h: Tweak doxygen comment.
  6197. 2021-04-08 Patrick Palka <ppalka@redhat.com>
  6198. * include/std/ranges (__detail::find): Define.
  6199. (split_view::_OuterIter::operator++): Apply proposed resolution
  6200. of LWG 3505.
  6201. * testsuite/std/ranges/adaptors/split.cc (test10): New test.
  6202. 2021-04-08 Patrick Palka <ppalka@redhat.com>
  6203. * include/std/ranges (__detail::find_if): Simplify.
  6204. (__detail::find_if_not): Likewise.
  6205. (__detail::min): Remove.
  6206. (__detail::mismatch): Simplify.
  6207. (take_view::size): Use std::min instead of __detail::min.
  6208. 2021-04-08 Patrick Palka <ppalka@redhat.com>
  6209. * include/std/ranges (__detail::__returnable_element): New
  6210. concept.
  6211. (elements_view): Use this concept in its constraints. Add
  6212. missing private access specifier.
  6213. (elements_view::_S_get_element): Define as per LWG 3502.
  6214. (elements_view::operator*, elements_view::operator[]): Use
  6215. _S_get_element.
  6216. (elements_view::operator++): Remove unnecessary constraint
  6217. as per LWG 3492.
  6218. * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
  6219. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6220. * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
  6221. out-of-memory error in log file.
  6222. * doc/Makefile.in: Regenerate.
  6223. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6224. * configure: Regenerate.
  6225. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6226. * include/bits/random.h: Fix doxygen group commands.
  6227. * include/bits/regex_constants.h: Likewise.
  6228. * include/tr1/random.h: Likewise.
  6229. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6230. * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
  6231. New function to determine noexcept-specifier for move
  6232. constructors.
  6233. (_Hashtable): Use _S_nothrow_move() on move constructors.
  6234. * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
  6235. Correct static assertion message.
  6236. * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
  6237. Likewise.
  6238. * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
  6239. Likewise.
  6240. * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
  6241. Likewise.
  6242. 2021-04-08 Patrick Palka <ppalka@redhat.com>
  6243. PR libstdc++/98384
  6244. * testsuite/20_util/to_chars/long_double.cc: Don't run the test
  6245. on targets without a large long double. XFAIL the execution on
  6246. targets with a non-conforming printf.
  6247. 2021-04-08 Patrick Palka <ppalka@redhat.com>
  6248. PR libstdc++/99433
  6249. * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
  6250. (__adaptor::__adaptor_invocable): New concept.
  6251. (__adaptor::__adaptor_partial_app_viable): New concept.
  6252. (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
  6253. non-template base class.
  6254. (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
  6255. class template.
  6256. (__adaptor::_Partial): New class template that represents
  6257. partial application of a range adaptor non-closure.
  6258. (__adaptor::__pipe_invocable): New concept.
  6259. (__adaptor::_Pipe): New class template.
  6260. (__detail::__can_ref_view): New concept.
  6261. (__detail::__can_subrange): New concept.
  6262. (all): Replace the lambda here with ...
  6263. (_All): ... this functor. Add appropriate constraints.
  6264. (__detail::__can_filter_view): New concept.
  6265. (filter, _Filter): As in all/_All.
  6266. (__detail::__can_transform): New concept.
  6267. (transform, _Transform): As in all/_All.
  6268. (__detail::__can_take_view): New concept.
  6269. (take, _Take): As in all/_All.
  6270. (__detail::__can_take_while_view): New concept.
  6271. (take_while, _TakeWhile): As in all/_All.
  6272. (__detail::__can_drop_view): New concept.
  6273. (drop, _Drop): As in all/_All.
  6274. (__detail::__can_drop_while_view): New concept.
  6275. (drop_while, _DropWhile): As in all/_All.
  6276. (__detail::__can_join_view): New concept.
  6277. (join, _Join): As in all/_All.
  6278. (__detail::__can_split_view): New concept.
  6279. (split, _Split): As in all/_All. Rename template parameter
  6280. _Fp to _Pattern.
  6281. (__detail::__already_common): New concept.
  6282. (__detail::__can_common_view): New concept.
  6283. (common, _Common): As in all/_All.
  6284. (__detail::__can_reverse_view): New concept.
  6285. (reverse, _Reverse): As in all/_All.
  6286. (__detail::__can_elements_view): New concept.
  6287. (elements, _Elements): As in all/_All.
  6288. (keys, values): Adjust.
  6289. * testsuite/std/ranges/adaptors/99433.cc: New test.
  6290. * testsuite/std/ranges/adaptors/all.cc: No longer expect that
  6291. adding empty range adaptor closure objects to a pipeline doesn't
  6292. increase the size of the pipeline.
  6293. (test05): New test.
  6294. * testsuite/std/ranges/adaptors/common.cc (test03): New test.
  6295. * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
  6296. * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
  6297. * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
  6298. * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
  6299. * testsuite/std/ranges/adaptors/join.cc (test09): New test.
  6300. * testsuite/std/ranges/adaptors/p2281.cc: New test.
  6301. * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
  6302. * testsuite/std/ranges/adaptors/split.cc (test01, test04):
  6303. Adjust.
  6304. (test09): New test.
  6305. * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
  6306. expected error message.
  6307. (test02): Likewise. Extend test.
  6308. * testsuite/std/ranges/adaptors/take.cc (test06): New test.
  6309. * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
  6310. * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
  6311. New test.
  6312. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6313. * include/std/string_view: Adjust Doxygen @file comment.
  6314. 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
  6315. * include/std/type_traits (is_scoped_enum<T>): Constrain partial
  6316. specialization to not match incomplete enum types. Use a
  6317. requires-expression instead of instantiating is_convertible.
  6318. (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
  6319. * testsuite/20_util/is_scoped_enum/value.cc: Check with
  6320. incomplete types and opaque-enum-declarations.
  6321. 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
  6322. PR libstdc++/99805
  6323. * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
  6324. non-const member on _M_pathname, to avoid copy-on-write.
  6325. * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
  6326. Check construction from strings that might be shared.
  6327. 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
  6328. * include/bits/move.h (forward, move, move_if_noexcept)
  6329. (addressof): Add _GLIBCXX_NODISCARD.
  6330. * include/bits/ranges_cmp.h (identity::operator()): Add
  6331. nodiscard attribute.
  6332. * include/c_global/cstddef (to_integer): Likewise.
  6333. * include/std/bit (bit_cast): Likewise.
  6334. * include/std/utility (as_const, to_underlying): Likewise.
  6335. 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
  6336. * include/bits/move.h (forward): Change static_assert message
  6337. to be unambiguous about what must be true.
  6338. * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
  6339. * testsuite/20_util/forward/f_neg.cc: Likewise.
  6340. 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
  6341. * include/bits/alloc_traits.h: Use markdown for code font.
  6342. * include/bits/basic_string.h: Fix @param names.
  6343. * include/bits/max_size_type.h: Remove period after @file.
  6344. * include/bits/regex.h: Fix duplicate @retval names, and rename.
  6345. * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
  6346. group open to match existing group close.
  6347. * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
  6348. open.
  6349. 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
  6350. * include/bits/atomic_base.h: Fix doxygen group close.
  6351. * include/bits/basic_ios.h: Likewise.
  6352. * include/bits/forward_list.h: Likewise.
  6353. * include/bits/fs_dir.h: Likewise.
  6354. * include/bits/fs_ops.h: Likewise.
  6355. * include/bits/fs_path.h: Likewise.
  6356. * include/bits/functional_hash.h: Likewise.
  6357. * include/bits/gslice.h: Likewise.
  6358. * include/bits/gslice_array.h: Likewise.
  6359. * include/bits/hashtable_policy.h: Likewise.
  6360. * include/bits/indirect_array.h: Likewise.
  6361. * include/bits/locale_classes.h: Likewise.
  6362. * include/bits/locale_facets.h: Likewise.
  6363. * include/bits/locale_facets_nonio.h: Likewise.
  6364. * include/bits/mask_array.h: Likewise.
  6365. * include/bits/refwrap.h: Likewise.
  6366. * include/bits/regex.h: Likewise.
  6367. * include/bits/regex_automaton.h: Likewise.
  6368. * include/bits/regex_compiler.h: Likewise.
  6369. * include/bits/regex_constants.h: Likewise.
  6370. * include/bits/regex_error.h: Likewise.
  6371. * include/bits/regex_executor.h: Likewise.
  6372. * include/bits/regex_scanner.h: Likewise.
  6373. * include/bits/shared_ptr.h: Likewise.
  6374. * include/bits/shared_ptr_atomic.h: Likewise.
  6375. * include/bits/shared_ptr_base.h: Likewise.
  6376. * include/bits/slice_array.h: Likewise.
  6377. * include/bits/specfun.h: Likewise.
  6378. * include/bits/std_function.h: Likewise.
  6379. * include/bits/std_mutex.h: Likewise.
  6380. * include/bits/stl_deque.h: Likewise.
  6381. * include/bits/stl_iterator.h: Likewise.
  6382. * include/bits/stl_iterator_base_types.h: Likewise.
  6383. * include/bits/stl_map.h: Likewise.
  6384. * include/bits/stl_multimap.h: Likewise.
  6385. * include/bits/stl_multiset.h: Likewise.
  6386. * include/bits/stl_numeric.h: Likewise.
  6387. * include/bits/stl_pair.h: Likewise.
  6388. * include/bits/stl_set.h: Likewise.
  6389. * include/bits/stl_uninitialized.h: Likewise.
  6390. * include/bits/stream_iterator.h: Likewise.
  6391. * include/bits/streambuf_iterator.h: Likewise.
  6392. * include/bits/unique_ptr.h: Likewise.
  6393. * include/bits/unordered_map.h: Likewise.
  6394. * include/bits/unordered_set.h: Likewise.
  6395. * include/decimal/decimal: Likewise.
  6396. * include/experimental/any: Likewise.
  6397. * include/experimental/array: Likewise.
  6398. * include/experimental/bits/fs_dir.h: Likewise.
  6399. * include/experimental/bits/fs_fwd.h: Likewise.
  6400. * include/experimental/bits/fs_ops.h: Likewise.
  6401. * include/experimental/bits/fs_path.h: Likewise.
  6402. * include/experimental/buffer: Likewise.
  6403. * include/experimental/internet: Likewise.
  6404. * include/experimental/optional: Likewise.
  6405. * include/experimental/propagate_const: Likewise.
  6406. * include/experimental/socket: Likewise.
  6407. * include/ext/pb_ds/assoc_container.hpp: Likewise.
  6408. * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
  6409. Likewise.
  6410. * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
  6411. * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
  6412. * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
  6413. * include/ext/pb_ds/exception.hpp: Likewise.
  6414. * include/ext/pb_ds/priority_queue.hpp: Likewise.
  6415. * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
  6416. * include/ext/random: Likewise.
  6417. * include/std/any: Likewise.
  6418. * include/std/atomic: Likewise.
  6419. * include/std/bitset: Likewise.
  6420. * include/std/chrono: Likewise.
  6421. * include/std/complex: Likewise.
  6422. * include/std/condition_variable: Likewise.
  6423. * include/std/fstream: Likewise.
  6424. * include/std/future: Likewise.
  6425. * include/std/iostream: Likewise.
  6426. * include/std/istream: Likewise.
  6427. * include/std/mutex: Likewise.
  6428. * include/std/numeric: Likewise.
  6429. * include/std/ostream: Likewise.
  6430. * include/std/ratio: Likewise.
  6431. * include/std/shared_mutex: Likewise.
  6432. * include/std/stdexcept: Likewise.
  6433. * include/std/streambuf: Likewise.
  6434. * include/std/system_error: Likewise.
  6435. * include/std/thread: Likewise.
  6436. * include/std/valarray: Likewise.
  6437. * include/std/variant: Likewise.
  6438. * include/tr1/cmath: Likewise.
  6439. * include/tr1/regex: Likewise.
  6440. * include/tr2/dynamic_bitset: Likewise.
  6441. * libsupc++/atomic_lockfree_defines.h: Likewise.
  6442. * libsupc++/exception: Likewise.
  6443. * libsupc++/exception.h: Likewise.
  6444. * libsupc++/exception_ptr.h: Likewise.
  6445. * libsupc++/nested_exception.h: Likewise.
  6446. 2021-03-31 Alexandre Oliva <oliva@adacore.com>
  6447. * testsuite/30_threads/future/members/poll.cc: Use faster
  6448. after-ready call in the calibration loop.
  6449. 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
  6450. * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
  6451. * doc/html/manual/status.html: Regenerate.
  6452. 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
  6453. * include/debug/forward_list
  6454. (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
  6455. * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
  6456. call to safe container allocator aware move constructor.
  6457. * include/debug/vector (vector(vector&&, const allocator_type&)):
  6458. Fix noexcept qualification.
  6459. * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
  6460. Add allocator-extended move constructor noexceot qualification check.
  6461. * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
  6462. 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
  6463. * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
  6464. fallback is needed.
  6465. [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
  6466. New helper functions and callback.
  6467. (random_device::_M_init): Add 'prng' and 'all' enumerators.
  6468. Replace switch with fallthrough with a series of 'if' statements.
  6469. [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
  6470. checks fail.
  6471. (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
  6472. token.
  6473. (random_device::_M_getval): Check for callback unconditionally
  6474. and always pass _M_file pointer.
  6475. * testsuite/26_numerics/random/random_device/85494.cc: Remove
  6476. effective-target check. Use new random_device_available helper.
  6477. * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
  6478. * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
  6479. Remove effective-target check.
  6480. * testsuite/26_numerics/random/random_device/cons/default.cc:
  6481. Likewise.
  6482. * testsuite/26_numerics/random/random_device/cons/token.cc: Use
  6483. new random_device_available helper. Test "prng" token.
  6484. * testsuite/util/testsuite_random.h (random_device_available):
  6485. New helper function.
  6486. 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
  6487. * include/debug/string
  6488. (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
  6489. (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
  6490. (basic_string<>::erase): Adapt to take __const_iterator.
  6491. (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
  6492. (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
  6493. remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
  6494. [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
  6495. (__gnu_debug::u16string, __gnu_debug::u32string): New.
  6496. (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
  6497. (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
  6498. * testsuite/util/exception/safety.h
  6499. (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
  6500. (insert_base<__gnu_debug::basic_string<>>): Likewise.
  6501. * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
  6502. New partial specialization.
  6503. * testsuite/21_strings/basic_string/hash/debug.cc: New test.
  6504. * testsuite/21_strings/basic_string/requirements/citerators.cc:
  6505. Add test on __gnu_debug::string.
  6506. * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
  6507. * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
  6508. * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
  6509. Likewise.
  6510. * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
  6511. Likewise.
  6512. * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
  6513. Likewise.
  6514. * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
  6515. Likewise.
  6516. * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
  6517. Likewise.
  6518. * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
  6519. Likewise.
  6520. * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
  6521. Likewise.
  6522. * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
  6523. 2021-03-25 Jakub Jelinek <jakub@redhat.com>
  6524. PR c++/99672
  6525. * testsuite/18_support/source_location/consteval.cc (main): Adjust
  6526. expected column numbers.
  6527. * testsuite/18_support/source_location/1.cc (main): Likewise.
  6528. 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
  6529. * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
  6530. 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
  6531. * testsuite/util/exception/safety.h (setup_base::generate):
  6532. Support seeding random engine.
  6533. (erase_point, erase_range): Adjust range of random numbers to
  6534. ensure dereferenceable iterators are used where required.
  6535. (generation_prohibited::run): Do not try to erase from empty
  6536. containers.
  6537. * testsuite/util/testsuite_containergen.h (test_containers):
  6538. Support seeding random engine.
  6539. 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
  6540. * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
  6541. line with a check that uses the const being/end overloads.
  6542. 2021-03-23 Moritz Sichert <sichert@in.tum.de>
  6543. * include/std/ranges (reverse_view::begin, reverse_view::end):
  6544. Qualify make_reverse_iterator calls to avoid ADL.
  6545. * testsuite/std/ranges/adaptors/reverse.cc: Test that
  6546. views::reverse works when make_reverse_iterator is defined
  6547. in an associated namespace.
  6548. 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
  6549. * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
  6550. Do not define when compiling with Clang.
  6551. 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
  6552. * include/std/string_view (basic_string_view(Range&&)): Define new
  6553. constructor and deduction guide.
  6554. * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
  6555. * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
  6556. 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
  6557. * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
  6558. Add missing 'noexcept' as per LWG 2280.
  6559. (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
  6560. (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
  6561. * testsuite/24_iterators/range_access/range_access.cc: Check for
  6562. expected noexcept specifiers. Check result types of generic
  6563. std::begin and std::end overloads.
  6564. * testsuite/24_iterators/range_access/range_access_cpp14.cc:
  6565. Check for expected noexcept specifiers.
  6566. * testsuite/24_iterators/range_access/range_access_cpp17.cc:
  6567. Likewise.
  6568. 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
  6569. * include/std/type_traits (is_scoped_enum): Define.
  6570. * include/std/version (__cpp_lib_is_scoped_enum): Define.
  6571. * testsuite/20_util/is_scoped_enum/value.cc: New test.
  6572. * testsuite/20_util/is_scoped_enum/version.cc: New test.
  6573. 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
  6574. PR libstdc++/99341
  6575. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
  6576. std::once_flag symbols.
  6577. * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
  6578. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
  6579. * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
  6580. Likewise.
  6581. * config/abi/pre/gnu.ver: Likewise.
  6582. * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
  6583. (struct __once_flag_compat): Remove.
  6584. (_ZNSt9once_flag11_M_activateEv): Remove.
  6585. (_ZNSt9once_flag9_M_finishEb): Remove.
  6586. 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
  6587. PR libstdc++/99341
  6588. * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
  6589. Revert to pthread_once_t implementation.
  6590. [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
  6591. * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
  6592. (struct __once_flag_compat): New type matching the reverted
  6593. implementation of once_flag using futexes.
  6594. (once_flag::_M_activate): Remove, replace with ...
  6595. (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
  6596. (once_flag::_M_finish): Remove, replace with ...
  6597. (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
  6598. * testsuite/30_threads/call_once/66146.cc: Removed.
  6599. 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
  6600. * testsuite/17_intro/names.cc: Exclude j from the list
  6601. of test symbols for Darwin.
  6602. 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
  6603. * config/os/bsd/darwin/ppc-extra.ver: Add matching for
  6604. to_chars and from_chars for long double.
  6605. 2021-03-15 Patrick Palka <ppalka@redhat.com>
  6606. * include/bits/max_size_type.h (__max_size_type::operator _Tp):
  6607. Fix formatting.
  6608. (__max_size_type::operator++): Define.
  6609. (__max_size_type::operator--): Likewise.
  6610. (__max_size_type::operator<=>): Conditionally define (in place
  6611. of the other comparison operators).
  6612. (__max_diff_type::operator _Tp): Fix formatting.
  6613. (__max_diff_type::operator++): Define.
  6614. (__max_diff_type::operator--): Likewise.
  6615. (__max_diff_type::operator<=>): Conditionally define (in place
  6616. of the other comparison operators).
  6617. * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
  6618. these operator overloads.
  6619. 2021-03-15 Caroline Tice <cmtice@google.com>
  6620. PR libstdc++/99172
  6621. * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
  6622. AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
  6623. AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
  6624. filtered out.
  6625. * src/Makefile.in: Regenerate.
  6626. 2021-03-11 Patrick Palka <ppalka@redhat.com>
  6627. * src/c++17/floating_to_chars.cc: Simplify the file as if
  6628. __SIZEOF_INT128__ is always defined.
  6629. [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
  6630. a base-10 to_chars overload for the uint128_t class type.
  6631. * src/c++17/uint128_t.h: New file.
  6632. * testsuite/20_util/to_chars/long_double.cc: No longer expect an
  6633. execution FAIL on targets that have a large long double type
  6634. but lack __int128.
  6635. 2021-03-11 Patrick Palka <ppalka@redhat.com>
  6636. * src/c++17/ryu/LOCAL_PATCHES: Update.
  6637. * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
  6638. * src/c++17/ryu/generic_128.h: Likewise.
  6639. * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
  6640. Use uint128_t instead of __uint128_t.
  6641. (generic_binary_to_decimal): Likewise.
  6642. 2021-03-11 Patrick Palka <ppalka@redhat.com>
  6643. * src/c++17/ryu/LOCAL_PATCHES: New file.
  6644. 2021-03-11 Patrick Palka <ppalka@redhat.com>
  6645. * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
  6646. defined alias of unsigned __int128.
  6647. (floating_type_traits_binary128::mantissa_t): Use uint128_t
  6648. instead of unsigned __int128.
  6649. (floating_type_traits<long double>::mantissa_t)
  6650. [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
  6651. (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
  6652. and uint32_t explicit. Simplify the extraction of mantissa,
  6653. exponent and sign bit.
  6654. 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
  6655. * include/std/barrier (barrier::arrival_token): New move-only
  6656. class that encapsulates the underlying token value.
  6657. 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
  6658. * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
  6659. instead of unqualified() method.
  6660. 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
  6661. PR libstdc++/99537
  6662. * include/std/stop_token (_Stop_state_t::_M_release_ownership):
  6663. Use acq_rel memory ordering.
  6664. 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
  6665. PR libstdc++/99533
  6666. * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
  6667. helper function to check for permission denied errors.
  6668. * src/filesystem/dir.cc (recursive_directory_iterator):
  6669. Likewise.
  6670. * src/filesystem/dir-common.h (is_permission_denied_error): New
  6671. helper function.
  6672. 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
  6673. PR libstdc++/99536
  6674. * include/bits/random.h (normal_distribution): Use
  6675. default-initializer for _M_saved and _M_saved_available.
  6676. 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
  6677. * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
  6678. link with libatomic.
  6679. * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
  6680. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  6681. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  6682. * testsuite/30_threads/barrier/arrive.cc: Likewise.
  6683. * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
  6684. * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
  6685. * testsuite/30_threads/barrier/completion.cc: Likewise.
  6686. * testsuite/30_threads/latch/3.cc: Likewise.
  6687. * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
  6688. * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
  6689. * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
  6690. 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
  6691. PR libstdc++/99413
  6692. * include/bits/align.h: Include debug/assertions.h.
  6693. * include/bits/codecvt.h: Include bits/c++config.h.
  6694. * include/bits/enable_special_members.h: Likewise.
  6695. * include/bits/erase_if.h: Likewise.
  6696. * include/bits/functional_hash.h: Include <type_traits>.
  6697. * include/bits/invoke.h: Include bits/move.h.
  6698. * include/bits/ostream_insert.h: Include bits/exception_defines.h.
  6699. * include/bits/parse_numbers.h: Include <type_traits>.
  6700. * include/bits/predefined_ops.h: Include bits/c++config.h.
  6701. * include/bits/range_access.h: Include bits/stl_iterator.h.
  6702. * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
  6703. * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
  6704. * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
  6705. * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
  6706. * include/bits/unique_lock.h: Include bits/std_mutex.h.
  6707. * include/debug/assertions.h: Include bits/c++config.h.
  6708. 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
  6709. * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
  6710. (ranges::equal_to, ranges::not_equal_to): Do not constrain
  6711. with __eq_builtin_ptr_cmp.
  6712. (ranges::less, ranges::greater, ranges::less_equal)
  6713. (ranges::greater_equal): Do not constrain with
  6714. __less_builtin_ptr_cmp.
  6715. * libsupc++/compare (compare_three_way): Do not constrain with
  6716. __3way_builtin_ptr_cmp.
  6717. * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
  6718. * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
  6719. * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
  6720. 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
  6721. * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
  6722. C++20 calendar types.
  6723. 2021-03-06 Jakub Jelinek <jakub@redhat.com>
  6724. PR libstdc++/99396
  6725. * include/std/bit (__rotl, __rotr): Add optimized variants for power of
  6726. two _Nd which the compiler can pattern match the rotates.
  6727. 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
  6728. PR libstdc++/99382
  6729. * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
  6730. Make storage larger than required. Verify no write to the last
  6731. element.
  6732. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
  6733. Likewise.
  6734. 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  6735. * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
  6736. * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
  6737. Likewise.
  6738. * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
  6739. * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
  6740. Likewise.
  6741. 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  6742. * include/experimental/bits/simd.h: Replace reserved _X, _B by
  6743. _Xp, _Bp.
  6744. * include/experimental/bits/simd_builtin.h: Likewise.
  6745. * include/experimental/bits/simd_x86.h: Likewise.
  6746. 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
  6747. PR libstdc++/99301
  6748. * include/std/chrono (year_month_day::_M_days_since_epoch()):
  6749. Convert chrono::month and chrono::day to unsigned before
  6750. converting to uint32_t.
  6751. 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
  6752. * include/std/chrono (year_month_day::_S_from_days): Perform
  6753. all calculations with type uint32_t.
  6754. 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
  6755. * doc/xml/manual/abi.xml: Document versioning for GCC 11.
  6756. * doc/html/manual/abi.html: Regenerate.
  6757. 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
  6758. PR libstdc++/99270
  6759. * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
  6760. FILE instead of FILE.
  6761. 2021-02-25 Andreas Schwab <schwab@suse.de>
  6762. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
  6763. * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
  6764. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
  6765. * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
  6766. 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
  6767. PR libstdc++/99265
  6768. * include/std/chrono (year_month_day::_S_from_days): Cast long
  6769. to int explicitly.
  6770. 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
  6771. * include/std/utility (to_underlying): Define.
  6772. * include/std/version (__cpp_lib_to_underlying): Define.
  6773. * testsuite/20_util/to_underlying/1.cc: New test.
  6774. * testsuite/20_util/to_underlying/version.cc: New test.
  6775. 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
  6776. PR libstdc++/99261
  6777. * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
  6778. before value to be printed.
  6779. 2021-02-24 Patrick Palka <ppalka@redhat.com>
  6780. * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
  6781. Relax the condition that guards the printf code path to accept
  6782. F128_type as well as long double.
  6783. 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
  6784. * include/std/chrono (year_month_day_last:day): New
  6785. implementation.
  6786. 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
  6787. * include/std/chrono (year::is_leap): New implementation.
  6788. * testsuite/std/time/year/2.cc: New test.
  6789. 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
  6790. * include/std/chrono (year_month_day::_M_days_since_epoch):
  6791. New implementation.
  6792. * testsuite/std/time/year_month_day/4.cc: New test.
  6793. 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
  6794. * include/std/chrono (year_month_day::_S_from_days): New
  6795. implementation.
  6796. * testsuite/std/time/year_month_day/3.cc: New test.
  6797. 2021-02-24 Patrick Palka <ppalka@redhat.com>
  6798. PR libstdc++/98384
  6799. * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
  6800. (test01): Simplify verifying the nearby values by using a
  6801. 2-iteration loop and a dedicated output buffer to check that the
  6802. nearby values are different. Factor out the printf-based
  6803. verification into a local function, and check that the leading
  6804. hex digits agree before comparing to the output of printf. Also
  6805. verify the output by round-tripping it through from_chars.
  6806. 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
  6807. PR libstdc++/98389
  6808. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
  6809. symbols for long double arguments mangled as 'g'.
  6810. * config/os/gnu-linux/ldbl-extra.ver: Likewise.
  6811. * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
  6812. * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
  6813. Use -mabi=ibmlongdouble for floating_to_chars.cc.
  6814. * src/c++17/Makefile.in: Regenerate.
  6815. * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
  6816. New type defining type traits of IEEE binary128 format.
  6817. (floating_type_traits<__float128>): Define specialization.
  6818. (floating_type_traits<long double>): Define in terms of
  6819. floating_type_traits_binary128 when appropriate.
  6820. (floating_to_shortest_scientific): Handle __float128.
  6821. (sprintf_ld): New function template for printing a long double
  6822. or __ieee128 value using sprintf.
  6823. (__floating_to_chars_shortest, __floating_to_chars_precision):
  6824. Use sprintf_ld.
  6825. (to_chars): Define overloads for __float128.
  6826. 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
  6827. * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
  6828. 2021-02-23 Martin Sebor <msebor@redhat.com>
  6829. PR c++/99074
  6830. * libsupc++/dyncast.cc (__dynamic_cast): Return null when
  6831. first argument is null.
  6832. 2021-02-23 Jakub Jelinek <jakub@redhat.com>
  6833. PR libstdc++/99181
  6834. * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
  6835. test.
  6836. 2021-02-23 Jakub Jelinek <jakub@redhat.com>
  6837. PR libstdc++/99181
  6838. * include/bits/char_traits.h (char_traits<char>::compare): For
  6839. constexpr evaluation don't call
  6840. __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
  6841. directly.
  6842. 2021-02-23 Jakub Jelinek <jakub@redhat.com>
  6843. PR libstdc++/97549
  6844. * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
  6845. 2021-02-23 Patrick Palka <ppalka@redhat.com>
  6846. PR libstdc++/98384
  6847. * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
  6848. the high- and low-order parts from an IBM long double value
  6849. in an endian-agnostic way.
  6850. 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
  6851. * include/bits/atomic_wait.h (__thread_relax()): Call
  6852. __thread_yield() not __gthread_yield().
  6853. 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
  6854. * include/bits/atomic_wait.h (__thread_yield()): Check
  6855. _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
  6856. (__thread_relax()): Use __thread_yield() instead of repeating
  6857. the preprocessor checks for __gthread_yield.
  6858. 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
  6859. * include/std/mutex (once_flag::_M_activate()): Add explicit
  6860. return statement for passive case.
  6861. (once_flag::_M_finish(bool)): Use reserved name for parameter.
  6862. 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
  6863. PR libstdc++/99096
  6864. * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
  6865. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6866. PR libstdc++/88881
  6867. * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
  6868. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6869. * doc/xml/manual/status_cxx2014.xml: Document implementation
  6870. specific properties of std::experimental::filesystem::rename.
  6871. * doc/xml/manual/status_cxx2017.xml: Document implementation
  6872. specific properties of std::filesystem::rename.
  6873. * doc/html/*: Regenerate.
  6874. * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
  6875. for directories on Windows.
  6876. * src/filesystem/ops-common.h (__gnu_posix::rename): Use
  6877. MoveFileExW on Windows.
  6878. * testsuite/27_io/filesystem/operations/rename.cc: New test.
  6879. * testsuite/experimental/filesystem/operations/rename.cc: New test.
  6880. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6881. * testsuite/util/testsuite_fs.h (nonexistent_path): Add
  6882. random number to the path.
  6883. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6884. * include/experimental/internet (address_v6::to_string): Include
  6885. scope ID in string.
  6886. * testsuite/experimental/net/internet/address/v6/members.cc:
  6887. Test to_string() results.
  6888. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6889. * include/experimental/internet (address_v6::any): Avoid using
  6890. memcpy in constexpr function.
  6891. (address_v6::loopback): Likewise.
  6892. (make_address_v6): Fix missing return statements on error paths.
  6893. * include/experimental/io_context: Avoid -Wdangling-else
  6894. warning.
  6895. * testsuite/experimental/net/internet/address/v4/members.cc:
  6896. Remove unused variables.
  6897. * testsuite/experimental/net/internet/address/v6/members.cc:
  6898. New test.
  6899. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6900. * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
  6901. Add unused attribute to parameter.
  6902. * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
  6903. Likewise.
  6904. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6905. * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
  6906. if -fno-rtti is used.
  6907. * testsuite/30_threads/async/forced_unwind.cc: Expect test
  6908. to abort if -fno-rtti is used.
  6909. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6910. * testsuite/util/testsuite_allocator.h (memory_resource):
  6911. Remove requirement for RTTI and exceptions to be enabled.
  6912. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6913. * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
  6914. static_cast when RTTI is disabled.
  6915. * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
  6916. Likewise.
  6917. * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
  6918. Likewise.
  6919. * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
  6920. Likewise.
  6921. * testsuite/27_io/basic_stringstream/str/char/2.cc:
  6922. Likewise.
  6923. * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
  6924. Likewise.
  6925. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6926. * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
  6927. as unused and only use dynamic_cast when RTTI is enabled.
  6928. 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
  6929. PR libstdc++/99077
  6930. * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
  6931. Change int parameter to error_code, to match std::ios_failure.
  6932. (__throw_ios_failure(const char*, int)): Construct error_code
  6933. from int parameter.
  6934. 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
  6935. * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
  6936. new macro.
  6937. * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
  6938. macro instead of _GLIBCXX_EH_PTR_COMPAT.
  6939. (operator==): Likewise.
  6940. 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
  6941. PR libstdc++/99058
  6942. * doc/xml/manual/status_cxx2011.xml: Document when support
  6943. became stable.
  6944. * doc/xml/manual/status_cxx2014.xml: Likewise.
  6945. * doc/xml/manual/status_cxx2017.xml: Likewise.
  6946. * doc/html/manual/status.html: Regenerate.
  6947. 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
  6948. PR libstdc++/88881
  6949. * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
  6950. 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
  6951. * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
  6952. (fs::remove): Use std::system_category() for error codes from
  6953. GetLastError().
  6954. * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
  6955. Likewise.
  6956. 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
  6957. * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
  6958. in __MINGW32__ macro name.
  6959. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
  6960. * testsuite/27_io/filesystem/path/generation/proximate.cc:
  6961. Likewise.
  6962. * testsuite/27_io/filesystem/path/generation/relative.cc:
  6963. Likewise.
  6964. * testsuite/util/testsuite_fs.h: Likewise.
  6965. 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
  6966. * include/bits/stl_tree.h
  6967. (__has_is_transparent, __has_is_transparent_t): Move...
  6968. * include/bits/stl_function.h: ...here.
  6969. * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
  6970. (_Hashtable_base<>::_M_equals_tr): New.
  6971. * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
  6972. _Hashtable<>::_M_equal_range_tr): New member function templates to perform
  6973. heterogeneous lookup.
  6974. (_Hashtable<>::_M_find_before_node_tr): New.
  6975. (_Hashtable<>::_M_find_node_tr): New.
  6976. * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
  6977. unordered_map::contains<>, unordered_map::equal_range<>): New member function
  6978. templates to perform heterogeneous lookup.
  6979. (unordered_multimap::find<>, unordered_multimap::count<>,
  6980. unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
  6981. * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
  6982. unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
  6983. (unordered_multiset::find<>, unordered_multiset::count<>,
  6984. unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
  6985. * include/debug/unordered_map
  6986. (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
  6987. (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
  6988. * include/debug/unordered_set
  6989. (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
  6990. (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
  6991. * testsuite/23_containers/unordered_map/operations/1.cc: New test.
  6992. * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
  6993. * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
  6994. * testsuite/23_containers/unordered_set/operations/1.cc: New test.
  6995. 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
  6996. * include/bits/stl_deque.h
  6997. (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
  6998. a null pointer test.
  6999. 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
  7000. * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
  7001. test directory after making it writable again.
  7002. * testsuite/experimental/filesystem/operations/remove_all.cc:
  7003. Likewise.
  7004. 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
  7005. PR libstdc++/99021
  7006. * include/std/coroutine (coroutine_handle<P>::from_address): Add
  7007. noexcept.
  7008. 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
  7009. * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
  7010. * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
  7011. 2021-02-09 Jakub Jelinek <jakub@redhat.com>
  7012. PR middle-end/98465
  7013. * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
  7014. points to the characters moved by earlier _S_move, compute the source
  7015. address using expression based on the __p pointer rather than __s
  7016. pointer.
  7017. 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
  7018. * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
  7019. Add comparison with same category and different values.
  7020. * testsuite/19_diagnostics/error_code/operators/less.cc:
  7021. Likewise. Fix comparison involving different categories.
  7022. * testsuite/19_diagnostics/error_code/operators/three_way.cc:
  7023. Likewise.
  7024. * testsuite/19_diagnostics/error_condition/operators/less.cc:
  7025. Add comment.
  7026. * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
  7027. Likewise.
  7028. 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
  7029. * include/experimental/bits/simd_neon.h: Replace repeated vpadd
  7030. calls with a single vaddv for aarch64.
  7031. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7032. * testsuite/Makefile.am: Warn about the workaround. Add
  7033. -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
  7034. Improve initial user feedback from make check-simd.
  7035. * testsuite/Makefile.in: Regenerated.
  7036. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7037. * include/experimental/bits/simd.h: Add __detail::_Minimum and
  7038. __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
  7039. Add hmin and hmax overloads for simd and const_where_expression.
  7040. * include/experimental/bits/simd_scalar.h
  7041. (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
  7042. parameter const-ref to allow calling _S_reduce with an rvalue.
  7043. * testsuite/experimental/simd/tests/reductions.cc: Add tests for
  7044. hmin and hmax. Since the compiler statically determined that all
  7045. tests pass, repeat the test after a call to make_value_unknown.
  7046. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7047. * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
  7048. instruction pointer data member. Ensure that the `if (m_failed)`
  7049. branch is always inlined into the calling code. The body of the
  7050. conditional can still be a function call. Move the get_ip call
  7051. into the verify ctor to simplify the ctor calls.
  7052. (COMPARE): Don't mention the use of all_of for reduction of a
  7053. simd_mask. It only distracts from the real issue.
  7054. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7055. * testsuite/experimental/simd/driver.sh: Abstract reading test
  7056. options into read_src_option function. Read skip, only,
  7057. expensive, and xfail via read_src_option. Add timeout and
  7058. timeout-factor options and adjust timeout variable accordingly.
  7059. * testsuite/experimental/simd/tests/loadstore.cc: Set
  7060. timeout-factor 2.
  7061. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7062. * testsuite/experimental/simd/driver.sh: When handling the pipe
  7063. to log (and on verbose to stdout) count the lines. If it exceeds
  7064. 1000 log the issue and exit 125, which is then handled as a
  7065. failure.
  7066. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7067. * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
  7068. markup for long double on powerpc64*.
  7069. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7070. * include/experimental/bits/simd.h: Add __have_power10vec
  7071. conditional on _ARCH_PWR10.
  7072. * include/experimental/bits/simd_builtin.h: Forward declare
  7073. _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
  7074. defined.
  7075. (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
  7076. _SuperImpl for optimizations and correctness.
  7077. * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
  7078. (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
  7079. Otherwise, for >=int use -vec_sums divided by a sizeof factor.
  7080. For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
  7081. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7082. * testsuite/experimental/simd/driver.sh: Remove executable on
  7083. SIGINT. Process compiler and test executable output: In verbose
  7084. mode print messages immediately, limited to 1000 lines and
  7085. breaking long lines to below $COLUMNS (or 1024 if not set).
  7086. Communicating the exit status of the compiler / test with the
  7087. necessary pipe is done via a message through stdout/-in.
  7088. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7089. * testsuite/Makefile.am: Ensure .simd.summary is empty before
  7090. collecting a new summary.
  7091. * testsuite/Makefile.in: Regenerate.
  7092. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7093. * testsuite/experimental/simd/generate_makefile.sh: Use
  7094. different variables internally than documented for user
  7095. overrides. This makes internal append/prepend work as intended.
  7096. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7097. * testsuite/experimental/simd/driver.sh (verify_test): Print
  7098. test output on run xfail. Do not repeat lines from the log that
  7099. were already printed on stdout.
  7100. (test_selector): Make the compiler flags pattern usable as a
  7101. substring selector.
  7102. (toplevel): Trap on SIGINT and remove the log and sum files.
  7103. Call timout with --foreground to quickly terminate on SIGINT.
  7104. * testsuite/experimental/simd/generate_makefile.sh: Simplify run
  7105. targets via target patterns. Default DRIVEROPTS to -v for run
  7106. targets. Remove log and sum files after completion of the run
  7107. target (so that it's always recompiled).
  7108. Place help text into text file for reasonable 'make help'
  7109. performance.
  7110. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7111. * include/experimental/bits/simd.h: Remove unnecessary static
  7112. assertion. Allow sizeof(8) integer __intrinsic_type to enable
  7113. the necessary mask type.
  7114. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7115. * include/experimental/bits/simd.h: Let __intrinsic_type<long
  7116. double, N> be valid if sizeof(long double) == sizeof(double) and
  7117. use a __vector double as member type.
  7118. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7119. * include/experimental/bits/simd.h (__is_intrinsic_type): New
  7120. internal type trait. Alias for __is_vector_type on x86.
  7121. (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
  7122. __vector_type.
  7123. (__intrin_bitcast): Allow casting to & from vector & intrinsic
  7124. types.
  7125. (__intrinsic_type): Explicitly specialize for NEON intrinsic
  7126. vector types.
  7127. 2021-02-03 Matthias Kretz <kretz@kde.org>
  7128. * testsuite/experimental/simd/driver.sh: Implement skip, only,
  7129. expensive, and xfail markers. They can select on type, ABI tag
  7130. subset number, target-triplet, and compiler flags.
  7131. * testsuite/experimental/simd/generate_makefile.sh: The summary
  7132. now includes lines for unexpected passes and expected failures.
  7133. If the skip or only markers are only conditional on the type, do
  7134. not generate rules for those types.
  7135. * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
  7136. for ABI tag subsets 1-9.
  7137. * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
  7138. * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
  7139. * testsuite/experimental/simd/tests/casts.cc: Ditto.
  7140. * testsuite/experimental/simd/tests/generator.cc: Ditto.
  7141. * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
  7142. * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
  7143. * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
  7144. * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
  7145. * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
  7146. * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
  7147. * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
  7148. * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
  7149. * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
  7150. * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
  7151. * testsuite/experimental/simd/tests/operators.cc: Ditto.
  7152. * testsuite/experimental/simd/tests/reductions.cc: Ditto.
  7153. * testsuite/experimental/simd/tests/simd.cc: Ditto.
  7154. * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
  7155. * testsuite/experimental/simd/tests/splits.cc: Ditto.
  7156. * testsuite/experimental/simd/tests/where.cc: Ditto.
  7157. * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
  7158. addition replace "test only floattypes" marker by unconditional
  7159. "float|double|ldouble" only marker.
  7160. * testsuite/experimental/simd/tests/frexp.cc: Ditto.
  7161. * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
  7162. * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
  7163. Ditto.
  7164. * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
  7165. * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
  7166. * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
  7167. * testsuite/experimental/simd/tests/remqo.cc: Ditto.
  7168. * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
  7169. * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
  7170. * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
  7171. addition, xfail on run because the reference data is missing.
  7172. 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
  7173. * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
  7174. * doc/xml/manual/status_cxx2014.xml: Likewise.
  7175. * doc/xml/manual/status_cxx2017.xml: Likewise.
  7176. * doc/html/manual/status.html: Regenerate.
  7177. 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
  7178. PR libstdc++/70303
  7179. * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
  7180. Return 0 if both iterators are value-initialized.
  7181. * testsuite/23_containers/deque/70303.cc: New test.
  7182. * testsuite/23_containers/vector/70303.cc: New test.
  7183. 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
  7184. * doc/xml/manual/status_cxx2011.xml: Update std::call_once
  7185. status.
  7186. * doc/xml/manual/status_cxx2014.xml: Likewise.
  7187. * doc/xml/manual/status_cxx2017.xml: Likewise. Update
  7188. std::from_chars and std::to_chars status. Fix formatting.
  7189. * doc/html/manual/status.html: Regenerate.
  7190. 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
  7191. * include/experimental/bits/numeric_traits.h: Update copyright
  7192. dates.
  7193. * include/experimental/bits/simd.h: Likewise.
  7194. * include/experimental/bits/simd_builtin.h: Likewise.
  7195. * include/experimental/bits/simd_converter.h: Likewise.
  7196. * include/experimental/bits/simd_detail.h: Likewise.
  7197. * include/experimental/bits/simd_fixed_size.h: Likewise.
  7198. * include/experimental/bits/simd_math.h: Likewise.
  7199. * include/experimental/bits/simd_neon.h: Likewise.
  7200. * include/experimental/bits/simd_ppc.h: Likewise.
  7201. * include/experimental/bits/simd_scalar.h: Likewise.
  7202. * include/experimental/bits/simd_x86.h: Likewise.
  7203. * include/experimental/bits/simd_x86_conversions.h: Likewise.
  7204. * include/experimental/simd: Likewise.
  7205. * testsuite/experimental/simd/*: Likewise.
  7206. 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
  7207. * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
  7208. * doc/html/*: Regenerate.
  7209. 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
  7210. * testsuite/experimental/simd/generate_makefile.sh: Use printf
  7211. instead of echo when printing escape characters.
  7212. 2021-01-27 Matthias Kretz <kretz@kde.org>
  7213. * scripts/check_simd: New file. This script is called from the
  7214. the check-simd target. It determines a set of compiler flags and
  7215. simulator setups for calling generate_makefile.sh and passes the
  7216. information back to the check-simd target, which recurses to the
  7217. generated Makefiles.
  7218. * scripts/create_testsuite_files: Remove files below simd/tests/
  7219. from testsuite_files and place them in testsuite_files_simd.
  7220. * testsuite/Makefile.am: Add testsuite_files_simd. Add
  7221. check-simd target.
  7222. * testsuite/Makefile.in: Regenerate.
  7223. * testsuite/experimental/simd/driver.sh: New file. This script
  7224. compiles and runs a given simd test, logging its output and
  7225. status. It uses the timeout command to implement compile and
  7226. test timeouts.
  7227. * testsuite/experimental/simd/generate_makefile.sh: New file.
  7228. This script generates a Makefile which uses driver.sh to compile
  7229. and run the tests and collect the logs into a single log file.
  7230. * testsuite/experimental/simd/tests/abs.cc: New file. Tests
  7231. abs(simd).
  7232. * testsuite/experimental/simd/tests/algorithms.cc: New file.
  7233. Tests min/max(simd, simd).
  7234. * testsuite/experimental/simd/tests/bits/conversions.h: New
  7235. file. Contains functions to support tests involving conversions.
  7236. * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
  7237. Support functions make_mask and make_vec.
  7238. * testsuite/experimental/simd/tests/bits/mathreference.h: New
  7239. file. Support functions to supply precomputed math function
  7240. reference data.
  7241. * testsuite/experimental/simd/tests/bits/metahelpers.h: New
  7242. file. Support code for SFINAE testing.
  7243. * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
  7244. * testsuite/experimental/simd/tests/bits/test_values.h: New
  7245. file. Test functions to easily drive a test with simd objects
  7246. initialized from a given list of values and a range of random
  7247. values.
  7248. * testsuite/experimental/simd/tests/bits/ulp.h: New file.
  7249. Support code to determine the ULP distance of simd objects.
  7250. * testsuite/experimental/simd/tests/bits/verify.h: New file.
  7251. Test framework for COMPARE'ing simd objects and instantiating
  7252. the test templates with value_type and ABI tag.
  7253. * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
  7254. simd broadcasts.
  7255. * testsuite/experimental/simd/tests/casts.cc: New file. Test
  7256. simd casts.
  7257. * testsuite/experimental/simd/tests/fpclassify.cc: New file.
  7258. Test floating-point classification functions.
  7259. * testsuite/experimental/simd/tests/frexp.cc: New file. Test
  7260. frexp(simd).
  7261. * testsuite/experimental/simd/tests/generator.cc: New file. Test
  7262. simd generator constructor.
  7263. * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
  7264. Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
  7265. * testsuite/experimental/simd/tests/integer_operators.cc: New
  7266. file. Test integer operators.
  7267. * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
  7268. New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
  7269. modf(simd).
  7270. * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
  7271. (converting) simd loads and stores.
  7272. * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
  7273. log*(simd).
  7274. * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
  7275. Test simd_mask broadcasts.
  7276. * testsuite/experimental/simd/tests/mask_conversions.cc: New
  7277. file. Test simd_mask conversions.
  7278. * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
  7279. file. Test simd_mask implicit conversions.
  7280. * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
  7281. Test simd_mask loads and stores.
  7282. * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
  7283. file. Test simd_mask operators convert as specified.
  7284. * testsuite/experimental/simd/tests/mask_operators.cc: New file.
  7285. Test simd_mask compares, subscripts, and negation.
  7286. * testsuite/experimental/simd/tests/mask_reductions.cc: New
  7287. file. Test simd_mask reductions.
  7288. * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
  7289. 1-arg math functions on simd.
  7290. * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
  7291. 2-arg math functions on simd.
  7292. * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
  7293. Test implicit conversions on simd binary operators behave as
  7294. specified.
  7295. * testsuite/experimental/simd/tests/operators.cc: New file. Test
  7296. simd compares, subscripts, not, unary minus, plus, minus,
  7297. multiplies, divides, increment, and decrement.
  7298. * testsuite/experimental/simd/tests/reductions.cc: New file.
  7299. Test reduce(simd).
  7300. * testsuite/experimental/simd/tests/remqo.cc: New file. Test
  7301. remqo(simd).
  7302. * testsuite/experimental/simd/tests/simd.cc: New file. Basic
  7303. sanity checks of simd types.
  7304. * testsuite/experimental/simd/tests/sincos.cc: New file. Test
  7305. sin(simd) and cos(simd).
  7306. * testsuite/experimental/simd/tests/split_concat.cc: New file.
  7307. Test split(simd) and concat(simd, simd).
  7308. * testsuite/experimental/simd/tests/splits.cc: New file. Test
  7309. split(simd_mask).
  7310. * testsuite/experimental/simd/tests/trigonometric.cc: New file.
  7311. Test remaining trigonometric functions on simd.
  7312. * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
  7313. file. Test trunc(simd), ceil(simd), and floor(simd).
  7314. * testsuite/experimental/simd/tests/where.cc: New file. Test
  7315. masked operations using where.
  7316. 2021-01-27 Matthias Kretz <kretz@kde.org>
  7317. * doc/xml/manual/status_cxx2017.xml: Add implementation status
  7318. of the Parallelism TS 2. Document implementation-defined types
  7319. and behavior.
  7320. * include/Makefile.am: Add new headers.
  7321. * include/Makefile.in: Regenerate.
  7322. * include/experimental/simd: New file. New header for
  7323. Parallelism TS 2.
  7324. * include/experimental/bits/numeric_traits.h: New file.
  7325. Implementation of P1841R1 using internal naming. Addition of
  7326. missing IEC559 functionality query.
  7327. * include/experimental/bits/simd.h: New file. Definition of the
  7328. public simd interfaces and general implementation helpers.
  7329. * include/experimental/bits/simd_builtin.h: New file.
  7330. Implementation of the _VecBuiltin simd_abi.
  7331. * include/experimental/bits/simd_converter.h: New file. Generic
  7332. simd conversions.
  7333. * include/experimental/bits/simd_detail.h: New file. Internal
  7334. macros for the simd implementation.
  7335. * include/experimental/bits/simd_fixed_size.h: New file. Simd
  7336. fixed_size ABI specific implementations.
  7337. * include/experimental/bits/simd_math.h: New file. Math
  7338. overloads for simd.
  7339. * include/experimental/bits/simd_neon.h: New file. Simd NEON
  7340. specific implementations.
  7341. * include/experimental/bits/simd_ppc.h: New file. Implement bit
  7342. shifts to avoid invalid results for integral types smaller than
  7343. int.
  7344. * include/experimental/bits/simd_scalar.h: New file. Simd scalar
  7345. ABI specific implementations.
  7346. * include/experimental/bits/simd_x86.h: New file. Simd x86
  7347. specific implementations.
  7348. * include/experimental/bits/simd_x86_conversions.h: New file.
  7349. x86 specific conversion optimizations. The conversion patterns
  7350. work around missing conversion patterns in the compiler and
  7351. should be removed as soon as PR85048 is resolved.
  7352. * testsuite/experimental/simd/standard_abi_usable.cc: New file.
  7353. Test that all (not all fixed_size<N>, though) standard simd and
  7354. simd_mask types are usable.
  7355. * testsuite/experimental/simd/standard_abi_usable_2.cc: New
  7356. file. As above but with -ffast-math.
  7357. * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
  7358. from the standard test loop. Instead use
  7359. check_vect_support_and_set_flags to build simd tests with the
  7360. relevant machine flags.
  7361. 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
  7362. PR libstdc++/66414
  7363. * include/bits/string_view.tcc
  7364. (basic_string_view::find(const CharT*, size_type, size_type)):
  7365. Optimize.
  7366. 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
  7367. * include/bits/basic_string.h (basic_string::contains): New
  7368. member functions.
  7369. * include/std/string_view (basic_string_view::contains):
  7370. Likewise.
  7371. * include/std/version (__cpp_lib_string_contains): Define.
  7372. * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
  7373. Remove trailing whitespace.
  7374. * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
  7375. Likewise.
  7376. * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
  7377. * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
  7378. * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
  7379. * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
  7380. * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
  7381. 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
  7382. * src/c++17/Makefile.in: Regenerate.
  7383. 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
  7384. * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
  7385. _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
  7386. __lc_type.
  7387. (const char* ctype<char>:: is): Same.
  7388. 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
  7389. PR libstdc++/98725
  7390. * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
  7391. write to a wide character stream if wide character support is
  7392. disabled in the library.
  7393. 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
  7394. * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
  7395. stringbuf not wstringbuf.
  7396. 2021-01-18 Jakub Jelinek <jakub@redhat.com>
  7397. PR debug/98708
  7398. * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
  7399. Compile with -gno-as-loc-support.
  7400. * src/c++11/Makefile.in: Regenerated.
  7401. 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
  7402. * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
  7403. Add -fcf-protection=none to -march=i486.
  7404. 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
  7405. * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
  7406. compliant.
  7407. 2021-01-14 Alexandre Oliva <oliva@adacore.com>
  7408. * testsuite/30_threads/future/members/poll.cc: Calibrate
  7409. iteration count.
  7410. 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
  7411. PR libstdc++/98466
  7412. * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
  7413. (_Node_iterator()): Make default.
  7414. (_Node_const_iterator()): Make default.
  7415. * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
  7416. iterator checks.
  7417. * include/debug/safe_iterator.h
  7418. (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
  7419. * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
  7420. Likewise.
  7421. * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
  7422. _M_singular checks on input iterators.
  7423. * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
  7424. checks.
  7425. * testsuite/23_containers/deque/debug/98466.cc: New test.
  7426. * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
  7427. 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
  7428. PR libstdc++/98471
  7429. * include/bits/fs_path.h (__throw_conversion_error): New
  7430. function to throw or abort on character conversion errors.
  7431. (__wstr_from_utf8): Move definition after filesystem_error has
  7432. been defined. Use __throw_conversion_error.
  7433. (path::_S_convert<_EcharT>): Use __throw_conversion_error.
  7434. (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
  7435. (path::u8string): Likewise.
  7436. 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
  7437. * include/std/barrier: Update copyright years. Fix whitespace.
  7438. * include/std/version: Fix whitespace.
  7439. * testsuite/30_threads/barrier/1.cc: Update copyright years.
  7440. * testsuite/30_threads/barrier/2.cc: Likewise.
  7441. * testsuite/30_threads/barrier/arrive.cc: Likewise.
  7442. * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
  7443. * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
  7444. * testsuite/30_threads/barrier/completion.cc: Likewise.
  7445. 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
  7446. * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
  7447. 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
  7448. PR libstdc++/98613
  7449. * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
  7450. warning.
  7451. * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
  7452. 2021-01-08 Olivier Hainque <hainque@adacore.com>
  7453. * testsuite/20_util/bind/ref_neg.cc: Tweak the
  7454. dg-prune-output regex for out-of-build-tree contexts.
  7455. 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
  7456. * doc/doxygen/user.cfg.in: Add new header.
  7457. * include/Makefile.am (std_headers): likewise.
  7458. * include/Makefile.in: Regenerate.
  7459. * include/precompiled/stdc++.h: Add new header.
  7460. * include/std/barrier: New file.
  7461. * include/std/version: Add __cpp_lib_barrier feature test macro.
  7462. * testsuite/30_threads/barrier/1.cc: New test.
  7463. * testsuite/30_threads/barrier/2.cc: Likewise.
  7464. * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
  7465. * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
  7466. * testsuite/30_threads/barrier/arrive.cc: Likewise.
  7467. * testsuite/30_threads/barrier/completion.cc: Likewise.
  7468. 2021-01-07 Patrick Palka <ppalka@redhat.com>
  7469. PR libstdc++/98384
  7470. * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
  7471. instead of the non-standard nextupl and nextdownl.
  7472. 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
  7473. * configure: Re-generate.
  7474. 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
  7475. * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
  7476. 2021-01-01 Jakub Jelinek <jakub@redhat.com>
  7477. * ChangeLog-2020: Rotate ChangeLog. New file.
  7478. Copyright (C) 2021 Free Software Foundation, Inc.
  7479. Copying and distribution of this file, with or without modification,
  7480. are permitted in any medium without royalty provided the copyright
  7481. notice and this notice are preserved.