ChangeLog-2020 356 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776
  1. 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com>
  2. * doc/xml/manual/abi.xml: Update link to Arm ABI.
  3. * doc/html/manual/abi.html: Regenerate.
  4. 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com>
  5. * doc/xml/manual/debug.xml: Move Valgrind references to https.
  6. * doc/html/manual/debug.html: Regenerate.
  7. 2020-12-26 Gerald Pfeifer <gerald@pfeifer.com>
  8. * doc/xml/manual/abi.xml: Update link to Intel's compatibility
  9. with GNU compilers document.
  10. * doc/html/manual/abi.html: Regenerate.
  11. 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com>
  12. * doc/xml/manual/messages.xml: Update link to Java docs.
  13. * doc/html/manual/facets.html: Ditto.
  14. 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com>
  15. * doc/xml/manual/documentation_hacking.xml: Convert three links
  16. to doxygen.nl to https.
  17. * doc/html/manual/documentation_hacking.html: Regenerate.
  18. 2020-12-23 Olivier Hainque <hainque@adacore.com>
  19. * testsuite/17_intro/names.cc: Account for VxWorks headers.
  20. 2020-12-21 Patrick Palka <ppalka@redhat.com>
  21. * include/bits/c++config (_GLIBCXX_FLOAT_IS_IEEE_BINARY_32):
  22. Define this macro.
  23. (_GLIBCXX_DOUBLE_IS_IEEE_BINARY_64): Likewise.
  24. * include/std/charconv (to_chars): Use these macros to
  25. conditionally hide the overloads for floating-point types.
  26. * src/c++17/floating_to_chars.cc: Use the macros to
  27. conditionally disable this file.
  28. (floating_type_traits<float>): Remove redundant static assert.
  29. (floating_type_traits<double>): Likewise.
  30. * testsuite/20_util/to_chars/double.cc: Run this test only on
  31. ieee-floats effective targets.
  32. * testsuite/20_util/to_chars/float.cc: Likewise.
  33. * testsuite/20_util/to_chars/long_double.cc: Likewise.
  34. * testsuite/lib/libstdc++.exp
  35. (check_effective_target_ieee-floats): Define new proc for
  36. detecting whether float and double have the IEEE binary32 and
  37. binary64 formats.
  38. 2020-12-20 Jonathan Wakely <jwakely@redhat.com>
  39. * include/std/semaphore: Fix indentation.
  40. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  41. PR libstdc++/98377
  42. * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
  43. Fix mistake.
  44. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  45. PR libstdc++/98370
  46. * src/c++17/floating_to_chars.cc (__floating_to_chars_shortest):
  47. Provide explicit template arguments to the call to std::max.
  48. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  49. PR libstdc++/98374
  50. * src/c++17/floating_to_chars.cc: Guard include of <langinfo.h>
  51. with __has_include.
  52. (__floating_to_chars_precision) [!defined(RADIXCHAR)]: Don't
  53. attempt to obtain the radix character of the current locale,
  54. just assume it's '.'.
  55. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  56. * src/c++17/floating_from_chars.cc (from_chars_impl)
  57. [!defined(FE_TONEAREST)]: Don't adjust the rounding mode.
  58. * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
  59. Likewise.
  60. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  61. * testsuite/20_util/to_chars/double.cc: New test, consisting of
  62. testcases imported from the MSVC STL testsuite.
  63. * testsuite/20_util/to_chars/float.cc: Likewise.
  64. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  65. * config/abi/pre/gnu.ver: Add new exports.
  66. * include/std/charconv (to_chars): Declare the floating-point
  67. overloads for float, double and long double.
  68. * src/c++17/Makefile.am (sources): Add floating_to_chars.cc.
  69. * src/c++17/Makefile.in: Regenerate.
  70. * src/c++17/floating_to_chars.cc: New file.
  71. (to_chars): Define for float, double and long double.
  72. * testsuite/20_util/to_chars/long_double.cc: New test.
  73. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  74. * src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c,
  75. src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c,
  76. src/c++17/ryu/d2s_intrinsics.h, src/c++17/ryu/f2s.c,
  77. src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c:
  78. Apply local modifications.
  79. 2020-12-18 Patrick Palka <ppalka@redhat.com>
  80. * src/c++17/ryu/MERGE: New file.
  81. * src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c,
  82. src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c,
  83. src/c++17/ryu/d2s_full_table.h, src/c++17/ryu/d2s_intrinsics.h,
  84. src/c++17/ryu/digit_table.h, src/c++17/ryu/f2s.c,
  85. src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c,
  86. src/c++17/ryu/generic_128.h, src/c++17/ryu/ryu_generic_128.h:
  87. Import these files from the Ryu library.
  88. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  89. * config/os/djgpp/error_constants.h: Test POSIX errno macros
  90. directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
  91. * config/os/mingw32-w64/error_constants.h: Likewise.
  92. * config/os/mingw32/error_constants.h: Likewise.
  93. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  94. * testsuite/lib/libstdc++.exp (check_v3_target_gthreads_timed):
  95. Fix condition for _GTHREAD_USE_MUTEX_TIMEDLOCK test.
  96. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  97. * src/c++11/mutex.cc (std::once_flag::_M_finish): Add
  98. maybe_unused attribute to variable used in assertion.
  99. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  100. PR libstdc++/98344
  101. * include/bits/semaphore_base.h: Fix preprocessor condition.
  102. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  103. * include/bits/std_thread.h (hash<thread::id>): Move here,
  104. from ...
  105. * include/std/thread (hash<thread::id>): ... here.
  106. 2020-12-17 Jonathan Wakely <jwakely@redhat.com>
  107. * config.h.in: Regenerate.
  108. * configure: Regenerate.
  109. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  110. * Makefile.in: Regenerate.
  111. * config.h.in: Regenerate.
  112. * config/abi/pre/gnu.ver: Make patterns less greedy.
  113. * config/os/gnu-linux/ldbl-ieee128-extra.ver: New file with patterns
  114. for IEEE128 long double symbols.
  115. * configure: Regenerate.
  116. * configure.ac: Enable alternative 128-bit long double format on
  117. powerpc64*-*-linux*.
  118. * doc/Makefile.in: Regenerate.
  119. * fragment.am: Regenerate.
  120. * include/Makefile.am: Set _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT.
  121. * include/Makefile.in: Regenerate.
  122. * include/bits/c++config: Define inline namespace for new long
  123. double symbols. Don't define _GLIBCXX_USE_FLOAT128 when it's the
  124. same type as long double.
  125. * include/bits/locale_classes.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
  126. (locale::_Impl::_M_init_extra_ldbl128): Declare new member function.
  127. * include/bits/locale_facets.h (_GLIBCXX_NUM_FACETS): Simplify by
  128. only counting narrow character facets.
  129. (_GLIBCXX_NUM_CXX11_FACETS): Likewise.
  130. (_GLIBCXX_NUM_LBDL_ALT128_FACETS): New.
  131. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] (num_get::__do_get): Define
  132. vtable placeholder for __ibm128 long double type.
  133. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  134. (num_get::__do_get): Declare vtable placeholder for __ibm128 long
  135. double type.
  136. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  137. (num_put::__do_put): Likewise.
  138. * include/bits/locale_facets.tcc
  139. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  140. (num_get::__do_get, num_put::__do_put): Define.
  141. * include/bits/locale_facets_nonio.h
  142. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  143. (money_get::__do_get): Declare vtable placeholder for __ibm128 long
  144. double type.
  145. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  146. (money_put::__do_put): Likewise.
  147. * include/bits/locale_facets_nonio.tcc
  148. [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__]
  149. (money_get::__do_get, money_put::__do_put): Define.
  150. * include/ext/numeric_traits.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]
  151. (__numeric_traits<__ibm128>, __numeric_traits<__ieee128>): Define.
  152. * libsupc++/Makefile.in: Regenerate.
  153. * po/Makefile.in: Regenerate.
  154. * python/Makefile.in: Regenerate.
  155. * src/Makefile.am: Add compatibility-ldbl-alt128.cc and
  156. compatibility-ldbl-alt128-cxx11.cc sources and recipes for objects.
  157. * src/Makefile.in: Regenerate.
  158. * src/c++11/Makefile.in: Regenerate.
  159. * src/c++11/compatibility-ldbl-alt128-cxx11.cc: New file defining
  160. symbols using the old 128-bit long double format, for the cxx11 ABI.
  161. * src/c++11/compatibility-ldbl-alt128.cc: Likewise, for the
  162. gcc4-compatible ABI.
  163. * src/c++11/compatibility-ldbl-facets-aliases.h: New header for long
  164. double compat aliases.
  165. * src/c++11/cow-locale_init.cc: Add comment.
  166. * src/c++11/cxx11-locale-inst.cc: Define C and C_is_char
  167. unconditionally.
  168. * src/c++11/cxx11-wlocale-inst.cc: Add sanity check. Include
  169. locale-inst.cc directly, not via cxx11-locale-inst.cc.
  170. * src/c++11/locale-inst-monetary.h: New header for monetary
  171. category instantiations.
  172. * src/c++11/locale-inst-numeric.h: New header for numeric category
  173. instantiations.
  174. * src/c++11/locale-inst.cc: Include new headers for monetary,
  175. numeric, and long double definitions.
  176. * src/c++11/wlocale-inst.cc: Remove long double compat aliases that
  177. are defined in new header now.
  178. * src/c++17/Makefile.am: Use -mabi=ibmlongdouble for
  179. floating_from_chars.cc.
  180. * src/c++17/Makefile.in: Regenerate.
  181. * src/c++17/floating_from_chars.cc (from_chars_impl): Add
  182. if-constexpr branch for __ieee128.
  183. (from_chars): Overload for __ieee128.
  184. * src/c++20/Makefile.in: Regenerate.
  185. * src/c++98/Makefile.in: Regenerate.
  186. * src/c++98/locale_init.cc (num_facets): Adjust calculation.
  187. (locale::_Impl::_Impl(size_t)): Call _M_init_extra_ldbl128.
  188. * src/c++98/localename.cc (num_facets): Adjust calculation.
  189. (locale::_Impl::_Impl(const char*, size_t)): Call
  190. _M_init_extra_ldbl128.
  191. * src/filesystem/Makefile.in: Regenerate.
  192. * testsuite/Makefile.in: Regenerate.
  193. * testsuite/util/testsuite_abi.cc: Add new symbol versions.
  194. Allow new symbols to be added to GLIBCXX_IEEE128_3.4.29 and
  195. CXXABI_IEEE128_1.3.13 too.
  196. * testsuite/26_numerics/complex/abi_tag.cc: Add u9__ieee128 to
  197. regex matching expected symbols.
  198. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  199. * include/std/utility: Use __has_builtin without checking if
  200. it's defined.
  201. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  202. * include/bits/c++config: Warn if __STRICT_ANSI__ state is
  203. inconsistent with __GLIBCXX_TYPE_INT_N_0.
  204. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  205. PR libstdc++/96083
  206. * include/ext/throw_allocator.h: Use __has_builtin to check for
  207. __builtin_sprintf support, and use std::sprintf if necessary.
  208. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  209. PR libstdc++/98319
  210. * include/experimental/random: Only define contents for C++14
  211. and later.
  212. * include/experimental/source_location: Likewise.
  213. * include/experimental/utility: Likewise.
  214. * testsuite/experimental/feat-lib-fund.cc: Include all LFTS
  215. headers that are present. Allow test to run for all modes.
  216. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  217. PR libstdc++/46447
  218. * testsuite/performance/29_atomics/atomic_flag.cc: New test.
  219. 2020-12-16 Jonathan Wakely <jwakely@redhat.com>
  220. PR libstdc++/93151
  221. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove.
  222. * configure.ac: Regenerate.
  223. * config/os/generic/error_constants.h: Test POSIX errno macros
  224. directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
  225. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
  226. Likewise.
  227. * testsuite/19_diagnostics/headers/system_error/93151.cc: New
  228. test.
  229. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  230. Revert:
  231. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  232. PR libstdc++/98108
  233. * include/std/iostream (__ioinit): Add init_priority attribute.
  234. 2020-12-15 Keith Packard <keithp@keithp.com>
  235. * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Allow "stdio_pure"
  236. option and define _GLIBCXX_USE_PURE_STDIO when it is used. Also
  237. add "stdio_posix" option as an alias for "stdio".
  238. * config/io/basic_file_stdio.cc [_GLIBCXX_USE_PURE_STDIO]: Only
  239. use defined stdio entry points for all I/O operations, without
  240. direct calls to underlying POSIX functions.
  241. * config.h.in: Regenerate.
  242. * configure: Regenerate.
  243. 2020-12-15 Ville Voutilainen <ville.voutilainen@gmail.com>
  244. * testsuite/27_io/rvalue_streams.cc: Run the extraction to a char*
  245. for C++17 and lower only.
  246. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  247. * testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
  248. Add dg-timeout-factor directive.
  249. * testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc:
  250. Increase timeout factor from 2.0 to 3.0.
  251. * testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc:
  252. Likewise.
  253. * testsuite/lib/libstdc++.exp (check_effective_target_debug-mode):
  254. Define "debug-mode" as an effective-target keyword.
  255. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  256. * include/bits/c++config (__glibcxx_assert_1): Define as empty
  257. for C++11.
  258. 2020-12-15 Marius Hillenbrand <mhillen@linux.ibm.com>
  259. * testsuite/22_locale/locale/cons/5.cc: Add missing directives
  260. for required locales.
  261. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  262. * include/bits/iterator_concepts.h (incrementable_traits<Tp>):
  263. Remove workaround for PR c++/78173.
  264. 2020-12-15 Vladimir Vishnevsky <vv.os.swe@gmail.com>
  265. * configure.ac: Skip AC_LIBTOOL_DLOPEN check if avr-libc is used.
  266. * configure: Regenerate.
  267. 2020-12-15 Jonathan Wakely <jwakely@redhat.com>
  268. PR libstdc++/98108
  269. * include/std/iostream (__ioinit): Add init_priority attribute.
  270. 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com>
  271. * doc/xml/manual/codecvt.xml: Update link to Unicode-HOWTO.
  272. * doc/html/manual/facets.html: Regenerate.
  273. 2020-12-14 François Dumont <fdumont@gcc.gnu.org>
  274. * testsuite/23_containers/array/debug/back1_neg.cc: Target c++14 because assertion
  275. is disabled in C++11.
  276. * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
  277. * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: Likewise.
  278. 2020-12-14 Martin Sebor <msebor@redhat.com>
  279. * testsuite/ext/vstring/requirements/exception/basic.cc: Suppress
  280. a false positive warning.
  281. * testsuite/ext/vstring/requirements/exception/propagation_consistent.cc:
  282. Same.
  283. 2020-12-14 François Dumont <fdumont@gcc.gnu.org>
  284. * testsuite/23_containers/array/debug/back2_neg.cc: target c++14 because assertion
  285. for constexpr is disabled in C++11.
  286. * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
  287. * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: Likewise.
  288. * testsuite/23_containers/vector/debug/multithreaded_swap.cc: Include <memory>
  289. for shared_ptr.
  290. 2020-12-12 François Dumont <fdumont@gcc.gnu.org>
  291. * include/debug/macros.h (__glibcxx_check_can_increment_range): Replace
  292. _GLIBCXX_DEBUG_VERIFY_COND_AT usage with _GLIBCXX_DEBUG_VERIFY_AT_F.
  293. (__glibcxx_check_can_decrement_range): Likewise.
  294. * testsuite/25_algorithms/copy_backward/constexpr.cc (test03): New.
  295. * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: New test.
  296. * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: New test.
  297. * testsuite/25_algorithms/equal/constexpr_neg.cc: New test.
  298. * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: New test.
  299. 2020-12-10 Jonathan Wakely <jwakely@redhat.com>
  300. PR libstdc++/98226
  301. * include/std/bit (__countl_one, __countr_one): Remove redundant
  302. branches.
  303. 2020-12-09 Jonathan Wakely <jwakely@redhat.com>
  304. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Define NO_SLEEP
  305. if none of nanosleep, sleep and Sleep is available.
  306. * config.h.in: Regenerate.
  307. * configure: Regenerate.
  308. * include/std/thread [_GLIBCXX_NO_SLEEP] (__sleep_for): Do
  309. not declare.
  310. [_GLIBCXX_NO_SLEEP] (sleep_for, sleep_until): Do not
  311. define.
  312. * src/c++11/thread.cc [_GLIBCXX_NO_SLEEP] (__sleep_for): Do
  313. not define.
  314. 2020-12-08 Jason Merrill <jason@redhat.com>
  315. PR c++/96299
  316. * testsuite/18_support/comparisons/algorithms/partial_order.cc:
  317. One more line needs to use VERIFY instead of static_assert.
  318. 2020-12-08 Jonathan Wakely <jwakely@redhat.com>
  319. * doc/xml/manual/appendix_contributing.xml: Use consistent
  320. indentation.
  321. * doc/html/manual/source_code_style.html: Regenerate.
  322. 2020-12-05 Iain Sandoe <iain@sandoe.co.uk>
  323. PR target/97865
  324. * configure: Regenerate.
  325. 2020-12-04 Jakub Jelinek <jakub@redhat.com>
  326. PR c++/80780
  327. * testsuite/18_support/source_location/1.cc (main): Adjust for
  328. __builtin_source_location using __PRETTY_FUNCTION__-like names instead
  329. __FUNCTION__-like.
  330. * testsuite/18_support/source_location/consteval.cc (main): Likewise.
  331. 2020-12-03 Martin Sebor <msebor@redhat.com>
  332. * testsuite/ext/vstring/modifiers/clear/56166.cc: Suppress a false
  333. positive warning.
  334. 2020-12-03 Jonathan Wakely <jwakely@redhat.com>
  335. * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Remove stray
  336. word from copy&paste.
  337. * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
  338. 2020-12-03 Jonathan Wakely <jwakely@redhat.com>
  339. * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
  340. * doc/html/*: Regenerate.
  341. 2020-12-03 JeanHeyd Meneide <phdofthehouse@gmail.com>
  342. * doc/doxygen/user.cfg.in (INPUT): Add <source_location>.
  343. * include/Makefile.am: Add <source_location>.
  344. * include/Makefile.in: Regenerate.
  345. * include/std/version (__cpp_lib_source_location): Define.
  346. * include/std/source_location: New file.
  347. * testsuite/18_support/source_location/1.cc: New test.
  348. * testsuite/18_support/source_location/consteval.cc: New test.
  349. * testsuite/18_support/source_location/srcloc.h: New test.
  350. * testsuite/18_support/source_location/version.cc: New test.
  351. 2020-12-03 Jonathan Wakely <jwakely@redhat.com>
  352. PR libstdc++/93121
  353. * include/std/bit (__cpp_lib_bit_cast, bit_cast): Define.
  354. * include/std/version (__cpp_lib_bit_cast): Define.
  355. * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: New test.
  356. * testsuite/26_numerics/bit/bit.cast/version.cc: New test.
  357. 2020-12-03 Jonathan Wakely <jwakely@redhat.com>
  358. * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt:
  359. Update.
  360. * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
  361. Update.
  362. 2020-12-03 Jonathan Wakely <jwakely@redhat.com>
  363. * include/std/array (array::operator[](size_t) const, array::front() const)
  364. (array::back() const) [__cplusplus == 201103]: Disable
  365. assertions.
  366. * testsuite/23_containers/array/element_access/constexpr_element_access.cc:
  367. Check for correct values.
  368. * testsuite/23_containers/array/tuple_interface/get_neg.cc:
  369. Adjust dg-error line numbers.
  370. * testsuite/23_containers/array/debug/constexpr_c++11.cc: New test.
  371. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  372. PR libstdc++/65480
  373. PR libstdc++/68735
  374. * python/libstdcxx/v6/printers.py (function_pointer_to_name):
  375. New helper function to get the name of a function from its
  376. address.
  377. (StdExpAnyPrinter.__init__): Use it.
  378. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  379. * testsuite/lib/dg-options.exp (add_options_for_libatomic):
  380. Replace powerpc-ibm-aix* and powerpc*-*-darwin* with check for
  381. powerpc && ilp32.
  382. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  383. * testsuite/27_io/basic_istream/ignore/char/94749.cc: Add
  384. dg-timeout-factor for ilp32 targets.
  385. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
  386. Likewise.
  387. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  388. * include/ext/rope (rope::_S_concat_char_iter)
  389. (rope::_S_destr_concat_char_iter): Add allocator parameter.
  390. (rope::push_back, rope::append, rope::insert, operator+):
  391. Pass allocator.
  392. * include/ext/ropeimpl.h (rope::_S_concat_char_iter)
  393. (rope::_S_destr_concat_char_iter): Add allocator parameter
  394. and use it.
  395. (_Rope_char_ref_proxy::operator=(_CharT)): Pass allocator.
  396. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  397. * include/ext/rope: Fix indentation of access specifiers.
  398. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  399. * include/bits/atomic_timed_wait.h: Use #if instead of #ifdef.
  400. * include/bits/semaphore_base.h: Likewise.
  401. * include/std/version: Remove trailing whitespace.
  402. 2020-12-02 Jonathan Wakely <jwakely@redhat.com>
  403. * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the
  404. name of the type and pass it to the iterator.
  405. (StdPathPrinter): Likewise.
  406. * testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test.
  407. 2020-12-01 Thomas Rodgers <trodgers@redhat.com>
  408. * include/bits/atomic_base.h: Replace usage of
  409. _GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait.
  410. * include/bits/atomic_timed_wait.h: Likewise.
  411. * include/bits/atomic_wait.h: Define __cpp_lib_atomic_wait
  412. feature test macro.
  413. * include/bits/semaphore_base.h: Replace usage of
  414. _GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait.
  415. * include/std/atomic: Likewise.
  416. * include/std/latch: Likewise.
  417. * include/std/semaphore: Likewise.
  418. * include/std/version: Define __cpp_lib_atomic wait
  419. feature test macro and replace usage of
  420. _GLIBCXX_HAVE_ATOMIC_WAIT.
  421. * testsuite/29_atomics/atomic/wait_notify/1.cc: New test.
  422. * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
  423. 2020-12-01 Michael Weghorn <m.weghorn@posteo.de>
  424. * python/libstdcxx/v6/printers.py (StdBitIteratorPrinter)
  425. (StdBitReferencePrinter): Add pretty-printers for
  426. _Bit_reference, _Bit_iterator and _Bit_const_iterator.
  427. * testsuite/libstdc++-prettyprinters/simple.cc: Test
  428. std::_Bit_reference, std::_Bit_iterator and
  429. std::_Bit_const_iterator.
  430. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
  431. 2020-12-01 Jonathan Wakely <jwakely@redhat.com>
  432. * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Define macro to
  433. work around different implementations of __has_builtin.
  434. (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
  435. (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE)
  436. (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED)
  437. (_GLIBCXX_HAVE_BUILTIN_IS_SAME, _GLIBCXX_HAVE_BUILTIN_LAUNDER):
  438. Define using _GLIBCXX_HAS_BUILTIN.
  439. 2020-12-01 Jonathan Wakely <jwakely@redhat.com>
  440. * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Add
  441. dg-timeout-factor directive.
  442. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc:
  443. Likewise.
  444. 2020-12-01 Jonathan Wakely <jwakely@redhat.com>
  445. PR libstdc++/98003
  446. * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Add options for
  447. libatomic.
  448. 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
  449. * doc/doxygen/user.cfg.in (INPUT): Add <latch> and <semaphore>.
  450. 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
  451. * testsuite/lib/libstdc++.exp (libstdc++_init): Reduce
  452. default tool_timeout to 360.
  453. 2020-11-30 Jonathan Wakely <jwakely@redhat.com>
  454. * testsuite/20_util/specialized_algorithms/pstl/*: Add
  455. dg-timeout-factor.
  456. * testsuite/25_algorithms/pstl/*: Likewise.
  457. * testsuite/26_numerics/pstl/*: Likewise.
  458. * testsuite/28_regex/*: Likewise.
  459. 2020-11-29 John David Anglin <danglin@gcc.gnu.org>
  460. * configure: Regenerate.
  461. 2020-11-27 Jonathan Wakely <jwakely@redhat.com>
  462. * testsuite/lib/libstdc++.exp (v3_try_preprocess): Define
  463. new proc to preprocess a chunk of code.
  464. (v3_check_preprocessor_condition): Define new proc to test
  465. a preprocessor condition depending on GCC or libstdc++ macros.
  466. (check_v3_target_debug_mode, check_v3_target_normal_mode):
  467. Use v3_try_preprocess.
  468. (check_v3_target_normal_namespace)
  469. (check_v3_target_parallel_mode, check_v3_target_cstdint)
  470. (check_v3_target_cmath, check_v3_target_atomic_builtins)
  471. (check_v3_target_gthreads, check_v3_target_gthreads_timed)
  472. (check_v3_target_sleep, check_v3_target_sched_yield)
  473. (check_v3_target_string_conversions, check_v3_target_swprintf)
  474. (check_v3_target_binary_io, check_v3_target_nprocs): Use
  475. v3_check_preprocessor_condition.
  476. (check_effective_target_cxx11): Likewise.
  477. (check_effective_target_random_device): Likewise.
  478. (check_effective_target_tbb-backend): Likewise.
  479. (check_effective_target_futex): Likewise.
  480. (check_v3_target_little_endian) Call check_effective_target_le.
  481. (check_effective_target_atomic-builtins): New proc to define
  482. new effective-target keyword.
  483. (check_effective_target_gthreads-timed): Likewise.
  484. 2020-11-27 Jonathan Wakely <jwakely@redhat.com>
  485. * testsuite/27_io/filesystem/operations/absolute.cc: Avoid
  486. -Wrange-loop-construct warning.
  487. * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
  488. * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
  489. * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
  490. * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
  491. * testsuite/27_io/filesystem/path/decompose/extension.cc:
  492. Likewise.
  493. * testsuite/27_io/filesystem/path/decompose/filename.cc:
  494. Likewise.
  495. * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
  496. Likewise.
  497. * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
  498. Likewise.
  499. * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
  500. Likewise.
  501. * testsuite/27_io/filesystem/path/decompose/root_path.cc:
  502. Likewise.
  503. * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
  504. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
  505. Likewise.
  506. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
  507. Likewise.
  508. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
  509. Likewise.
  510. * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
  511. * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
  512. * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
  513. Likewise.
  514. * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
  515. Likewise.
  516. * testsuite/27_io/filesystem/path/query/has_extension.cc:
  517. Likewise.
  518. * testsuite/27_io/filesystem/path/query/has_filename.cc:
  519. Likewise.
  520. * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
  521. Likewise.
  522. * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
  523. Likewise.
  524. * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
  525. Likewise.
  526. * testsuite/27_io/filesystem/path/query/has_root_name.cc:
  527. Likewise.
  528. * testsuite/27_io/filesystem/path/query/has_root_path.cc:
  529. Likewise.
  530. * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
  531. * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
  532. * testsuite/experimental/filesystem/operations/absolute.cc:
  533. Likewise.
  534. * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
  535. * testsuite/experimental/filesystem/path/compare/path.cc:
  536. Likewise.
  537. * testsuite/experimental/filesystem/path/construct/copy.cc:
  538. Likewise.
  539. * testsuite/experimental/filesystem/path/decompose/extension.cc:
  540. Likewise.
  541. * testsuite/experimental/filesystem/path/decompose/filename.cc:
  542. Likewise.
  543. * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
  544. Likewise.
  545. * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
  546. Likewise.
  547. * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
  548. Likewise.
  549. * testsuite/experimental/filesystem/path/decompose/root_path.cc:
  550. Likewise.
  551. * testsuite/experimental/filesystem/path/itr/traversal.cc:
  552. Likewise.
  553. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
  554. Likewise.
  555. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
  556. Likewise.
  557. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
  558. Likewise.
  559. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
  560. Likewise.
  561. * testsuite/experimental/filesystem/path/query/has_extension.cc:
  562. Likewise.
  563. * testsuite/experimental/filesystem/path/query/has_filename.cc:
  564. Likewise.
  565. * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
  566. Likewise.
  567. * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
  568. Likewise.
  569. * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
  570. Likewise.
  571. * testsuite/experimental/filesystem/path/query/has_root_name.cc:
  572. Likewise.
  573. * testsuite/experimental/filesystem/path/query/has_root_path.cc:
  574. Likewise.
  575. * testsuite/experimental/filesystem/path/query/has_stem.cc:
  576. Likewise.
  577. * testsuite/experimental/filesystem/path/query/is_relative.cc:
  578. Likewise.
  579. 2020-11-27 Jonathan Wakely <jwakely@redhat.com>
  580. * src/c++98/locale.cc (locale::facet::_S_get_c_locale()):
  581. Revert change to use __is_single_threaded.
  582. * src/c++98/locale_init.cc (locale::_S_initialize()):
  583. Likewise.
  584. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  585. * include/bits/atomic_wait.h (_GLIBCXX_HAVE_ATOMIC_WAIT):
  586. Define.
  587. * include/bits/atomic_base.h: Check _GLIBCXX_HAVE_ATOMIC_WAIT.
  588. * include/bits/atomic_timed_wait.h: Likewise.
  589. * include/bits/semaphore_base.h: Likewise.
  590. * include/std/atomic: Likewise.
  591. * include/std/latch: Likewise.
  592. * include/std/semaphore: Likewise.
  593. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  594. * include/std/latch: Depend on _GLIBCXX_HAS_GTHREADS and
  595. _GLIBCXX_HAVE_LINUX_FUTEX.
  596. * include/std/version (__cpp_lib_latch): Define conditionally.
  597. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  598. * testsuite/lib/libstdc++.exp (check_effective_target_gthreads):
  599. Call check_v3_target_gthreads not check_v3_target_gthreads_timed.
  600. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  601. * testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
  602. Add dg-timeout-factor directive.
  603. * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
  604. Likewise.
  605. * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc:
  606. Likewise.
  607. * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
  608. Likewise.
  609. * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
  610. Likewise.
  611. * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
  612. Likewise.
  613. * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc:
  614. Likewise.
  615. * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
  616. Likewise.
  617. * testsuite/28_regex/algorithms/regex_search/61720.cc: Likewise.
  618. * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
  619. Likewise.
  620. * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
  621. Likewise.
  622. * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
  623. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  624. * testsuite/lib/libstdc++.exp (libstdc++_init): Only set
  625. tool_timeout if it hasn't been set by the user already.
  626. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  627. PR libstdc++/97936
  628. * testsuite/29_atomics/atomic/wait_notify/bool.cc: Fix missed
  629. notifications by making the new thread wait until the parent
  630. thread is waiting on the condition variable.
  631. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  632. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  633. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
  634. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  635. * testsuite/18_support/96817.cc: Use new effective-target
  636. keywords to select supported targets more effectively.
  637. * testsuite/30_threads/call_once/66146.cc: Likewise.
  638. * testsuite/lib/libstdc++.exp (check_effective_target_futex):
  639. Define new proc.
  640. (check_effective_target_gthreads): Define new proc to replace
  641. dg-require-gthreads.
  642. 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  643. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Remove libposix4
  644. references.
  645. <solaris*>: Don't use -lrt any longer.
  646. * configure: Regenerate.
  647. * doc/xml/manual/configure.xml (--enable-libstdcxx-time=OPTION):
  648. Remove libposix4 reference.
  649. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  650. PR libstdc++/98001
  651. * testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid
  652. FILE* to constructor.
  653. 2020-11-26 Jonathan Wakely <jwakely@redhat.com>
  654. * include/precompiled/stdc++.h: Add new headers.
  655. * include/std/stop_token: Include <semaphore> unconditionally.
  656. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  657. * include/bits/atomic_timed_wait.h (__cond_wait_until): Do not
  658. perform redundant conversions to the same clock.
  659. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  660. * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
  661. Do not define when _GLIBCXX_HAVE_LINUX_FUTEX is defined. Use
  662. __condvar and mutex instead of __gthread_cond_t and
  663. unique_lock<mutex>.
  664. (__cond_wait_until): Likewise. Fix test for return value of
  665. __cond_wait_until_impl.
  666. (__timed_waiters::_M_do_wait_until): Use __condvar instead
  667. of __gthread_cond_t.
  668. * include/bits/atomic_wait.h: Remove <bits/unique_lock.h>
  669. include. Only include <bits/std_mutex.h> if not using futexes.
  670. (__platform_wait_max_value): Remove unused variable.
  671. (__waiters::lock_t): Use lock_guard instead of unique_lock.
  672. (__waiters::_M_cv): Use __condvar instead of __gthread_cond_t.
  673. (__waiters::_M_do_wait(__platform_wait_t)): Likewise.
  674. (__waiters::_M_notify()): Likewise. Use notify_one() if not
  675. asked to notify all.
  676. * include/bits/std_mutex.h (__condvar): New type.
  677. * include/std/condition_variable (condition_variable::_M_cond)
  678. (condition_variable::wait_until): Use __condvar instead of
  679. __gthread_cond_t.
  680. * src/c++11/condition_variable.cc (condition_variable): Define
  681. default constructor and destructor as defaulted.
  682. (condition_variable::wait, condition_variable::notify_one)
  683. (condition_variable::notify_all): Forward to corresponding
  684. member function of __condvar.
  685. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  686. PR libstdc++/97936
  687. * testsuite/29_atomics/atomic/wait_notify/bool.cc: Re-eneable
  688. test.
  689. * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
  690. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  691. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  692. * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
  693. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
  694. * testsuite/util/atomic/wait_notify_util.h: Fix missed
  695. notifications by making the new thread wait until the parent
  696. thread is waiting on the condition variable.
  697. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  698. PR libstdc++/97935
  699. * include/bits/iterator_concepts.h (__detail::__iter_without_category):
  700. New helper concept.
  701. (__iterator_traits::__cat): Use __detail::__iter_without_category.
  702. * testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
  703. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  704. * testsuite/17_intro/names.cc: Do not test 'v' on AIX.
  705. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  706. PR libstdc++/97936
  707. * include/bits/atomic_wait.h (__platform_wait): Check errno,
  708. not just the value of EAGAIN.
  709. (__waiters::__waiters()): Fix name of data member.
  710. 2020-11-25 Jonathan Wakely <jwakely@redhat.com>
  711. PR libstdc++/97936
  712. * include/bits/atomic_wait.h (__platform_wait): Return if futex
  713. sets EAGAIN.
  714. * testsuite/30_threads/latch/3.cc: Re-enable test.
  715. * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
  716. 2020-11-24 Jonathan Wakely <jwakely@redhat.com>
  717. PR libstdc++/97936
  718. PR libstdc++/97944
  719. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Disable.
  720. Do not require pthreads, but add -pthread when appropriate.
  721. * testsuite/30_threads/jthread/95989.cc: Likewise.
  722. * testsuite/30_threads/latch/3.cc: Likewise.
  723. * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
  724. 2020-11-24 Jonathan Wakely <jwakely@redhat.com>
  725. * testsuite/30_threads/jthread/95989.cc: Run all three test
  726. functions, not just the first one twice.
  727. 2020-11-24 Jonathan Wakely <jwakely@redhat.com>
  728. PR libstdc++/67791
  729. * src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())):
  730. Check that gthreads is available before calling __gthread_create.
  731. 2020-11-24 Jonathan Wakely <jwakely@redhat.com>
  732. * src/c++98/locale.cc (locale::facet::_S_get_c_locale())
  733. (locale::id::_M_id() const): Use __is_single_threaded.
  734. * src/c++98/locale_init.cc (locale::_S_initialize()):
  735. Likewise.
  736. 2020-11-23 Jonathan Wakely <jwakely@redhat.com>
  737. * include/bits/semaphore_base.h
  738. (__platform_semaphore::_M_try_acquire_until): Fix type of
  739. variable.
  740. 2020-11-23 Stephan Bergmann <sbergman@redhat.com>
  741. * include/bits/atomic_wait.h (__thread_relax, __thread_yield):
  742. Add 'inline'.
  743. 2020-11-23 Jonathan Wakely <jwakely@redhat.com>
  744. * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for
  745. * config.h.in: Regenerate.
  746. * configure: Regenerate.
  747. * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
  748. Check autoconf macro instead of defining it here.
  749. 2020-11-23 Jonathan Wakely <jwakely@redhat.com>
  750. * include/bits/atomic_wait.h: Do not define anything unless
  751. gthreads or futexes are available.
  752. * include/bits/atomic_timed_wait.h: Likewise.
  753. * include/bits/semaphore_base.h: Likewise.
  754. * include/std/semaphore: Likewise.
  755. * include/bits/atomic_base.h (atomic_flag::wait)
  756. (atomic_flag::notify_one, atomic_flag::notify_all)
  757. (__atomic_base<I>::wait, __atomic_base<I>::notify_one)
  758. (__atomic_base<I>::notify_all, __atomic_base<P*>::wait)
  759. (__atomic_base<P*>::notify_one, __atomic_base<P*>::notify_all)
  760. (__atomic_impl::wait, __atomic_impl::notify_one)
  761. (__atomic_impl::notify_all, __atomic_float::wait)
  762. (__atomic_float::notify_one, __atomic_float::notify_all)
  763. (__atomic_ref::wait, __atomic_ref::notify_one)
  764. (__atomic_ref::notify_all): Only define if gthreads or futexes
  765. are available.
  766. * include/std/atomic (atomic::wait, atomic::notify_one)
  767. (atomic::notify_all): Likewise.
  768. * include/std/version (__cpp_lib_semaphore): Define
  769. conditionally.
  770. 2020-11-23 Jonathan Wakely <jwakely@redhat.com>
  771. PR libstdc++/97948
  772. * testsuite/29_atomics/atomic_float/wait_notify.cc: Add options
  773. for libatomic.
  774. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
  775. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
  776. 2020-11-21 Jonathan Wakely <jwakely@redhat.com>
  777. * include/bits/atomic_base.h (atomic_flag::wait): Use correct
  778. type for __atomic_wait call.
  779. * include/bits/atomic_timed_wait.h (__atomic_wait_until): Check
  780. _GLIBCXX_HAVE_LINUX_FUTEX.
  781. * include/bits/atomic_wait.h (__atomic_notify): Likewise.
  782. * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
  783. Only define if SEM_VALUE_MAX or _POSIX_SEM_VALUE_MAX is defined.
  784. * testsuite/29_atomics/atomic/wait_notify/bool.cc: Disable on
  785. non-linux targes.
  786. * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
  787. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  788. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  789. * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
  790. 2020-11-20 Thomas Rodgers <trodgers@redhat.com>
  791. * include/Makefile.am (bits_headers): Add new header.
  792. * include/Makefile.in: Regenerate.
  793. * include/bits/atomic_base.h (__atomic_flag::wait): Define.
  794. (__atomic_flag::notify_one): Likewise.
  795. (__atomic_flag::notify_all): Likewise.
  796. (__atomic_base<_Itp>::wait): Likewise.
  797. (__atomic_base<_Itp>::notify_one): Likewise.
  798. (__atomic_base<_Itp>::notify_all): Likewise.
  799. (__atomic_base<_Ptp*>::wait): Likewise.
  800. (__atomic_base<_Ptp*>::notify_one): Likewise.
  801. (__atomic_base<_Ptp*>::notify_all): Likewise.
  802. (__atomic_impl::wait): Likewise.
  803. (__atomic_impl::notify_one): Likewise.
  804. (__atomic_impl::notify_all): Likewise.
  805. (__atomic_float<_Fp>::wait): Likewise.
  806. (__atomic_float<_Fp>::notify_one): Likewise.
  807. (__atomic_float<_Fp>::notify_all): Likewise.
  808. (__atomic_ref<_Tp>::wait): Likewise.
  809. (__atomic_ref<_Tp>::notify_one): Likewise.
  810. (__atomic_ref<_Tp>::notify_all): Likewise.
  811. (atomic_wait<_Tp>): Likewise.
  812. (atomic_wait_explicit<_Tp>): Likewise.
  813. (atomic_notify_one<_Tp>): Likewise.
  814. (atomic_notify_all<_Tp>): Likewise.
  815. * include/bits/atomic_wait.h: New file.
  816. * include/bits/atomic_timed_wait.h: New file.
  817. * include/bits/semaphore_base.h: New file.
  818. * include/std/atomic (atomic<bool>::wait): Define.
  819. (atomic<bool>::wait_one): Likewise.
  820. (atomic<bool>::wait_all): Likewise.
  821. (atomic<_Tp>::wait): Likewise.
  822. (atomic<_Tp>::wait_one): Likewise.
  823. (atomic<_Tp>::wait_all): Likewise.
  824. (atomic<_Tp*>::wait): Likewise.
  825. (atomic<_Tp*>::wait_one): Likewise.
  826. (atomic<_Tp*>::wait_all): Likewise.
  827. * include/std/latch: New file.
  828. * include/std/semaphore: New file.
  829. * include/std/version: Add __cpp_lib_semaphore and
  830. __cpp_lib_latch defines.
  831. * testsuite/29_atomics/atomic/wait_notify/bool.cc: New test.
  832. * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
  833. * testsuite/29_atomics/atomic/wait_notify/generic.cc: Liekwise.
  834. * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
  835. * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
  836. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
  837. * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
  838. * testsuite/30_threads/semaphore/1.cc: New test.
  839. * testsuite/30_threads/semaphore/2.cc: Likewise.
  840. * testsuite/30_threads/semaphore/least_max_value_neg.cc: Likewise.
  841. * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
  842. * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
  843. * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
  844. * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
  845. * testsuite/30_threads/latch/1.cc: New test.
  846. * testsuite/30_threads/latch/2.cc: New test.
  847. * testsuite/30_threads/latch/3.cc: New test.
  848. * testsuite/util/atomic/wait_notify_util.h: New File.
  849. 2020-11-20 François Dumont <fdumont@gcc.gnu.org>
  850. PR libstdc++/83938
  851. * include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len
  852. computation in the loop to avoid truncation.
  853. * include/bits/stl_algo.h:
  854. (__inplace_merge): Take temporary buffer length from smallest range.
  855. (__stable_sort): Limit temporary buffer length.
  856. * testsuite/25_algorithms/inplace_merge/1.cc (test4): New.
  857. * testsuite/performance/25_algorithms/stable_sort.cc: Test stable_sort
  858. under different heap memory conditions.
  859. * testsuite/performance/25_algorithms/inplace_merge.cc: New test.
  860. 2020-11-20 François Dumont <fdumont@gcc.gnu.org>
  861. * include/bits/move.h (_GLIBCXX_FWDREF): New.
  862. * include/bits/stl_tree.h: Adapt to use latter.
  863. (_Rb_tree<>::_M_clone_node): Add _MoveValue template parameter.
  864. (_Rb_tree<>::_M_mbegin): New.
  865. (_Rb_tree<>::_M_begin): Use latter.
  866. (_Rb_tree<>::_M_copy): Add _MoveValues template parameter.
  867. * testsuite/23_containers/map/allocator/move_cons.cc: New test.
  868. * testsuite/23_containers/multimap/allocator/move_cons.cc: New test.
  869. * testsuite/23_containers/multiset/allocator/move_cons.cc: New test.
  870. * testsuite/23_containers/set/allocator/move_cons.cc: New test.
  871. 2020-11-20 Jonathan Wakely <jwakely@redhat.com>
  872. PR libstdc++/92546
  873. * include/std/regex (pmr::smatch, pmr::wsmatch): Declare using
  874. underlying __normal_iterator type, not nested typedef
  875. basic_string::const_iterator.
  876. 2020-11-19 Jonathan Wakely <jwakely@redhat.com>
  877. PR libstdc++/95989
  878. * config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
  879. Define new macro to get reliable thread ID.
  880. * include/bits/std_thread.h: (this_thread::get_id): Use new
  881. macro if it's defined.
  882. * testsuite/30_threads/jthread/95989.cc: New test.
  883. * testsuite/30_threads/this_thread/95989.cc: New test.
  884. 2020-11-19 Jonathan Wakely <jwakely@redhat.com>
  885. * testsuite/30_threads/async/async.cc: Include <thread>.
  886. * testsuite/30_threads/future/members/93456.cc: Likewise.
  887. 2020-11-19 Jonathan Wakely <jwakely@redhat.com>
  888. PR libstdc++/92546
  889. * include/Makefile.am: Add new <bits/std_thread.h> header.
  890. * include/Makefile.in: Regenerate.
  891. * include/std/future: Include new header instead of <thread>.
  892. * include/std/stop_token: Include new header instead of
  893. <bits/gthr.h>.
  894. (stop_token::_S_yield()): Use this_thread::yield().
  895. (_Stop_state_t::_M_requester): Change type to std::thread::id.
  896. (_Stop_state_t::_M_request_stop()): Use this_thread::get_id().
  897. (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Likewise.
  898. Use __is_single_threaded() to decide whether to synchronize.
  899. * include/std/thread (thread, operator==, this_thread::get_id)
  900. (this_thread::yield): Move to new header.
  901. (operator<=>, operator!=, operator<, operator<=, operator>)
  902. (operator>=, hash<thread::id>, operator<<): Define even when
  903. gthreads not available.
  904. * src/c++11/thread.cc: Include <memory>.
  905. * include/bits/std_thread.h: New file.
  906. (thread, operator==, this_thread::get_id, this_thread::yield):
  907. Define even when gthreads not available.
  908. [!_GLIBCXX_HAS_GTHREADS] (thread::join, thread::detach)
  909. (thread::hardware_concurrency): Define inline.
  910. 2020-11-19 Jonathan Wakely <jwakely@redhat.com>
  911. PR libstdc++/93421
  912. PR libstdc++/93456
  913. * src/c++11/futex.cc (syscall_time_t): New typedef for
  914. the type of the syscall_timespec::tv_sec member.
  915. (relative_timespec, _M_futex_wait_until)
  916. (_M_futex_wait_until_steady): Use syscall_time_t in overflow
  917. checks, not time_t.
  918. 2020-11-18 Patrick Palka <ppalka@redhat.com>
  919. * include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify
  920. local variable inner.
  921. (join_view::_Iterator::operator->): Use _Inner_iter instead of
  922. _Outer_iter in the function signature as per LWG 3500.
  923. * testsuite/std/ranges/adaptors/join.cc (test08): Test it.
  924. 2020-11-17 Jonathan Wakely <jwakely@redhat.com>
  925. PR libstdc++/93421
  926. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Fail if struct
  927. timespec isn't compatible with SYS_clock_gettime.
  928. * configure: Regenerate.
  929. * src/c++11/chrono.cc: Revert changes for time64 compatibility.
  930. Add static_assert instead.
  931. * src/c++11/futex.cc (_M_futex_wait_until_steady): Assume
  932. SYS_clock_gettime can use struct timespec.
  933. 2020-11-17 Jonathan Wakely <jwakely@redhat.com>
  934. PR libstdc++/97869
  935. * include/precompiled/stdc++.h: Include <coroutine>.
  936. * include/std/version (__cpp_lib_span): Check __cpp_lib_concepts
  937. before defining.
  938. 2020-11-17 Patrick Palka <ppalka@redhat.com>
  939. PR libstdc++/97828
  940. * include/bits/ranges_algo.h (__search_n_fn::operator()): Check
  941. random_access_iterator before using the backtracking
  942. implementation. When the backwards scan fails prematurely,
  943. reset __remainder appropriately.
  944. * testsuite/25_algorithms/search_n/97828.cc: New test.
  945. 2020-11-16 Jonathan Wakely <jwakely@redhat.com>
  946. * src/Makefile.am (libstdc++-symbols.ver-sun): Remove -lrt from
  947. arguments passed to make_sunver.pl script.
  948. * src/Makefile.in: Regenerate.
  949. 2020-11-15 Jason Merrill <jason@redhat.com>
  950. * testsuite/20_util/result_of/sfinae_friendly_1.cc: Adjust.
  951. 2020-11-13 Jonathan Wakely <jwakely@redhat.com>
  952. PR libstdc++/93421
  953. * src/c++11/chrono.cc [_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL]
  954. (syscall_timespec): Define a type suitable for SYS_clock_gettime
  955. calls.
  956. (system_clock::now(), steady_clock::now()): Use syscall_timespec
  957. instead of timespec.
  958. * src/c++11/futex.cc (syscall_timespec): Define a type suitable
  959. for SYS_futex and SYS_clock_gettime calls.
  960. (relative_timespec): Use syscall_timespec instead of timespec.
  961. (__atomic_futex_unsigned_base::_M_futex_wait_until): Likewise.
  962. (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
  963. Likewise.
  964. 2020-11-13 Jonathan Wakely <jwakely@redhat.com>
  965. PR libstdc++/93456
  966. * src/c++11/futex.cc (relative_timespec): Remove redundant check
  967. negative values.
  968. * testsuite/30_threads/future/members/wait_until_overflow.cc: Moved to...
  969. * testsuite/30_threads/future/members/93456.cc: ...here.
  970. 2020-11-13 Jonathan Wakely <jwakely@redhat.com>
  971. * src/c++11/futex.cc (relative_timespec): Add [[unlikely]]
  972. attributes.
  973. (__atomic_futex_unsigned_base::_M_futex_wait_until)
  974. (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
  975. Check for overflow.
  976. * testsuite/30_threads/future/members/wait_until_overflow.cc:
  977. New test.
  978. 2020-11-13 Jonathan Wakely <jwakely@redhat.com>
  979. * src/c++11/futex.cc (relative_timespec): New function to
  980. create relative time from two absolute times.
  981. (__atomic_futex_unsigned_base::_M_futex_wait_until)
  982. (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
  983. Use relative_timespec.
  984. 2020-11-13 Jonathan Wakely <jwakely@redhat.com>
  985. * testsuite/30_threads/future/members/poll.cc: Require gthreads
  986. and add -pthread for targets that require it. Relax required
  987. ratio of wait_for calls before/after the future is ready.
  988. 2020-11-12 Jonathan Wakely <jwakely@redhat.com>
  989. * include/std/future (future::wait_for): Do not wait for
  990. durations less than or equal to zero.
  991. * src/c++11/futex.cc (_M_futex_wait_until)
  992. (_M_futex_wait_until_steady): Do not wait for timeouts before
  993. the epoch.
  994. * testsuite/30_threads/future/members/poll.cc: New test.
  995. 2020-11-12 Jonathan Wakely <jwakely@redhat.com>
  996. * include/ext/numeric_traits.h (__numeric_traits): Change
  997. primary template to always derive from __numeric_traits_integer.
  998. (__numeric_traits<float>, __numeric_traits<double>)
  999. (__numeric_traits<long double>): Add explicit specializations.
  1000. 2020-11-12 Jonathan Wakely <jwakely@redhat.com>
  1001. PR libstdc++/97798
  1002. * include/ext/numeric_traits.h (__glibcxx_signed)
  1003. (__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove
  1004. macros.
  1005. (__is_integer_nonstrict::__width): Define new constant.
  1006. (__numeric_traits_integer): Define constants in terms of each
  1007. other and __is_integer_nonstrict::__width, rather than the
  1008. removed macros.
  1009. (_GLIBCXX_INT_N_TRAITS): Macro to define explicit
  1010. specializations for non-standard integer types.
  1011. 2020-11-11 Jonathan Yong <10walls@gmail.com>
  1012. * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Exclude
  1013. cygwin and mingw from relro linker test.
  1014. * configure: Regenerate.
  1015. 2020-11-11 Paul Scharnofske <asynts@gmail.com>
  1016. * include/std/thread (jthread::operator=(jthread&&)): Transfer
  1017. any existing state to a temporary that will request a stop and
  1018. then join.
  1019. * testsuite/30_threads/jthread/jthread.cc: Test move assignment.
  1020. 2020-11-11 Jonathan Wakely <jwakely@redhat.com>
  1021. * include/std/stop_token (_Stop_state_t::_M_requester): Define
  1022. new struct with members to store and check the thread ID.
  1023. (_Stop_state_t::_M_request_stop()): Use _M_requester._M_set().
  1024. (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Use
  1025. _M_requester._M_is_current_thread().
  1026. 2020-11-11 Jonathan Wakely <jwakely@redhat.com>
  1027. * include/std/ostream (__syncbuf_base): New class template.
  1028. (emit_on_flush, noemit_on_flush, flush_emit): New manipulators.
  1029. * include/std/syncstream (basic_syncbuf): Derive from
  1030. __syncbuf_base instead of basic_streambuf.
  1031. (basic_syncbuf::operator=): Remove self-assignment check.
  1032. (basic_syncbuf::swap): Remove self-swap check.
  1033. (basic_syncbuf::emit): Do not skip pubsync() call if sequence
  1034. is empty.
  1035. (basic_syncbuf::sync): Remove no-op pubsync on stringbuf.
  1036. (basic_syncbuf::overflow): Define override.
  1037. * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Test
  1038. basic_osyncstream::put(char_type).
  1039. * testsuite/27_io/basic_ostream/emit/1.cc: New test.
  1040. 2020-11-10 Jonathan Wakely <jwakely@redhat.com>
  1041. * config/locale/generic/c_locale.cc (__set_C_locale()): New function
  1042. to set the "C" locale and return the name of the previous locale.
  1043. (__convert_to_v<float>, __convert_to_v<double>)
  1044. (__convert_to_v<long double>): Use __set_C_locale and set failbit on
  1045. error.
  1046. 2020-11-10 Jonathan Wakely <jwakely@redhat.com>
  1047. * include/std/sstream (basic_stringbug, basic_istringstream)
  1048. (basic_ostringstream, basic_stringstream): Reorder C++20
  1049. constructors to be declared next to other constructors.
  1050. 2020-11-10 Jonathan Wakely <jwakely@redhat.com>
  1051. * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns.
  1052. (GLIBCXX_3.4.29): Export new symbols.
  1053. * include/bits/alloc_traits.h (__allocator_like): New concept.
  1054. * include/std/sstream (basic_stringbuf::swap): Add exception
  1055. specification.
  1056. (basic_stringbuf::str() const): Add ref-qualifier. Use new
  1057. _M_high_mark function.
  1058. (basic_stringbuf::str(const SAlloc&) const): Define new function.
  1059. (basic_stringbuf::str() &&): Likewise.
  1060. (basic_stringbuf::str(const basic_string<C,T,SAlloc>&)):
  1061. Likewise.
  1062. (basic_stringbuf::str(basic_string<C,T,Alloc>&&)): Likewise.
  1063. (basic_stringbuf::view() const): Use _M_high_mark.
  1064. (basic_istringstream::str, basic_ostringstream::str)
  1065. (basic_stringstream::str): Define new overloads.
  1066. * src/c++20/sstream-inst.cc (basic_stringbuf::str)
  1067. (basic_istringstream::str, basic_ostringstream::str)
  1068. (basic_stringstream::str): Explicit instantiation definitions
  1069. for new overloads.
  1070. * testsuite/27_io/basic_istringstream/view/char/1.cc: Add more
  1071. checks.
  1072. * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
  1073. Likewise.
  1074. * testsuite/27_io/basic_ostringstream/view/char/1.cc:
  1075. Likewise.
  1076. * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
  1077. Likewise.
  1078. * testsuite/27_io/basic_stringstream/view/char/1.cc:
  1079. Likewise.
  1080. * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
  1081. Likewise.
  1082. * testsuite/27_io/basic_istringstream/str/char/2.cc: New test.
  1083. * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: New test.
  1084. * testsuite/27_io/basic_ostringstream/str/char/3.cc: New test.
  1085. * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: New test.
  1086. * testsuite/27_io/basic_stringbuf/str/char/4.cc: New test.
  1087. * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: New test.
  1088. * testsuite/27_io/basic_stringstream/str/char/5.cc: New test.
  1089. * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: New test.
  1090. 2020-11-10 Jonathan Wakely <jwakely@redhat.com>
  1091. PR libstdc++/97415
  1092. * include/std/sstream (basic_stringbuf::_M_update_egptr)
  1093. (basic_stringbuf::__xfer_bufptrs::__xfer_bufptrs): Check for
  1094. null before comparing pointers.
  1095. 2020-11-09 François Dumont <fdumont@gcc.gnu.org>
  1096. * include/debug/array: Remove.
  1097. * include/Makefile.am: Remove <debug/array>.
  1098. * include/Makefile.in: Regenerate.
  1099. * include/experimental/functional: Adapt.
  1100. * include/std/array: Move to _GLIBCXX_INLINE_VERSION namespace.
  1101. * include/std/functional: Adapt.
  1102. * include/std/span: Adapt.
  1103. * testsuite/23_containers/array/debug/back1_neg.cc:
  1104. Remove dg-require-debug-mode. Add -D_GLIBCXX_ASSERTIONS option.
  1105. * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
  1106. * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
  1107. * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
  1108. * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
  1109. Likewise.
  1110. * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
  1111. Likewise.
  1112. * testsuite/23_containers/array/element_access/60497.cc
  1113. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
  1114. Remove.
  1115. * testsuite/23_containers/array/tuple_interface/get_neg.cc
  1116. * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc
  1117. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
  1118. 2020-11-09 François Dumont <fdumont@gcc.gnu.org>
  1119. * include/debug/assertions.h (__glibcxx_requires_non_empty_range):
  1120. Remove __builtin_expect.
  1121. (__glibcxx_requires_subscript): Likewise.
  1122. (__glibcxx_requires_nonempty): Likewise.
  1123. * include/debug/formatter.h (__check_singular): Add C++11 constexpr
  1124. qualification.
  1125. * include/debug/helper_functions.h (__check_singular): Likewise. Skip
  1126. check if constant evaluated.
  1127. (__valid_range): Do not skip check if constant evaluated.
  1128. * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Add
  1129. __builtin_expect.
  1130. (_GLIBCXX_DEBUG_VERIFY_AT_F): Use __glibcxx_assert_1.
  1131. * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
  1132. New test.
  1133. * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: New test.
  1134. * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: New test.
  1135. * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
  1136. New test.
  1137. * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
  1138. New test.
  1139. * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
  1140. New test.
  1141. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: New test.
  1142. * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: New test.
  1143. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
  1144. New test.
  1145. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: New test.
  1146. * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
  1147. * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: New test.
  1148. * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc: New test.
  1149. * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: New test.
  1150. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: New test.
  1151. * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
  1152. * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: New test.
  1153. * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc: New test.
  1154. * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: New test.
  1155. 2020-11-09 Jonathan Wakely <jwakely@redhat.com>
  1156. * include/bits/uniform_int_dist.h (__detail::_Power_of_2):
  1157. Document that true result for zero is intentional.
  1158. 2020-11-09 Jonathan Wakely <jwakely@redhat.com>
  1159. * include/std/bit (__popcount): Remove redundant check for zero.
  1160. 2020-11-09 Jonathan Wakely <jwakely@redhat.com>
  1161. PR libstdc++/97729
  1162. * libsupc++/exception_ptr.h (exception_ptr::exception_ptr())
  1163. (exception_ptr::exception_ptr(const exception_ptr&))
  1164. (exception_ptr::~exception_ptr()): Remove 'always_inline'
  1165. attributes. Use 'inline' unconditionally.
  1166. 2020-11-09 Jonathan Wakely <jwakely@redhat.com>
  1167. PR libstdc++/97758
  1168. * include/bits/std_function.h [!__cpp_rtti]: Include <typeinfo>.
  1169. 2020-11-07 Liu Hao <lh_mouse@126.com>
  1170. * libsupc++/cxxabi.h: (__cxa_atexit): mark with _GLIBCXX_CDTOR_CALLABI
  1171. (__cxa_thread_atexit): ditto
  1172. * libsupc++/atexit_thread.cc: (__cxa_atexit): mark with
  1173. _GLIBCXX_CDTOR_CALLABI
  1174. (__cxa_thread_atexit): ditto
  1175. (elt): ditto
  1176. 2020-11-06 Jonathan Wakely <jwakely@redhat.com>
  1177. * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten up patterns
  1178. for basic_stringbuf that refer to __xfer_bufptrs.
  1179. 2020-11-05 Marek Polacek <polacek@redhat.com>
  1180. PR c++/25814
  1181. * testsuite/20_util/reference_wrapper/lwg2993.cc: Add a dg-warning.
  1182. * testsuite/25_algorithms/generate_n/87982_neg.cc: Likewise.
  1183. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1184. PR libstdc++/96269
  1185. * include/std/optional (operator==, operator!=, operator<)
  1186. (operator>, operator<=, operator>=): Fix types used in
  1187. SFINAE constraints.
  1188. * testsuite/20_util/optional/relops/96269.cc: New test.
  1189. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1190. PR libstdc++/97731
  1191. * src/filesystem/dir.cc (recursive_directory_iterator): Call the
  1192. right overload of _Dir::advance.
  1193. * testsuite/experimental/filesystem/iterators/97731.cc: New test.
  1194. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1195. PR libstdc++/97729
  1196. * include/std/future (__basic_future::_M_get_result): Use
  1197. nullptr for null pointer constant.
  1198. * libsupc++/eh_ptr.cc (operator==, operator!=): Remove
  1199. definitions.
  1200. * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Define
  1201. macro to conditionally add __attribute__((__used__)).
  1202. (operator==, operator!=, exception_ptr::exception_ptr())
  1203. (exception_ptr::exception_ptr(const exception_ptr&))
  1204. (exception_ptr::~exception_ptr())
  1205. (exception_ptr::operator=(const exception_ptr&))
  1206. (exception_ptr::swap(exception_ptr&)): Always define as
  1207. inline. Add macro to be conditionally "used".
  1208. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1209. PR libstdc++/97729
  1210. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add exports.
  1211. * src/c++20/sstream-inst.cc (basic_stringbuf): Instantiate
  1212. private constructor taking __xfer_bufptrs.
  1213. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1214. * include/std/sstream (basic_stringbuf(const allocator_type&):
  1215. Add explicit.
  1216. (basic_stringbuf(const basic_string<C,T,SA>&, openmode, const A&)):
  1217. Call _M_stringbuf_init. Construct _M_string from pointer and length
  1218. to avoid constraint checks for string view.
  1219. (basic_stringbuf::view()): Make __sv_type alias local to the
  1220. function.
  1221. (basic_istringstream(const basic_string<C,T,SA>&, openmode, const A&)):
  1222. Pass string to _M_streambuf instead of constructing a temporary
  1223. with the wrong allocator.
  1224. (basic_ostringstream(const basic_string<C,T,SA>&, openmode, const A&)):
  1225. Likewise.
  1226. (basic_stringstream(const basic_string<C,T,SA>&, openmode, const A&)):
  1227. Likewise.
  1228. * src/c++20/sstream-inst.cc: Use string_view and wstring_view
  1229. typedefs in explicit instantiations.
  1230. * testsuite/27_io/basic_istringstream/cons/char/1.cc: Add more
  1231. tests for constructors.
  1232. * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
  1233. * testsuite/27_io/basic_stringbuf/cons/char/1.cc: Likewise.
  1234. * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
  1235. * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
  1236. * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
  1237. * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
  1238. 2020-11-05 Jonathan Wakely <jwakely@redhat.com>
  1239. * include/std/sstream: Adjust whitespace.
  1240. 2020-11-04 Jonathan Wakely <jwakely@redhat.com>
  1241. PR libstdc++/97719
  1242. * include/std/sstream (basic_stringstream(string_type&&, openmode)):
  1243. Fix default argument.
  1244. * testsuite/27_io/basic_stringstream/cons/char/97719.cc: New test.
  1245. 2020-11-04 Jonathan Wakely <jwakely@redhat.com>
  1246. * testsuite/18_support/96817.cc: Fail fast if the library is
  1247. configured to not use futexes.
  1248. 2020-11-04 Jonathan Wakely <jwakely@redhat.com>
  1249. PR libstdc++/94971
  1250. * include/bits/stl_algo.h (search(FIter, FIter, const Searcher):
  1251. Adjust #if condition.
  1252. * include/parallel/algo.h (search(FIter, FIter, const Searcher&):
  1253. Define new overload for C++17.
  1254. 2020-11-04 Jonathan Wakely <jwakely@redhat.com>
  1255. PR libstdc++/92285
  1256. * doc/xml/manual/evolution.xml: Document change to base class.
  1257. * doc/html/manual/api.html: Regenerate.
  1258. 2020-11-04 Jonathan Wakely <jwakely@redhat.com>
  1259. * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
  1260. Use qualified-id to refer to static member functions.
  1261. 2020-11-03 Jonathan Wakely <jwakely@redhat.com>
  1262. * include/std/syncstream: Include <bits/std_mutex.h>
  1263. unconditionally.
  1264. 2020-11-03 François Dumont <fdumont@gcc.gnu.org>
  1265. * config/abi/pre/gnu-versioned-namespace.ver:
  1266. Add __istream_extract and _Safe_local_iterator_base::_M_attach_single
  1267. symbols.
  1268. 2020-11-03 Jonathan Wakely <jwakely@redhat.com>
  1269. * src/c++11/mutex.cc [_GLIBCXX_HAVE_TLS] (__once_proxy): Define
  1270. separately for TLS targets.
  1271. [!_GLIBCXX_HAVE_TLS] (__get_once_functor_lock_ptr): Replace with ...
  1272. (set_lock_ptr): ... this. Set new value and return previous
  1273. value.
  1274. [!_GLIBCXX_HAVE_TLS] (__set_once_functor_lock_ptr): Adjust to
  1275. use set_lock_ptr.
  1276. [!_GLIBCXX_HAVE_TLS] (__once_proxy): Likewise.
  1277. 2020-11-03 Jonathan Wakely <jwakely@redhat.com>
  1278. PR libstdc++/55394
  1279. PR libstdc++/66146
  1280. PR libstdc++/84323
  1281. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add new symbols.
  1282. * include/std/mutex [!_GLIBCXX_HAS_GTHREADS] (once_flag): Define
  1283. even when gthreads is not supported.
  1284. (once_flag::_M_once) [_GLIBCXX_HAVE_LINUX_FUTEX]: Change type
  1285. from __gthread_once_t to int.
  1286. (once_flag::_M_passive(), once_flag::_M_activate())
  1287. (once_flag::_M_finish(bool), once_flag::_Active_execution):
  1288. Define new members for futex and non-threaded implementation.
  1289. [_GLIBCXX_HAS_GTHREADS] (once_flag::_Prepare_execution): New
  1290. RAII helper type.
  1291. (call_once): Use new members of once_flag.
  1292. * src/c++11/mutex.cc (std::once_flag::_M_activate): Define.
  1293. (std::once_flag::_M_finish): Define.
  1294. * testsuite/30_threads/call_once/39909.cc: Do not require
  1295. gthreads.
  1296. * testsuite/30_threads/call_once/49668.cc: Likewise.
  1297. * testsuite/30_threads/call_once/60497.cc: Likewise.
  1298. * testsuite/30_threads/call_once/call_once1.cc: Likewise.
  1299. * testsuite/30_threads/call_once/dr2442.cc: Likewise.
  1300. * testsuite/30_threads/call_once/once_flag.cc: Add test for
  1301. constexpr constructor.
  1302. * testsuite/30_threads/call_once/66146.cc: New test.
  1303. * testsuite/30_threads/call_once/constexpr.cc: Removed.
  1304. * testsuite/30_threads/once_flag/cons/constexpr.cc: Removed.
  1305. 2020-11-03 Jonathan Yong <10walls@gmail.com>
  1306. * src/Makefile.am (libstdc___la_LINK): Add lt_host_flags.
  1307. * src/Makefile.in: Regenerate.
  1308. 2020-11-02 Thomas Rodgers <trodgers@redhat.com>
  1309. * doc/doxygen/user.cfg.in (INPUT): Add new header.
  1310. * include/Makefile.am (std_headers): Add new header.
  1311. * include/Makefile.in: Regenerate.
  1312. * include/precompiled/stdc++.h: Include new header.
  1313. * include/std/syncstream: New header.
  1314. * include/std/version: Add __cpp_lib_syncbuf.
  1315. * testsuite/27_io/basic_syncbuf/1.cc: New test.
  1316. * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
  1317. * testsuite/27_io/basic_syncbuf/basic_ops/1.cc:
  1318. Likewise.
  1319. * testsuite/27_io/basic_syncbuf/requirements/types.cc:
  1320. Likewise.
  1321. * testsuite/27_io/basic_syncbuf/sync_ops/1.cc:
  1322. Likewise.
  1323. * testsuite/27_io/basic_syncstream/1.cc: Likewise.
  1324. * testsuite/27_io/basic_syncstream/2.cc: Likewise.
  1325. * testsuite/27_io/basic_syncstream/basic_ops/1.cc:
  1326. Likewise.
  1327. * testsuite/27_io/basic_syncstream/requirements/types.cc:
  1328. Likewise.
  1329. 2020-11-01 Jonathan Wakely <jwakely@redhat.com>
  1330. * include/std/type_traits (is_integral<wchar_t>)
  1331. (make_unsigned<wchar_t>, make_signed<wchar_t>): Define based
  1332. on #ifdef __WCHAR_TYPE__ instead of _GLIBCXX_USE_WCHAR_T.
  1333. * include/bits/cpp_type_traits.h (__is_integer<wchar_t>)
  1334. (__is_char<wchar_t>): Likewise.
  1335. 2020-10-31 François Dumont <fdumont@gcc.gnu.org>
  1336. * src/c++17/floating_from_chars.cc (_GLIBCXX_USE_CX11_ABI): Add define.
  1337. (buffering_string): New.
  1338. [!_GLIBCXX_USE_CXX11_ABI](reserve_string): New.
  1339. (from_chars): Adapt.
  1340. * src/c++20/sstream-inst.cc: Limit instantiations to
  1341. _GLIBCXX_USE_CXX11_ABI.
  1342. 2020-10-31 Jonathan Wakely <jwakely@redhat.com>
  1343. * include/bits/random.h (independent_bit_engine): Fix typo
  1344. in comment.
  1345. (shuffle_order_engine): Fix incorrect description in comment.
  1346. * include/bits/random.tcc (__representable_as_double
  1347. (__p1_representable_as_double): New helper functions.
  1348. (shuffle_order_engine::operator()): Use double for calculation
  1349. if (max() - min() + 1) is representable as double.
  1350. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  1351. line number.
  1352. 2020-10-31 Jonathan Wakely <jwakely@redhat.com>
  1353. PR libstdc++/96958
  1354. * include/bits/hashtable_policy.h (_Prime_rehash_policy)
  1355. (_Power2_rehash_policy): Use ceil and floor instead of ceill and
  1356. floorl.
  1357. * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy): Likewise.
  1358. Use double instead of long double.
  1359. 2020-10-31 Patrick Palka <ppalka@redhat.com>
  1360. PR libstdc++/97600
  1361. * include/std/ranges (basic_istream_view::begin): Initialize
  1362. _Iterator from 'this' instead of '*this'.
  1363. (basic_istream_view::_Iterator::_Iterator): Adjust constructor
  1364. accordingly.
  1365. (filter_view::_Iterator::_Iterator): Take a filter_view*
  1366. argument instead of a filter_view& argument.
  1367. (filter_view::_Sentinel::_Sentinel): Likewise.
  1368. (filter_view::begin): Initialize _Iterator from 'this' instead
  1369. of '*this'.
  1370. (filter_view::end): Likewise.
  1371. (transform_view::_Iterator::_Iterator): Take a _Parent* instead
  1372. of a _Parent&.
  1373. (filter_view::_Iterator::operator+): Adjust accordingly.
  1374. (filter_view::_Iterator::operator-): Likewise.
  1375. (filter_view::begin): Initialize _Iterator from 'this' instead
  1376. of '*this'.
  1377. (filter_view::end): Likewise.
  1378. (join_view::_Iterator): Take a _Parent* instead of a _Parent&.
  1379. (join_view::_Sentinel): Likewise.
  1380. (join_view::begin): Initialize _Iterator from 'this' instead of
  1381. '*this'.
  1382. (join_view::end): Initialize _Sentinel from 'this' instead of
  1383. '*this'.
  1384. (split_view::_OuterIter): Take a _Parent& instead of a _Parent*.
  1385. (split_view::begin): Initialize _OuterIter from 'this' instead
  1386. of '*this'.
  1387. (split_view::end): Likewise.
  1388. * testsuite/std/ranges/97600.cc: New test.
  1389. 2020-10-30 Jonathan Wakely <jwakely@redhat.com>
  1390. * include/std/ranges (enable_borrowed_view<take_view<T>>)
  1391. (enable_borrowed_view<drop_view<T>>)
  1392. (enable_borrowed_view<drop_while_view<T>>)
  1393. (enable_borrowed_view<reverse_view<T>>)
  1394. (enable_borrowed_view<common_view<T>>)
  1395. (enable_borrowed_view<elements_view<T>>): Add partial
  1396. specializations as per P2017R1.
  1397. * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
  1398. New test.
  1399. 2020-10-30 Jonathan Wakely <jwakely@redhat.com>
  1400. PR libstdc++/96958
  1401. * include/bits/hashtable_policy.h (_Prime_rehash_policy)
  1402. (_Power2_rehash_policy): Use double instead of long double.
  1403. 2020-10-30 Jonathan Wakely <jwakely@redhat.com>
  1404. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
  1405. Avoid -Wcatch-value warnings.
  1406. 2020-10-30 Patrick Palka <ppalka@redhat.com>
  1407. * include/std/ranges (__detail::__box): For the partial
  1408. specialization used by types that are already semiregular,
  1409. make the default constructor value-initialize the underlying
  1410. object instead of default-initializing it. Make its in place
  1411. constructor explicit.
  1412. * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
  1413. Augment test.
  1414. 2020-10-30 David Edelsohn <dje.gcc@gmail.com>
  1415. * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: XFAIL on AIX.
  1416. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1417. * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns
  1418. for old <sstream> symbols some more.
  1419. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1420. * include/bits/ranges_util.h (subrange::subrange(R&&)): Use
  1421. direct-initialization instead of list-initialization, so a
  1422. potential narrowing conversion from ranges::size(r) to the
  1423. stored size isn't ill-formed.
  1424. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1425. * include/bits/parse_numbers.h (_Select_int_base): Avoid
  1426. narrowing conversion in constant expression.
  1427. * include/experimental/buffer (buffer_copy): Avoid narrowing
  1428. conversion.
  1429. * include/experimental/internet (hash<>::operator()): Do not
  1430. use deprecated 'argument_type' member.
  1431. * include/std/variant (variant::emplace): Use cast instead
  1432. of implicit conversion from size_t to narrower unsigned type.
  1433. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1434. * include/tr1/shared_ptr.h (__shared_count, __shared_ptr)
  1435. (shared_ptr): Add diagnostic pragmas around uses of auto_ptr.
  1436. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
  1437. Adust dg-error line numbers.
  1438. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1439. * testsuite/18_support/96817.cc: Avoid -Wunused warnings.
  1440. * testsuite/20_util/any/assign/2.cc: Likewise.
  1441. * testsuite/20_util/any/cons/2.cc: Likewise.
  1442. * testsuite/20_util/align/1.cc: Avoid -Wsign-compare warning.
  1443. * testsuite/20_util/function/65760.cc: Avoid -Wunused warning.
  1444. * testsuite/20_util/function/1.cc: Avoid -Wcatch-value warning.
  1445. * testsuite/20_util/function/cons/move_target.cc: Avoid -Wunused
  1446. warning.
  1447. * testsuite/20_util/headers/memory/synopsis.cc: Add exception
  1448. specification.
  1449. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Avoid
  1450. -Wsign-compare warning.
  1451. * testsuite/20_util/tuple/cons/deduction.cc: Avoid -Wunused
  1452. warning.
  1453. * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
  1454. Avoid -Wdeprecated-copy warning.
  1455. * testsuite/21_strings/basic_string/56166.cc: Avoid
  1456. -Wcatch-value warning.
  1457. * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
  1458. Avoid -Wcatch-value warnings.
  1459. * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
  1460. Likewise.
  1461. * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
  1462. Likewise.
  1463. * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
  1464. Likewise.
  1465. * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
  1466. Likewise.
  1467. * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
  1468. Likewise.
  1469. * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
  1470. Likewise.
  1471. * testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
  1472. Likewise.
  1473. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc:
  1474. Likewise.
  1475. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc:
  1476. Likewise.
  1477. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc:
  1478. Likewise.
  1479. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc:
  1480. Likewise.
  1481. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc:
  1482. Likewise.
  1483. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc:
  1484. Likewise.
  1485. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc:
  1486. Likewise.
  1487. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc:
  1488. Likewise.
  1489. * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
  1490. Prune additional diagnostics.
  1491. * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
  1492. Likewise.
  1493. * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
  1494. Likewise.
  1495. * testsuite/21_strings/headers/string/synopsis.cc: Add exception
  1496. specifications.
  1497. * testsuite/22_locale/locale/cons/12352.cc: Define sized
  1498. delete operators to avoid warnings.
  1499. * testsuite/23_containers/deque/modifiers/swap/1.cc: Add
  1500. exception specification.
  1501. * testsuite/23_containers/forward_list/cons/11.cc: Avoid
  1502. -Wdeprecated-copy warning.
  1503. * testsuite/23_containers/headers/bitset/synopsis.cc: Add
  1504. exception specification.
  1505. * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
  1506. * testsuite/23_containers/headers/forward_list/synopsis.cc:
  1507. Likewise.
  1508. * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
  1509. * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
  1510. * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
  1511. * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
  1512. * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
  1513. * testsuite/23_containers/list/modifiers/swap/1.cc: Likewise.
  1514. * testsuite/23_containers/map/modifiers/swap/1.cc: Likewise.
  1515. * testsuite/23_containers/multimap/modifiers/swap/1.cc:
  1516. Likewise.
  1517. * testsuite/23_containers/multiset/modifiers/swap/1.cc:
  1518. Likewise.
  1519. * testsuite/23_containers/set/modifiers/swap/1.cc: Likewise.
  1520. * testsuite/23_containers/unordered_set/56267-2.cc: Avoid
  1521. -Wdeprecated-copy warning.
  1522. * testsuite/23_containers/vector/bool/23632.cc: Avoid
  1523. -Wempty-body warning.
  1524. * testsuite/23_containers/vector/modifiers/swap/1.cc: Add
  1525. exception specification.
  1526. * testsuite/25_algorithms/heap/moveable2.cc: Fix misplaced
  1527. parentheses around arguments.
  1528. * testsuite/25_algorithms/sample/1.cc: Use return value.
  1529. * testsuite/25_algorithms/search/searcher.cc: Avoid -Wunused
  1530. warnings.
  1531. * testsuite/27_io/basic_ostream/exceptions/char/9561.cc:
  1532. Likewise.
  1533. * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc:
  1534. Likewise.
  1535. * testsuite/27_io/filesystem/operations/remove_all.cc: Avoid
  1536. -Wsign-compare warning.
  1537. * testsuite/experimental/any/assign/2.cc: Avoid -Wunused warnings.
  1538. * testsuite/experimental/any/cons/2.cc: Likewise.
  1539. * testsuite/experimental/filesystem/operations/remove_all.cc:
  1540. Avoid -Wign-compare warning.
  1541. * testsuite/experimental/memory/observer_ptr/cons/cons.cc:
  1542. Likewise.
  1543. * testsuite/experimental/memory_resource/null_memory_resource.cc:
  1544. Likewise.
  1545. * testsuite/experimental/source_location/1.cc: Avoid -Waddress
  1546. warning.
  1547. * testsuite/ext/pod_char_traits.cc: Avoid -Wunused warning.
  1548. * testsuite/ext/vstring/modifiers/clear/56166.cc: Avoid
  1549. -Wcatch-value.
  1550. * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
  1551. Avoid -Wunused warning.
  1552. * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc:
  1553. Likewise.
  1554. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
  1555. Prune additional warnings.
  1556. * testsuite/tr1/3_function_objects/function/1.cc: Avoid
  1557. -Wcatch-value warning.
  1558. * testsuite/util/replacement_memory_operators.h: Define sized
  1559. delete to avoid warnings.
  1560. * testsuite/util/testsuite_api.h (_NonDefaultConstructible): Add
  1561. user-declared assignment operator to stop -Wdeprecated-copy
  1562. warnings.
  1563. * testsuite/util/testsuite_containers.h: Avoid -Wunused warning.
  1564. * testsuite/util/testsuite_iterators.h: Avoid -Wsign-compare
  1565. warnings.
  1566. * testsuite/util/testsuite_new_operators.h: Define sized deleted.
  1567. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1568. * testsuite/25_algorithms/all_of/constexpr.cc: Check result of
  1569. the algorithm.
  1570. * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
  1571. * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
  1572. * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
  1573. * testsuite/25_algorithms/count/constexpr.cc: Likewise.
  1574. * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
  1575. * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
  1576. * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
  1577. * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
  1578. * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
  1579. * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
  1580. * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
  1581. * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
  1582. Likewise.
  1583. * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
  1584. Likewise.
  1585. * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
  1586. * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
  1587. * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
  1588. * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
  1589. * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
  1590. * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
  1591. * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
  1592. * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
  1593. * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
  1594. * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
  1595. * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
  1596. * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
  1597. * testsuite/25_algorithms/search/constexpr.cc: Likewise.
  1598. * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
  1599. * testsuite/25_algorithms/set_intersection/constexpr.cc:
  1600. Likewise.
  1601. * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
  1602. Likewise.
  1603. * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
  1604. * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
  1605. * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
  1606. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1607. * include/bits/uniform_int_dist.h (_Power_of_two): Add
  1608. constexpr.
  1609. (uniform_int_distribution::_S_nd): Add static_assert to ensure
  1610. the wider type is twice as wide as the result type.
  1611. (uniform_int_distribution::__generate_impl): Add static_assert
  1612. and declare variables as constexpr where appropriate.
  1613. (uniform_int_distribution:operator()): Likewise. Only consider
  1614. the uniform random bit generator's range of possible results
  1615. when deciding whether _S_nd can be used, not the __uctype type.
  1616. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1617. * include/ext/rope (_Refcount_Base::_M_ref_count): Remove
  1618. volatile qualifier.
  1619. (_Refcount_Base::_M_decr()): Likewise.
  1620. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1621. * include/bits/std_function.h (_Function_handler<void, void>):
  1622. Define explicit specialization used for invalid target types.
  1623. (_Base_manager::_M_manager) [!__cpp_rtti]: Return null.
  1624. (function::target_type()): Check for null pointer.
  1625. (function::target()): Define unconditionall. Fix bug with
  1626. const_cast of function pointer type.
  1627. (function::target() const): Define unconditionally, but
  1628. only use RTTI if enabled.
  1629. * testsuite/20_util/function/target_no_rtti.cc: New test.
  1630. 2020-10-29 Patrick Palka <ppalka@redhat.com>
  1631. * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
  1632. (test03): Fix initializing the vector vy with the array y of size 4.
  1633. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1634. * include/bits/hashtable_policy.h (_Local_iterator_base): Cast
  1635. value to avoid -Wsign-compare warnings.
  1636. * include/bits/regex.h (sub_match::_M_str): Avoid narrowing
  1637. conversion.
  1638. * include/bits/regex_compiler.tcc (_Compiler::_M_quantifier):
  1639. Initialize variable to avoid -Wmaybe-uninitialized warning.
  1640. * include/bits/shared_ptr_base.h (_Sp_counted_deleter::_Impl):
  1641. Reorder mem-initializer-list to avoid -Wreorder warning.
  1642. * include/bits/stl_tree.h (_Rb_tree_impl): Explicitly
  1643. initialize base class in copy constructor.
  1644. * include/debug/safe_iterator.h (_Safe_iterator): Likewise.
  1645. * include/ext/debug_allocator.h: Reorder mem-initializer-list
  1646. to avoid -Wreorder warning.
  1647. * include/ext/throw_allocator.h (throw_allocator_limit)
  1648. (throw_allocator_random): Add user-declared assignment operators
  1649. to avoid -Wdeprecated-copy warnings.
  1650. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1651. * include/bits/uniform_int_dist.h (uniform_int_distribution):
  1652. Rename _UniformRandomNumberGenerator template parameters to
  1653. _UniformRandomBitGenerator, as per P0346R1.
  1654. 2020-10-29 Jonathan Wakely <jwakely@redhat.com>
  1655. * include/std/sstream (basic_stringbuf(__string_type&&, openmode)):
  1656. Call _M_init_syncbuf to set up get/put areas. Also qualify
  1657. std::move.
  1658. 2020-10-28 Jonathan Wakely <jwakely@redhat.com>
  1659. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Remove duplicate
  1660. patterns.
  1661. (CXXABI_1.3.13): Restore missing piece.
  1662. 2020-10-28 Thomas Rodgers <trodgers@redhat.com>
  1663. * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++20.
  1664. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): New symbols.
  1665. * configure: Regenerate.
  1666. * include/std/sstream:
  1667. (basic_stringbuf::basic_stringbuf(allocator const&)): New constructor.
  1668. (basic_stringbuf::basic_stringbuf(openmode, allocator const&)): Likewise.
  1669. (basic_stringbuf::basic_stringbuf(basic_string&&, openmode)): Likewise.
  1670. (basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&)):
  1671. Likewise.
  1672. (basic_stringbuf::get_allocator()): New method.
  1673. (basic_stringbuf::view()): Likewise.
  1674. (basic_istringstream::basic_istringstream(basic_string&&, openmode)):
  1675. New constructor.
  1676. (basic_istringstream::basic_istringstream(openmode, allocator const&)):
  1677. Likewise
  1678. (basic_istringstream::view()): New method.
  1679. (basic_ostringstream::basic_ostringstream(basic_string&&, openmode)):
  1680. New constructor.
  1681. (basic_ostringstream::basic_ostringstream(openmode, allocator const&)):
  1682. Likewise
  1683. (basic_ostringstream::view()): New method.
  1684. (basic_stringstream::basic_stringstream(basic_string&&, openmode)):
  1685. New constructor.
  1686. (basic_stringstream::basic_stringstream(openmode, allocator const&)):
  1687. Likewise
  1688. (basic_stringstream::view()): New method.
  1689. * src/Makefile.in: Add c++20 directory.
  1690. * src/Makefile.am: Regenerate.
  1691. * src/c++20/Makefile.am: Add makefile for new sub-directory.
  1692. * src/c++20/Makefile.in: Generate.
  1693. * src/c++20/sstream-inst.cc: New file defining explicit
  1694. instantiations for basic_stringbuf, basic_istringstream,
  1695. basic_ostringstream, and basic_stringstream member functions
  1696. added in C++20.
  1697. * testsuite/27_io/basic_stringbuf/cons/char/2.cc: New test.
  1698. * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
  1699. * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
  1700. * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
  1701. * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
  1702. * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: Likewise.
  1703. * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
  1704. * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: Likewise.
  1705. * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
  1706. * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: Likewise.
  1707. * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
  1708. * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: Likewise.
  1709. * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
  1710. * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: Likewise.
  1711. * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
  1712. * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: Likewise.
  1713. 2020-10-28 Patrick Palka <ppalka@redhat.com>
  1714. PR libstdc++/97613
  1715. * include/std/chrono (year_month_weekday::operator sys_days):
  1716. Cast the result of index() to int so that the initializer for
  1717. days{} is sign-extended when it's converted to the underlying
  1718. type.
  1719. * testsuite/std/time/year_month_weekday/3.cc: New test.
  1720. 2020-10-28 Jonathan Wakely <jwakely@redhat.com>
  1721. * libsupc++/new_opnt.cc (new): Add comment about forced unwind
  1722. exceptions.
  1723. 2020-10-28 Jonathan Wakely <jwakely@redhat.com>
  1724. PR libstdc++/94268
  1725. * config/os/mingw32-w64/os_defines.h (_GLIBCXX_BUFSIZ):
  1726. Define.
  1727. * config/os/mingw32/os_defines.h (_GLIBCXX_BUFSIZ):
  1728. Define.
  1729. * include/bits/fstream.tcc: Use _GLIBCXX_BUFSIZ instead
  1730. of BUFSIZ.
  1731. * include/ext/stdio_filebuf.h: Likewise.
  1732. * include/std/fstream (_GLIBCXX_BUFSIZ): Define.
  1733. 2020-10-28 Jonathan Wakely <jwakely@redhat.com>
  1734. PR libstdc++/95592
  1735. * include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR)
  1736. (_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION):
  1737. Use elaborated-type-specifier and qualified-id to avoid
  1738. ambiguities with QNX system headers.
  1739. * testsuite/26_numerics/valarray/95592.cc: New test.
  1740. 2020-10-28 Jonathan Wakely <jwakely@redhat.com>
  1741. PR libstdc++/95609
  1742. * include/std/span (span): Reorder data members to match common
  1743. implementations of struct iovec.
  1744. * testsuite/23_containers/span/layout_compat.cc: New test.
  1745. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1746. * include/std/functional (std::_Placeholder): Define for C++98
  1747. as well as later standards.
  1748. * include/tr1/functional (std::placeholders::_1 etc): Declare
  1749. for C++98.
  1750. (tr1::_Placeholder): Replace with using-declaration for
  1751. std::_Placeholder.
  1752. (tr1::placeholders::_1 etc.): Replace with using-directive for
  1753. std::placeholders.
  1754. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1755. * include/tr1/ell_integral.tcc (__ellint_rf, __ellint_rd)
  1756. (__ellint_rc, __ellint_rj): Remove unused variables.
  1757. * include/tr1/modified_bessel_func.tcc (__airy): Likewise.
  1758. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1759. * include/bits/locale_conv.h (__str_codecvt_out_all):
  1760. Add cast to compare operands of the same signedness.
  1761. * include/bits/locale_facets_nonio.tcc
  1762. (time_get::_M_extract_wday_or_month): Likewise.
  1763. * include/bits/sstream.tcc (basic_stringbuf::overflow):
  1764. Likewise.
  1765. * include/tr1/legendre_function.tcc (__sph_legendre): Use
  1766. unsigned for loop variable.
  1767. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1768. * include/std/charconv (from_chars): Add noexcept to match
  1769. definitions in src/c++17/floating_from_chars.cc
  1770. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1771. * src/c++17/fs_dir.cc (fs::directory_iterator::operator*):
  1772. Add noexcept. Do not throw on precondition violation.
  1773. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1774. * include/bits/fs_path.h (path::_List::begin, path::_List::end):
  1775. Add noexcept to match definitions in src/c++17/fs_path.cc.
  1776. 2020-10-27 Jonathan Wakely <jwakely@redhat.com>
  1777. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  1778. Add missing <cstdint> header.
  1779. * testsuite/experimental/memory_resource/resource_adaptor.cc:
  1780. Likewise.
  1781. 2020-10-26 Jonathan Wakely <jwakely@redhat.com>
  1782. * include/experimental/executor (strand::_State): Fix thinko.
  1783. 2020-10-26 Ville Voutilainen <ville.voutilainen@gmail.com>
  1784. * include/std/type_traits (__is_nt_constructible_impl): Remove.
  1785. (__is_nothrow_constructible_impl): Adjust.
  1786. (is_nothrow_default_constructible): Likewise.
  1787. (__is_nt_assignable_impl): Remove.
  1788. (__is_nothrow_assignable_impl): Adjust.
  1789. 2020-10-26 Jonathan Wakely <jwakely@redhat.com>
  1790. PR libstdc++/97570
  1791. * libsupc++/new_opa.cc: Declare size_t in global namespace.
  1792. Remove unused header.
  1793. 2020-10-26 Stephan Bergmann <sbergman@redhat.com>
  1794. * include/bits/shared_ptr_base.h
  1795. (_Sp_counted_base::_M_add_ref_lock_nothrow(): Add noexcept to
  1796. definitions to match declaration.
  1797. (__shared_count(const __weak_count&, nothrow_t)): Add noexcept
  1798. to declaration to match definition.
  1799. 2020-10-23 Patrick Palka <ppalka@redhat.com>
  1800. * include/std/ranges (single_view::single_view): Mark the
  1801. in place constructor explicit as per LWG 3428.
  1802. (take_view): Remove the constraint on the deduction guide's
  1803. template parameter as per LWG 3447.
  1804. 2020-10-23 Jonathan Wakely <jwakely@redhat.com>
  1805. * include/experimental/memory_resource: Include <tuple>.
  1806. (polymorphic_allocator::construct): Qualify forward_as_tuple.
  1807. * include/std/memory_resource: Likewise.
  1808. 2020-10-22 Jonathan Wakely <jwakely@redhat.com>
  1809. * testsuite/30_threads/condition_variable/members/68519.cc:
  1810. Define recent_epoch_float_clock::duration to meet the Cpp17Clock
  1811. requirements.
  1812. 2020-10-22 Jonathan Wakely <jwakely@redhat.com>
  1813. * include/std/shared_mutex: Only include <condition_variable>
  1814. when pthread_rwlock_t and POSIX timers are not available.
  1815. (__cpp_lib_shared_mutex, __cpp_lib_shared_timed_mutex): Change
  1816. value to be type 'long'.
  1817. * include/std/version (__cpp_lib_shared_mutex)
  1818. (__cpp_lib_shared_timed_mutex): Likewise.
  1819. 2020-10-22 Jonathan Wakely <jwakely@redhat.com>
  1820. * include/Makefile.am: Add new header.
  1821. * include/Makefile.in: Regenerate.
  1822. * include/bits/shared_ptr.h: Include <iosfwd>.
  1823. * include/bits/shared_ptr_base.h: Include required headers here
  1824. directly, instead of in <memory>.
  1825. * include/bits/uses_allocator_args.h: New file. Move utility
  1826. functions for uses-allocator construction from <memory> to here.
  1827. Only define the utility functions when concepts are available.
  1828. (__cpp_lib_make_obj_using_allocator): Define non-standard
  1829. feature test macro.
  1830. * include/std/condition_variable: Remove unused headers.
  1831. * include/std/future: Likewise.
  1832. * include/std/memory: Remove headers that are not needed
  1833. directly, and are now inclkuded where they're needed. Include
  1834. new <bits/uses_allocator_args.h> header.
  1835. * include/std/memory_resource: Include only the necessary
  1836. headers. Use new feature test macro to detect support for the
  1837. utility functions.
  1838. * include/std/scoped_allocator: Likewise.
  1839. * include/std/version (__cpp_lib_make_obj_using_allocator):
  1840. Define.
  1841. 2020-10-22 Olivier Hainque <hainque@adacore.com>
  1842. * crossconfig.m4: Turn vxworks matcher into vxworks*.
  1843. * configure.host: Likewise.
  1844. * configure: Regenerate.
  1845. 2020-10-21 Jonathan Wakely <jwakely@redhat.com>
  1846. * include/bits/shared_ptr.h (shared_ptr(const weak_ptr&, nothrow_t)):
  1847. Add noexcept.
  1848. * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_add_ref_lock):
  1849. Remove specializations and just call _M_add_ref_lock_nothrow.
  1850. (__shared_count, __shared_ptr): Use nullptr for null pointer
  1851. constants.
  1852. (__shared_count(const __weak_count&)): Use _M_add_ref_lock_nothrow
  1853. instead of _M_add_ref_lock.
  1854. (__shared_count(const __weak_count&, nothrow_t)): Add noexcept.
  1855. (__shared_ptr::operator bool()): Add noexcept.
  1856. (__shared_ptr(const __weak_ptr&, nothrow_t)): Add noexcept.
  1857. 2020-10-21 Jonathan Wakely <jwakely@redhat.com>
  1858. PR libstdc++/97512
  1859. * include/bits/ranges_util.h (tuple_size<subrange>)
  1860. (tuple_element<I, cv subrange>): Move here from ...
  1861. * include/std/ranges: ... here.
  1862. * testsuite/std/ranges/subrange/97512.cc: New test.
  1863. 2020-10-21 Thomas Rodgers <trodgers@redhat.com>
  1864. * include/pstl/algorithm_impl.h: Update file.
  1865. * include/pstl/execution_impl.h: Likewise.
  1866. * include/pstl/glue_algorithm_impl.h: Likewise.
  1867. * include/pstl/glue_memory_impl.h: Likewise.
  1868. * include/pstl/glue_numeric_impl.h: Likewise.
  1869. * include/pstl/memory_impl.h: Likewise.
  1870. * include/pstl/numeric_impl.h: Likewise.
  1871. * include/pstl/parallel_backend.h: Likewise.
  1872. * include/pstl/parallel_backend_serial.h: Likewise.
  1873. * include/pstl/parallel_backend_tbb.h: Likewise.
  1874. * include/pstl/parallel_backend_utils.h: Likewise.
  1875. * include/pstl/pstl_config.h: Likewise.
  1876. * include/pstl/unseq_backend_simd.h: Likewise.
  1877. 2020-10-20 François Dumont <fdumont@gcc.gnu.org>
  1878. * include/bits/hashtable_policy.h
  1879. (_Hash_node_value_base<>): Remove _Hash_node_base inheritance.
  1880. (_Hash_node_code_cache<bool _Cache_hash_code>): New.
  1881. (_Hash_node_value<typename _Value, bool _Cache_hash_code>): New.
  1882. (_Hash_node<>): Inherits _Hash_node_base<> and _Hash_node_value<>.
  1883. (_Map_base<>::__node_type): Remove.
  1884. (_Map_base<>::iterator): Remove.
  1885. (_Insert_base<>::__hash_cached): New.
  1886. (_Insert_base<>::__constant_iterators): New.
  1887. (_Insert_base<>::__hashtable_alloc): New.
  1888. (_Insert_base<>::__node_type): Remove.
  1889. (_Insert_base<>::__node_ptr): New.
  1890. (_Hash_code_base<>): Remove specializations.
  1891. (_Hash_code_base<>::__node_type): Remove.
  1892. (_Hash_code_base<>::_M_bucket_index(const __node_type*, size_t)):
  1893. Replace by...
  1894. (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)):
  1895. ...this.
  1896. (_Hash_code_base<>::_M_store_code(__node_type*, __hash_code)):
  1897. Replace by...
  1898. (_Hash_code_base<>::_M_store_code(_Hash_node_code_cache<>&, __hash_code)):
  1899. ...this.
  1900. (_Hash_code_base<>::_M_copy_code(__node_type*, const __node_type*)):
  1901. Replace by...
  1902. (_Hash_code_base<>::_M_copy_code(_Hash_node_code_cache<>&,
  1903. const _Hash_node_code_base<>&)): ...this.
  1904. (_Hashtable_base<>::__constant_iterators): Remove.
  1905. (_Hashtable_base<>::__unique_keys): Remove.
  1906. (_Hashtable_base<>::__node_type): Remove.
  1907. (_Hashtable_base<>::iterator): Remove.
  1908. (_Hashtable_base<>::const_iterator): Remove.
  1909. (_Hashtable_base<>::local_iterator): Remove.
  1910. (_Hashtable_base<>::const_local_iterator): Remove.
  1911. (_Hashtable_base<>::__ireturn_type): Remove.
  1912. (_Hashtable_base<>::_Equal_hash_code<>::_S_equals): Replace by...
  1913. (_Hashtable_base<>::_S_equals(__hash_code, const _Hash_node_code_hash<>&)):
  1914. ...this.
  1915. (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals): Replace by...
  1916. (_Hashtable_base<>::_S_node_equals(__hash_code,
  1917. const _Hash_node_code_hash<>&)): ...this.
  1918. (_Hashtable_base<>::_Equal_hash_code<>): Remove.
  1919. (_Hashtable_base<>::_M_equals): Adapt.
  1920. (_Hashtable_baxe<>::_M_node_equals): Adapt.
  1921. (_Equality<>::_M_equal): Adapt.
  1922. (_Hashtable_alloc<>::__node_ptr): New.
  1923. (_Hashtable_alloc<>::__bucket_type): Rename into...
  1924. (_Hashtable_alloc<>::__node_base_ptr): ...this.
  1925. (_Hashtable_alloc<>::__bucket_alloc_type): Rename into...
  1926. (_Hashtable_alloc<>::__buckets_alloc_type): ...this.
  1927. (_Hashtable_alloc<>::__bucket_alloc_traits): Rename into...
  1928. (_Hashtable_alloc<>::__buckets_alloc_traits): ...this.
  1929. (_Hashtable_alloc<>::__buckets_ptr): New.
  1930. (_Hashtable_alloc<>::_M_allocate_node): Adapt.
  1931. (_Hashtable_alloc<>::_M_deallocate_node): Adapt.
  1932. (_Hashtable_alloc<>::_M_deallocate_node_ptr): Adapt.
  1933. (_Hashtable_alloc<>::_M_deallocate_nodes): Adapt.
  1934. (_Hashtable_alloc<>::_M_allocate_buckets): Adapt.
  1935. (_Hashtable_alloc<>::_M_deallocate_buckets): Adapt.
  1936. * include/bits/hashtable.h (_Hashtable<>): Adapt.
  1937. 2020-10-20 Aldy Hernandez <aldyh@redhat.com>
  1938. * testsuite/21_strings/basic_string/capacity/1.cc: Pass
  1939. -Wno-stringop-overflow to test.
  1940. 2020-10-20 Jonathan Wakely <jwakely@redhat.com>
  1941. PR libstdc++/95917
  1942. * include/std/coroutine (__noop_coro_frame): Replace with
  1943. noop_coroutine_handle::__frame.
  1944. (__dummy_resume_destroy): Define inline in __frame.
  1945. (__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr
  1946. and define as inline.
  1947. * testsuite/18_support/coroutines/95917.cc: New test.
  1948. 2020-10-20 Jonathan Wakely <jwakely@redhat.com>
  1949. * include/std/coroutine (coroutine_handle<_Promise>): Remove
  1950. base class. Add constructors, conversions, accessors etc. as
  1951. proposed for LWG 3460.
  1952. (coroutine_handle<noop_coroutine_promise>): Likewise.
  1953. * testsuite/18_support/coroutines/lwg3460.cc: New test.
  1954. 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
  1955. * include/bits/unique_ptr.h (make_unique_for_overwrite): Define
  1956. for C++20.
  1957. * testsuite/20_util/unique_ptr/creation/array_neg.cc: Remove
  1958. unused header. Adjust standard reference.
  1959. * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: New test.
  1960. * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: New test.
  1961. 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
  1962. * include/std/tuple (_Head_base<Idx, Head, true>): Use reserved
  1963. form of __no_unique_address__ attribute because
  1964. no_unique_address is not reserved prior to C++20.
  1965. 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
  1966. * include/bits/node_handle.h (_Node_handle_common): Replace
  1967. std::optional with custom type.
  1968. * testsuite/20_util/variant/exception_safety.cc: Add missing
  1969. header include.
  1970. 2020-10-19 Jonathan Wakely <jwakely@redhat.com>
  1971. * include/precompiled/expc++.h: Removed.
  1972. 2020-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
  1973. PR libstdc++/97449
  1974. * include/std/variant
  1975. (__gen_vtable_impl<>::_S_apply_single_alt):
  1976. Diagnose visitor return type mismatches here..
  1977. (__gen_vtable_impl</*base case*/>::_S_apply):
  1978. ..not here.
  1979. 2020-10-15 Jonathan Wakely <jwakely@redhat.com>
  1980. * include/std/concepts: Fix typos in copyright notice.
  1981. * include/std/ranges: Likewise.
  1982. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  1983. PR libstdc++/97415
  1984. * include/std/sstream (basic_stringbuf::str()): Check for
  1985. null egptr() before comparing to non-null pptr().
  1986. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  1987. * testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc:
  1988. Do not generate debug info.
  1989. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc:
  1990. Likewise.
  1991. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  1992. * include/bits/basic_string.h (basic_string(const Alloc&))
  1993. (basic_string(const basic_string&)
  1994. (basic_string(const CharT*, size_type, const Alloc&))
  1995. (basic_string(const CharT*, const Alloc&))
  1996. (basic_string(size_type, CharT, const Alloc&))
  1997. (basic_string(initializer_list<CharT>, const Alloc&))
  1998. (basic_string(InputIterator, InputIterator, const Alloc&)):
  1999. Define inline in class body.
  2000. * include/bits/basic_string.tcc (basic_string(const Alloc&))
  2001. (basic_string(const basic_string&)
  2002. (basic_string(const CharT*, size_type, const Alloc&))
  2003. (basic_string(const CharT*, const Alloc&))
  2004. (basic_string(size_type, CharT, const Alloc&))
  2005. (basic_string(initializer_list<CharT>, const Alloc&))
  2006. (basic_string(InputIterator, InputIterator, const Alloc&)):
  2007. Move definitions into class body.
  2008. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  2009. * testsuite/lib/libstdc++.exp (check_effective_target_cxx11-abi):
  2010. Add comments about which test flags get used by the check.
  2011. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  2012. * testsuite/21_strings/basic_string/allocator/char/copy.cc: Make
  2013. comment more precise about what isn't supported by COW strings.
  2014. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
  2015. Likewise.
  2016. * testsuite/21_strings/basic_string/allocator/char/move.cc:
  2017. Likewise.
  2018. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
  2019. Likewise.
  2020. * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
  2021. Likewise.
  2022. * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
  2023. Likewise.
  2024. * testsuite/21_strings/basic_string/allocator/char/swap.cc:
  2025. Likewise.
  2026. * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
  2027. Likewise.
  2028. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
  2029. Likewise.
  2030. * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
  2031. Likewise.
  2032. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
  2033. Likewise.
  2034. * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
  2035. Likewise.
  2036. * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
  2037. Likewise.
  2038. * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
  2039. Likewise.
  2040. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  2041. * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
  2042. Do not require cxx11-abi effective target.
  2043. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
  2044. Likewise.
  2045. * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
  2046. 2020-10-14 Jonathan Wakely <jwakely@redhat.com>
  2047. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  2048. (basic_string(const _CharT*, const _Alloc&)): Constrain to
  2049. require an allocator-like type to fix CTAD ambiguity (LWG 3706).
  2050. * testsuite/21_strings/basic_string/cons/char/deduction.cc:
  2051. Remove dg-skip-if.
  2052. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  2053. Likewise.
  2054. 2020-10-13 Nuno Lopes <nuno.lopes@ist.utl.pt>
  2055. * include/bits/stl_algo.h (any_of): Fix incorrect description
  2056. in comment.
  2057. 2020-10-13 Jonathan Wakely <jwakely@redhat.com>
  2058. * doc/xml/manual/evolution.xml: Document some API changes
  2059. and deprecations.
  2060. * doc/xml/manual/intro.xml: Document LWG 2499.
  2061. * doc/xml/manual/status_cxx2020.xml: Update status.
  2062. * doc/html/*: Regenerate.
  2063. 2020-10-13 Jonathan Wakely <jwakely@redhat.com>
  2064. * doc/xml/book.txml: Remove trailing whitespace.
  2065. * doc/xml/chapter.txml: Likewise.
  2066. * doc/xml/class.txml: Likewise.
  2067. * doc/xml/gnu/fdl-1.3.xml: Likewise.
  2068. * doc/xml/gnu/gpl-3.0.xml: Likewise.
  2069. * doc/xml/manual/abi.xml: Likewise.
  2070. * doc/xml/manual/algorithms.xml: Likewise.
  2071. * doc/xml/manual/allocator.xml: Likewise.
  2072. * doc/xml/manual/appendix_contributing.xml: Likewise.
  2073. * doc/xml/manual/appendix_free.xml: Likewise.
  2074. * doc/xml/manual/appendix_porting.xml: Likewise.
  2075. * doc/xml/manual/atomics.xml: Likewise.
  2076. * doc/xml/manual/auto_ptr.xml: Likewise.
  2077. * doc/xml/manual/backwards_compatibility.xml: Likewise.
  2078. * doc/xml/manual/bitmap_allocator.xml: Likewise.
  2079. * doc/xml/manual/build_hacking.xml: Likewise.
  2080. * doc/xml/manual/codecvt.xml: Likewise.
  2081. * doc/xml/manual/concurrency.xml: Likewise.
  2082. * doc/xml/manual/concurrency_extensions.xml: Likewise.
  2083. * doc/xml/manual/configure.xml: Likewise.
  2084. * doc/xml/manual/containers.xml: Likewise.
  2085. * doc/xml/manual/ctype.xml: Likewise.
  2086. * doc/xml/manual/debug.xml: Likewise.
  2087. * doc/xml/manual/debug_mode.xml: Likewise.
  2088. * doc/xml/manual/diagnostics.xml: Likewise.
  2089. * doc/xml/manual/documentation_hacking.xml: Likewise.
  2090. * doc/xml/manual/evolution.xml: Likewise.
  2091. * doc/xml/manual/internals.xml: Likewise.
  2092. * doc/xml/manual/intro.xml: Likewise.
  2093. * doc/xml/manual/io.xml: Likewise.
  2094. * doc/xml/manual/iterators.xml: Likewise.
  2095. * doc/xml/manual/locale.xml: Likewise.
  2096. * doc/xml/manual/localization.xml: Likewise.
  2097. * doc/xml/manual/messages.xml: Likewise.
  2098. * doc/xml/manual/mt_allocator.xml: Likewise.
  2099. * doc/xml/manual/numerics.xml: Likewise.
  2100. * doc/xml/manual/parallel_mode.xml: Likewise.
  2101. * doc/xml/manual/policy_data_structures.xml: Likewise.
  2102. * doc/xml/manual/prerequisites.xml: Likewise.
  2103. * doc/xml/manual/shared_ptr.xml: Likewise.
  2104. * doc/xml/manual/spine.xml: Likewise.
  2105. * doc/xml/manual/status_cxxtr1.xml: Likewise.
  2106. * doc/xml/manual/status_cxxtr24733.xml: Likewise.
  2107. * doc/xml/manual/strings.xml: Likewise.
  2108. * doc/xml/manual/support.xml: Likewise.
  2109. * doc/xml/manual/test.xml: Likewise.
  2110. * doc/xml/manual/test_policy_data_structures.xml: Likewise.
  2111. * doc/xml/manual/using.xml: Likewise.
  2112. * doc/xml/manual/using_exceptions.xml: Likewise.
  2113. * doc/xml/manual/utilities.xml: Likewise.
  2114. * doc/html/*: Regenerate.
  2115. 2020-10-12 Patrick Palka <ppalka@redhat.com>
  2116. * include/std/ranges (take_while_view::begin): Constrain the
  2117. const overload further as per LWG 3450.
  2118. (take_while_view::end): Likewise.
  2119. * testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG
  2120. 3450.
  2121. 2020-10-12 Patrick Palka <ppalka@redhat.com>
  2122. PR libstdc++/95322
  2123. * include/std/ranges (take_view::_CI): Define this alias
  2124. template as per LWG 3449 and remove ...
  2125. (take_view::_Sentinel::_CI): ... this type alias.
  2126. (take_view::_Sentinel::operator==): Adjust use of _CI
  2127. accordingly. Define a second overload that accepts an iterator
  2128. of the opposite constness as per LWG 3449.
  2129. (take_while_view::_Sentinel::operator==): Likewise.
  2130. * testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449.
  2131. 2020-10-12 Jonathan Wakely <jwakely@redhat.com>
  2132. * doc/doxygen/user.cfg.in: Update to Doxygen 1.8.20 format.
  2133. 2020-10-12 Jonathan Wakely <jwakely@redhat.com>
  2134. * doc/doxygen/user.cfg.in (PREDEFINED): Use __cplusplus=201703L
  2135. so that C++17 features are documented.
  2136. 2020-10-12 Jonathan Wakely <jwakely@redhat.com>
  2137. * include/bits/stl_algobase.h (copy, move, copy_backward)
  2138. (move_backward): Fix documentation for returned iterator.
  2139. 2020-10-12 Martin Sebor <msebor@redhat.com>
  2140. PR c++/97201
  2141. * libsupc++/new (operator new): Add attribute alloc_size and malloc.
  2142. 2020-10-11 Clement Chigot <clement.chigot@atos.net>
  2143. * config/os/aix/t-aix: Add complementary mode object file to
  2144. libstdc++fs.a
  2145. 2020-10-10 Jonathan Wakely <jwakely@redhat.com>
  2146. PR libstdc++/97362
  2147. * doc/html/manual/source_code_style.html: Regenerate.
  2148. * doc/xml/manual/appendix_contributing.xml: Add __deref to
  2149. BADNAMES.
  2150. * include/debug/functions.h (_Irreflexive_checker::__deref):
  2151. Rename to __ref.
  2152. * testsuite/17_intro/badnames.cc: Check __deref.
  2153. 2020-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
  2154. * include/std/variant (__check_visitor_result):
  2155. Use size_t for indexes.
  2156. (__check_visitor_results): Likewise.
  2157. 2020-10-09 Ville Voutilainen <ville.voutilainen@gmail.com>
  2158. PR libstdc++/95904
  2159. * include/std/variant (__deduce_visit_result): Add a nested ::type.
  2160. (__gen_vtable_impl</*base case*/>::_S_apply):
  2161. Check the visitor return type.
  2162. (__same_types): New.
  2163. (__check_visitor_result): Likewise.
  2164. (__check_visitor_results): Likewise.
  2165. (visit(_Visitor&&, _Variants&&...)): Use __check_visitor_results
  2166. in case we're visiting just one variant.
  2167. * testsuite/20_util/variant/visit_neg.cc: Adjust.
  2168. 2020-10-09 Jonathan Wakely <jwakely@redhat.com>
  2169. PR libstdc++/97311
  2170. * include/bits/random.tcc (seed_seq::generate): Use uint32_t for
  2171. calculations. Also split the first loop into three loops to
  2172. avoid branching on k on every iteration, resolving PR 94823.
  2173. * testsuite/26_numerics/random/seed_seq/97311.cc: New test.
  2174. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-erro
  2175. line number.
  2176. 2020-10-09 Daniel Lemire <lemire@gmail.com>
  2177. * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
  2178. New member function implementing Lemire's "nearly divisionless"
  2179. algorithm.
  2180. (uniform_int_distribution::operator()): Use _S_nd when the range
  2181. of the URBG is the full width of the result type.
  2182. 2020-10-09 Jonathan Wakely <jwakely@redhat.com>
  2183. * testsuite/Makefile.am: Set and export variable separately.
  2184. * testsuite/Makefile.in: Regenerate.
  2185. 2020-10-09 Jonathan Wakely <jwakely@redhat.com>
  2186. * scripts/check_performance: Use gnu++11 instead of gnu++0x.
  2187. * testsuite/Makefile.am (check-performance): Export CXXFLAGS to
  2188. child process.
  2189. * testsuite/Makefile.in: Regenerate.
  2190. 2020-10-09 Jonathan Wakely <jwakely@redhat.com>
  2191. * testsuite/performance/26_numerics/random_dist.cc: New test.
  2192. 2020-10-09 Jonathan Wakely <jwakely@redhat.com>
  2193. * testsuite/util/testsuite_performance.h (report_header): Remove
  2194. unused variable.
  2195. 2020-10-08 Patrick Palka <ppalka@redhat.com>
  2196. PR libstdc++/95788
  2197. * include/bits/ranges_uninitialized.h:
  2198. (__construct_at_fn::operator()): Rewrite in terms of
  2199. std::construct_at. Declare it conditionally noexcept. Qualify
  2200. calls to declval in its requires-clause.
  2201. * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
  2202. New test.
  2203. 2020-10-08 Jonathan Wakely <jwakely@redhat.com>
  2204. PR libstdc++/82584
  2205. * include/bits/random.tcc
  2206. (discrete_distribution::param_type::_M_initialize)
  2207. (piecewise_constant_distribution::param_type::_M_initialize)
  2208. (piecewise_linear_distribution::param_type::_M_initialize):
  2209. Add assertions for positive sums..
  2210. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  2211. line.
  2212. 2020-10-08 Jonathan Wakely <jwakely@redhat.com>
  2213. * include/bits/ios_base.h (ios_base::failure): Add constructors
  2214. takeing error_code argument. Add code() member function.
  2215. * testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to
  2216. run for the old ABI but do not check for derivation from
  2217. std::system_error.
  2218. * testsuite/27_io/ios_base/failure/error_code.cc: New test.
  2219. 2020-10-08 Jonathan Wakely <jwakely@redhat.com>
  2220. * include/bits/random.h (__detail::_Mod): Revert last change.
  2221. (__detail::__mod): Do not use _Mod for a==0 case.
  2222. * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
  2223. Check other cases with a==0. Also check runtime results.
  2224. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  2225. line.
  2226. 2020-10-07 Jonathan Wakely <jwakely@redhat.com>
  2227. * include/bits/random.h (__detail::_Mod): Avoid divide by zero.
  2228. * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
  2229. New test.
  2230. 2020-10-07 Jonathan Wakely <jwakely@redhat.com>
  2231. * include/bits/random.h (seed_seq(initializer_list<T>)): Rename
  2232. parameter to use reserved name.
  2233. * include/bits/ranges_algo.h (shift_left, shift_right): Rename
  2234. template parameters to use reserved name.
  2235. * libsupc++/exception_ptr.h (exception_ptr): Likewise for
  2236. parameters and local variables.
  2237. * testsuite/17_intro/names.cc: Check "il". Do not check "d" and
  2238. "y" in C++20 mode.
  2239. 2020-10-06 Jonathan Wakely <jwakely@redhat.com>
  2240. PR libstdc++/90295
  2241. * config/abi/pre/gnu.ver (CXXABI_1.3.13): New symbol version.
  2242. (exception_ptr::_M_addref(), exception_ptr::_M_release()):
  2243. Export symbols.
  2244. * libsupc++/eh_ptr.cc (exception_ptr::exception_ptr()):
  2245. Remove out-of-line definition.
  2246. (exception_ptr::exception_ptr(const exception_ptr&)):
  2247. Likewise.
  2248. (exception_ptr::~exception_ptr()): Likewise.
  2249. (exception_ptr::operator=(const exception_ptr&)):
  2250. Likewise.
  2251. (exception_ptr::swap(exception_ptr&)): Likewise.
  2252. (exception_ptr::_M_addref()): Add branch prediction.
  2253. * libsupc++/exception_ptr.h (exception_ptr::operator bool):
  2254. Add noexcept.
  2255. [!_GLIBCXX_EH_PTR_COMPAT] (operator==, operator!=): Define
  2256. inline as hidden friends. Remove declarations at namespace
  2257. scope.
  2258. (exception_ptr::exception_ptr()): Define inline.
  2259. (exception_ptr::exception_ptr(const exception_ptr&)):
  2260. Likewise.
  2261. (exception_ptr::~exception_ptr()): Likewise.
  2262. (exception_ptr::operator=(const exception_ptr&)):
  2263. Likewise.
  2264. (exception_ptr::swap(exception_ptr&)): Likewise.
  2265. * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.13.
  2266. * testsuite/18_support/exception_ptr/90295.cc: New test.
  2267. 2020-10-06 Jonathan Wakely <jwakely@redhat.com>
  2268. * include/std/ranges (join_view): Remove deduction guide.
  2269. (views::join): Add explicit template argument list to prevent
  2270. deducing the wrong type.
  2271. * testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474
  2272. here, from ...
  2273. * testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed.
  2274. 2020-10-05 Jonathan Wakely <jwakely@redhat.com>
  2275. * include/bits/regex.h: Use __int_traits<int> instead of
  2276. std::numeric_limits<int>.
  2277. * include/bits/uniform_int_dist.h: Use __int_traits<T>::__max
  2278. instead of std::numeric_limits<T>::max().
  2279. * include/bits/hashtable_policy.h: Use size_t(-1) instead of
  2280. std::numeric_limits<size_t>::max().
  2281. * include/std/regex: Include <ext/numeric_traits.h>.
  2282. * include/std/string_view: Use typedef for __int_traits<int>.
  2283. * src/c++11/hashtable_c++0x.cc: Use size_t(-1) instead of
  2284. std::numeric_limits<size_t>::max().
  2285. * testsuite/std/ranges/iota/96042.cc: Include <limits>.
  2286. * testsuite/std/ranges/iota/difference_type.cc: Likewise.
  2287. * testsuite/std/ranges/subrange/96042.cc: Likewise.
  2288. 2020-10-05 Jonathan Wakely <jwakely@redhat.com>
  2289. * include/std/numeric: Move all #include directives to the top
  2290. of the header.
  2291. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
  2292. numbers.
  2293. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  2294. 2020-10-05 Jonathan Wakely <jwakely@redhat.com>
  2295. * config/abi/pre/gnu.ver: Add new symbol.
  2296. * include/bits/functexcept.h (__throw_bad_array_new_length):
  2297. Declare new function.
  2298. * include/ext/malloc_allocator.h (malloc_allocator::allocate):
  2299. Throw bad_array_new_length for impossible sizes (LWG 3190).
  2300. * include/ext/new_allocator.h (new_allocator::allocate):
  2301. Likewise.
  2302. * include/std/memory_resource (polymorphic_allocator::allocate)
  2303. (polymorphic_allocator::allocate_object): Use new function,
  2304. __throw_bad_array_new_length.
  2305. * src/c++11/functexcept.cc (__throw_bad_array_new_length):
  2306. Define.
  2307. * testsuite/20_util/allocator/lwg3190.cc: New test.
  2308. 2020-10-05 Mike Crowe <mac@mcrowe.com>
  2309. PR libstdc++/91486
  2310. * include/bits/atomic_futex.h:
  2311. (__atomic_futex_unsigned::_M_load_when_equal_until): Use target
  2312. clock duration type when rounding.
  2313. * testsuite/30_threads/async/async.cc (test_pr91486_wait_for):
  2314. Rename from test_pr91486.
  2315. (float_steady_clock): New class for test.
  2316. (test_pr91486_wait_until): New test.
  2317. 2020-10-05 Mike Crowe <mac@mcrowe.com>
  2318. * testsuite/20_util/duration_cast/rounding_c++11.cc: Copy
  2319. rounding.cc and alter to support compilation for C++11 and to
  2320. test std::chrono::__detail::ceil.
  2321. 2020-10-02 Jonathan Wakely <jwakely@redhat.com>
  2322. * testsuite/29_atomics/atomic_float/value_init.cc: Use float
  2323. instead of double so that __atomic_load_8 isn't needed.
  2324. 2020-10-02 Jonathan Wakely <jwakely@redhat.com>
  2325. * testsuite/18_support/96817.cc: Use terminate handler that
  2326. calls _Exit(0).
  2327. 2020-10-02 Patrick Palka <ppalka@redhat.com>
  2328. * include/bits/stl_iterator.h (reverse_iterator::iter_move):
  2329. Define for C++20 as per P0896.
  2330. (reverse_iterator::iter_swap): Likewise.
  2331. (move_iterator::operator*): Apply P0896 changes for C++20.
  2332. (move_iterator::operator[]): Likewise.
  2333. * testsuite/24_iterators/reverse_iterator/cust.cc: New test.
  2334. 2020-10-01 Jonathan Wakely <jwakely@redhat.com>
  2335. * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
  2336. Do not try to dereference return value of __atomic_load_n.
  2337. 2020-09-30 Jonathan Wakely <jwakely@redhat.com>
  2338. * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
  2339. (_GLIBCXX_GUARD_SET_AND_RELEASE): Define for EABI.
  2340. 2020-09-30 Jonathan Wakely <jwakely@redhat.com>
  2341. * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
  2342. Define for GCC 11 or when !__is_identifier(__is_same).
  2343. (_GLIBCXX_BUILTIN_IS_SAME_AS): Remove.
  2344. * include/std/type_traits (is_same, is_same_v): Replace uses
  2345. of _GLIBCXX_BUILTIN_IS_SAME_AS.
  2346. 2020-09-28 Patrick Palka <ppalka@redhat.com>
  2347. * include/std/ranges (filter_view): Declare the data member
  2348. _M_base last instead of first, and adjust constructors' member
  2349. initializer lists accordingly.
  2350. (transform_view): Likewise.
  2351. (take_view): Likewise.
  2352. (take_while_view): Likewise.
  2353. (drop_view): Likewise.
  2354. (drop_while_view): Likewise.
  2355. (join_view): Likewise.
  2356. (split_view): Likewise (and tweak nearby formatting).
  2357. (reverse_view): Likewise.
  2358. * testsuite/std/ranges/adaptors/sizeof.cc: Update expected
  2359. sizes.
  2360. 2020-09-28 Patrick Palka <ppalka@redhat.com>
  2361. * testsuite/std/ranges/adaptors/sizeof.cc: New test.
  2362. 2020-09-28 Patrick Palka <ppalka@redhat.com>
  2363. * include/bits/ranges_util.h (subrange::_M_end): Give it
  2364. [[no_unique_address]].
  2365. * testsuite/std/ranges/subrange/sizeof.cc: New test.
  2366. 2020-09-28 Patrick Palka <ppalka@redhat.com>
  2367. * include/std/ranges (iota_view::_M_bound): Give it
  2368. [[no_unique_address]].
  2369. * testsuite/std/ranges/iota/iota_view.cc: Check that an
  2370. unbounded iota_view has minimal size.
  2371. 2020-09-27 Clement Chigot <clement.chigot@atos.net>
  2372. * config/os/aix/t-aix: Use $(AR) without -X32_64.
  2373. 2020-09-26 Jonathan Wakely <jwakely@redhat.com>
  2374. PR libstdc++/96817
  2375. * include/ext/atomicity.h (__gnu_cxx::__is_single_threaded()):
  2376. New function wrapping __libc_single_threaded if available.
  2377. (__exchange_and_add_dispatch, __atomic_add_dispatch): Use it.
  2378. * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_abort)
  2379. (__cxa_guard_release): Likewise.
  2380. * testsuite/18_support/96817.cc: New test.
  2381. 2020-09-25 Jonathan Wakely <jwakely@redhat.com>
  2382. * libsupc++/Makefile.am: Remove redundant -std=gnu++1z flags.
  2383. * libsupc++/Makefile.in: Regenerate.
  2384. 2020-09-24 Antony Polukhin <antoshkka@gmail.com>
  2385. PR libstdc++/71579
  2386. * include/std/type_traits (invoke_result, is_invocable)
  2387. (is_invocable_r, is_nothrow_invocable, is_nothrow_invocable_r):
  2388. Add static_asserts to make sure that the arguments of the type
  2389. traits are not misused with incomplete types.
  2390. * testsuite/20_util/invoke_result/incomplete_args_neg.cc: New test.
  2391. * testsuite/20_util/is_invocable/incomplete_args_neg.cc: New test.
  2392. * testsuite/20_util/is_invocable/incomplete_neg.cc: New test.
  2393. * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
  2394. New test.
  2395. * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: Check
  2396. for error on incomplete type usage in trait.
  2397. 2020-09-24 Patrick Palka <ppalka@redhat.com>
  2398. * include/std/ranges (__detail::__boxable): Split out the
  2399. associated constraints of __box into here.
  2400. (__detail::__box): Use the __boxable concept. Define a leaner
  2401. partial specialization for semiregular types.
  2402. (single_view::_M_value): Give it [[no_unique_address]].
  2403. (filter_view::_M_pred): Likewise.
  2404. (transform_view::_M_fun): Likewise.
  2405. (take_while_view::_M_pred): Likewise.
  2406. (drop_while_view::_M_pred):: Likewise.
  2407. * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: New
  2408. test.
  2409. 2020-09-24 Jonathan Wakely <jwakely@redhat.com>
  2410. * doc/xml/manual/configure.xml: Correct name of option.
  2411. * doc/html/*: Regenerate.
  2412. 2020-09-22 Jonathan Wakely <jwakely@redhat.com>
  2413. PR libstdc++/97167
  2414. * src/c++17/fs_path.cc (path::_Parser::root_path()): Check
  2415. for empty string before inspecting the first character.
  2416. * testsuite/27_io/filesystem/path/append/source.cc: Append
  2417. empty string_view to path.
  2418. 2020-09-22 Glen Joseph Fernandes <glenjofe@gmail.com>
  2419. * include/bits/align.h (align): Fix overflow handling.
  2420. * testsuite/20_util/align/3.cc: New test.
  2421. 2020-09-22 Jonathan Wakely <jwakely@redhat.com>
  2422. * include/Makefile.am: Add new headers and adjust for renamed
  2423. header.
  2424. * include/Makefile.in: Regenerate.
  2425. * include/bits/iterator_concepts.h: Adjust for renamed header.
  2426. * include/bits/range_access.h (ranges::*): Move to new
  2427. <bits/ranges_base.h> header.
  2428. * include/bits/ranges_algobase.h: Include new <bits/ranges_base.h>
  2429. header instead of <ranges>.
  2430. * include/bits/ranges_algo.h: Include new <bits/ranges_util.h>
  2431. header.
  2432. * include/bits/range_cmp.h: Moved to...
  2433. * include/bits/ranges_cmp.h: ...here.
  2434. * include/bits/ranges_base.h: New header.
  2435. * include/bits/ranges_util.h: New header.
  2436. * include/experimental/string_view: Include new
  2437. <bits/ranges_base.h> header.
  2438. * include/std/functional: Adjust for renamed header.
  2439. * include/std/ranges (ranges::view_base, ranges::enable_view)
  2440. (ranges::dangling, ranges::borrowed_iterator_t): Move to new
  2441. <bits/ranges_base.h> header.
  2442. (ranges::view_interface, ranges::subrange)
  2443. (ranges::borrowed_subrange_t): Move to new <bits/ranges_util.h>
  2444. header.
  2445. * include/std/span: Include new <bits/ranges_base.h> header.
  2446. * include/std/string_view: Likewise.
  2447. * testsuite/24_iterators/back_insert_iterator/pr93884.cc: Add
  2448. missing <ranges> header.
  2449. * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
  2450. Likewise.
  2451. 2020-09-22 Jonathan Wakely <jwakely@redhat.com>
  2452. PR libstdc++/96803
  2453. * include/std/tuple
  2454. (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
  2455. Use correct value category in __use_alloc call.
  2456. * testsuite/20_util/tuple/cons/96803.cc: Check with constructors
  2457. that require correct value category to be used.
  2458. 2020-09-22 Patrick Palka <ppalka@redhat.com>
  2459. * include/std/span (span::front): Remove static_assert.
  2460. (span::back): Likewise.
  2461. (span::operator[]): Likewise.
  2462. * testsuite/23_containers/span/back_neg.cc: Rewrite to verify
  2463. that we check the preconditions of back() only when it's called.
  2464. * testsuite/23_containers/span/front_neg.cc: Likewise for
  2465. front().
  2466. * testsuite/23_containers/span/index_op_neg.cc: Likewise for
  2467. operator[].
  2468. 2020-09-22 Patrick Palka <ppalka@redhat.com>
  2469. * include/bits/stl_algo.h (__sample): Exit early when the
  2470. input range is empty.
  2471. * testsuite/25_algorithms/sample/3.cc: New test.
  2472. 2020-09-22 Patrick Palka <ppalka@redhat.com>
  2473. * include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20.
  2474. (search): Likewise for the overload that takes a searcher.
  2475. * testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr
  2476. std::for_each_n.
  2477. * testsuite/25_algorithms/search/constexpr.cc: Test constexpr
  2478. std::search overload that takes a searcher.
  2479. 2020-09-21 Jonathan Wakely <jwakely@redhat.com>
  2480. * include/bits/c++config (__replacement_assert): Add noreturn
  2481. attribute.
  2482. (__glibcxx_assert_impl): Use __builtin_expect to hint that the
  2483. assertion is expected to pass.
  2484. 2020-09-21 Jonathan Wakely <jwakely@redhat.com>
  2485. * include/std/ranges (drop_view::begin()): Adjust constraints
  2486. to match the correct condition for O(1) ranges::next (LWG 3482).
  2487. * testsuite/std/ranges/adaptors/drop.cc: Check that iterator is
  2488. cached for non-sized_range.
  2489. 2020-09-21 Jonathan Wakely <jwakely@redhat.com>
  2490. * include/std/ranges (transform_view, elements_view): Relax
  2491. constraints on operator- for iterators, as per LWG 3483.
  2492. * testsuite/std/ranges/adaptors/elements.cc: Check that we
  2493. can take the difference of two iterators from a non-random
  2494. access range.
  2495. * testsuite/std/ranges/adaptors/transform.cc: Likewise.
  2496. 2020-09-21 Jonathan Wakely <jwakely@redhat.com>
  2497. PR libstdc++/97132
  2498. * include/bits/align.h (align) [!_GLIBCXX_USE_C99_STDINT_TR1]:
  2499. Remove unused code.
  2500. (assume_aligned): Do not use __builtin_assume_aligned during
  2501. constant evaluation.
  2502. * testsuite/20_util/assume_aligned/1.cc: Improve test.
  2503. * testsuite/20_util/assume_aligned/97132.cc: New test.
  2504. 2020-09-20 Jonathan Wakely <jwakely@redhat.com>
  2505. PR libstdc++/97101
  2506. * include/std/functional (bind_front): Fix order of parameters
  2507. in is_nothrow_constructible_v specialization.
  2508. * testsuite/20_util/function_objects/bind_front/97101.cc: New test.
  2509. 2020-09-11 Thomas Rodgers <trodgers@redhat.com>
  2510. * include/std/memory: Move #include <bits/align.h> inside C++11
  2511. conditional includes.
  2512. 2020-09-11 Thomas Rodgers <trodgers@redhat.com>
  2513. * include/Makefile.am (bits_headers): Add new header.
  2514. * include/Makefile.in: Regenerate.
  2515. * include/bits/align.h: New file.
  2516. * include/std/memory (align): Move definition to bits/align.h.
  2517. (assume_aligned): Likewise.
  2518. 2020-09-11 Jonathan Wakely <jwakely@redhat.com>
  2519. * include/std/chrono [C++17] (chrono::__detail::ceil): Add
  2520. using declaration to make chrono::ceil available for internal
  2521. use with a consistent name.
  2522. (chrono::__detail::__ceil_impl): New function template.
  2523. (chrono::__detail::ceil): Use __ceil_impl to compare and
  2524. increment the value. Remove SFINAE constraint.
  2525. 2020-09-11 Jonathan Wakely <jwakely@redhat.com>
  2526. * include/bits/regex_error.h (__throw_regex_error): Fix
  2527. parameter declaration and use reserved attribute names.
  2528. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2529. * include/std/condition_variable (condition_variable::wait_until):
  2530. Convert delta to steady_clock duration before adding to current
  2531. steady_clock time to avoid rounding errors described in PR68519.
  2532. (condition_variable::wait_for): Simplify calculation of absolute
  2533. time by using chrono::__detail::ceil in both overloads.
  2534. * testsuite/30_threads/condition_variable/members/68519.cc:
  2535. (test_wait_for): Renamed from test01. Replace unassigned val
  2536. variable with constant false. Reduce scope of mx and cv
  2537. variables to just test_wait_for function.
  2538. (test_wait_until): Add new test case.
  2539. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2540. PR libstdc++/91486
  2541. * include/bits/atomic_futex.h
  2542. (__atomic_futex_unsigned::_M_load_when_equal_for)
  2543. (__atomic_futex_unsigned::_M_load_when_equal_until): Use
  2544. __detail::ceil to convert delta to the reference clock
  2545. duration type to avoid resolution problems.
  2546. * include/std/chrono (__detail::ceil): Move implementation
  2547. of std::chrono::ceil into private namespace so that it's
  2548. available to pre-C++17 code.
  2549. * testsuite/30_threads/async/async.cc (test_pr91486):
  2550. Test __atomic_futex_unsigned::_M_load_when_equal_for.
  2551. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2552. * include/bits/atomic_futex.h
  2553. (__atomic_futex_unsigned::_M_load_when_equal_until): Add
  2554. loop on generic _Clock to check the timeout against _Clock
  2555. again after _M_load_when_equal_until returns indicating a
  2556. timeout.
  2557. * testsuite/30_threads/async/async.cc: Invent slow_clock
  2558. that runs at an eleventh of steady_clock's speed. Use it
  2559. to test the user-supplied-clock variant of
  2560. __atomic_futex_unsigned::_M_load_when_equal_until works
  2561. generally with test03 and loops correctly when the timeout
  2562. time hasn't been reached in test04.
  2563. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2564. PR libstdc++/93542
  2565. * include/bits/atomic_futex.h (__atomic_futex_unsigned): Change
  2566. __clock_t typedef to use steady_clock so that unknown clocks are
  2567. synced to it rather than system_clock. Change existing __clock_t
  2568. overloads of _M_load_and_text_until_impl and
  2569. _M_load_when_equal_until to use system_clock explicitly. Remove
  2570. comment about DR 887 since these changes address that problem as
  2571. best as we currently able.
  2572. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2573. PR libstdc++/93542
  2574. * config/abi/pre/gnu.ver: Update for addition of
  2575. __atomic_futex_unsigned_base::_M_futex_wait_until_steady.
  2576. * include/bits/atomic_futex.h (__atomic_futex_unsigned_base):
  2577. Add comments to clarify that _M_futex_wait_until and
  2578. _M_load_and_test_until use CLOCK_REALTIME.
  2579. (__atomic_futex_unsigned_base::_M_futex_wait_until_steady)
  2580. (__atomic_futex_unsigned_base::_M_load_and_text_until_steady):
  2581. New member functions that use CLOCK_MONOTONIC.
  2582. (__atomic_futex_unsigned_base::_M_load_and_test_until_impl)
  2583. (__atomic_futex_unsigned_base::_M_load_when_equal_until): Add
  2584. overloads that accept a steady_clock time_point and use the
  2585. new member functions.
  2586. * src/c++11/futex.cc: Include headers required for
  2587. clock_gettime.
  2588. (futex_clock_monotonic_flag): New constant to tell futex to
  2589. use CLOCK_MONOTONIC to match existing futex_clock_realtime_flag.
  2590. (futex_clock_monotonic_unavailable): New global to store the
  2591. result of trying to use CLOCK_MONOTONIC.
  2592. (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): Add
  2593. new variant of _M_futex_wait_until that uses CLOCK_MONOTONIC to
  2594. support waiting using steady_clock.
  2595. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2596. * src/c++11/futex.cc: Add new constants for required futex
  2597. flags. Add futex_clock_realtime_unavailable flag to store
  2598. result of trying to use FUTEX_CLOCK_REALTIME.
  2599. (__atomic_futex_unsigned_base::_M_futex_wait_until): Try to
  2600. use FUTEX_WAIT_BITSET with FUTEX_CLOCK_REALTIME and only
  2601. fall back to using gettimeofday and FUTEX_WAIT if that's not
  2602. supported.
  2603. 2020-09-11 Mike Crowe <mac@mcrowe.com>
  2604. * testsuite/30_threads/async/async.cc (test02): Test steady_clock
  2605. with std::future::wait_until.
  2606. (test03): Add new test templated on clock type waiting for future
  2607. associated with async to resolve.
  2608. (main): Call test03 to test both system_clock and steady_clock.
  2609. 2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
  2610. Christophe Lyon <christophe.lyon@linaro.org>
  2611. * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
  2612. 2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
  2613. Christophe Lyon <christophe.lyon@linaro.org>
  2614. * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
  2615. 2020-09-11 Christophe Lyon <christophe.lyon@linaro.org>
  2616. * include/bits/regex_error.h: Avoid warning with -fno-exceptions.
  2617. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2618. * include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):
  2619. Add casts to compare types of the same signedness.
  2620. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2621. * include/bits/ranges_algobase.h (__equal_fn): Remove unused
  2622. typedef.
  2623. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2624. * include/std/version (__cpp_lib_array_constexpr):
  2625. (__cpp_lib_constexpr_char_traits): Only define C++17 value when
  2626. compiling C++17.
  2627. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2628. * include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&))
  2629. (operator=(auto_ptr&&)): Add diagnostic pragmas to suppress
  2630. warnings for uses of std::auto_ptr.
  2631. * include/experimental/type_traits (is_literal_type_v):
  2632. Likewise, for use of std::is_literal_type.
  2633. * include/std/condition_variable (condition_variable_any::_Unlock):
  2634. Likewise, for use of std::uncaught_exception.
  2635. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2636. * include/bits/fs_path.h (path::_List::type()): Avoid narrowing
  2637. conversion.
  2638. * include/std/chrono (operator+(const year&, const years&)):
  2639. Likewise.
  2640. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2641. * include/bits/codecvt.h (codecvt_byname): Remove names of
  2642. unused parameters.
  2643. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2644. * include/bits/locale_facets_nonio.tcc: Adjust whitespace.
  2645. 2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com>
  2646. * include/c_global/cmath (__lerp): Avoid -Wparentheses warnings.
  2647. 2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com>
  2648. * include/bits/atomic_base.h: Fix -Wunused-variable
  2649. warnings.
  2650. * include/ext/new_allocator.h: Fix -Wunused-parameter
  2651. warnings.
  2652. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2653. * include/bits/stl_iterator.h (counted_iterator): Add assertions
  2654. to check preconditions added by LWG 3472.
  2655. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2656. PR libstdc++/94160
  2657. * src/c++17/memory_resource.cc (munge_options): Round
  2658. max_blocks_per_chunk to a multiple of four.
  2659. (__pool_resource::_M_alloc_pools()): Simplify slightly.
  2660. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
  2661. Check that valid pointers are returned when small values are
  2662. used for max_blocks_per_chunk.
  2663. 2020-09-10 Jonathan Wakely <jwakely@redhat.com>
  2664. PR libstdc++/96942
  2665. * include/std/memory_resource (monotonic_buffer_resource::do_allocate):
  2666. Use __builtin_expect when checking if a new buffer needs to be
  2667. allocated from the upstream resource, and for checks for edge
  2668. cases like zero sized buffers and allocations.
  2669. * src/c++17/memory_resource.cc (aligned_size): New class template.
  2670. (aligned_ceil): New helper function to round up to a given
  2671. alignment.
  2672. (monotonic_buffer_resource::chunk): Replace _M_size and _M_align
  2673. with an aligned_size member. Remove _M_canary member. Change _M_next
  2674. to pointer instead of unaligned buffer.
  2675. (monotonic_buffer_resource::chunk::allocate): Round up to multiple
  2676. of 64 instead of to power of two. Check for size overflow. Remove
  2677. redundant check for minimum required alignment.
  2678. (monotonic_buffer_resource::chunk::release): Adjust for changes
  2679. to data members.
  2680. (monotonic_buffer_resource::_M_new_buffer): Use aligned_ceil.
  2681. (big_block): Replace _M_size and _M_align with aligned_size
  2682. member.
  2683. (big_block::big_block): Check for size overflow.
  2684. (big_block::size, big_block::align): Adjust to use aligned_size.
  2685. (big_block::alloc_size): Use aligned_ceil.
  2686. (munge_options): Use aligned_ceil.
  2687. (__pool_resource::allocate): Use big_block::align for alignment.
  2688. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Check
  2689. upstream resource gets expected values for impossible sizes.
  2690. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
  2691. Likewise. Adjust checks for expected alignment in existing test.
  2692. 2020-09-07 Jonathan Wakely <jwakely@redhat.com>
  2693. * include/std/chrono (duration::_S_gcd): Use invariant that
  2694. neither value is zero initially.
  2695. 2020-09-07 Jonathan Wakely <jwakely@redhat.com>
  2696. * include/std/ranges (__box): Simplify constraints as per LWG 3477.
  2697. 2020-09-03 Jonathan Wakely <jwakely@redhat.com>
  2698. PR libstdc++/96592
  2699. * include/std/tuple (_TupleConstraints<true, T...>): Use
  2700. alternative is_constructible instead of std::is_constructible.
  2701. * testsuite/20_util/tuple/cons/96592.cc: New test.
  2702. 2020-09-03 Jonathan Wakely <jwakely@redhat.com>
  2703. * include/std/chrono (duration::_S_gcd): Use iterative algorithm
  2704. for C++14 and later.
  2705. * include/std/numeric (__detail::__gcd): Replace recursive
  2706. Euclidean algorithm with iterative version of binary GCD algorithm.
  2707. * testsuite/26_numerics/gcd/1.cc: Test additional inputs.
  2708. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
  2709. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  2710. * testsuite/experimental/numeric/gcd.cc: Test additional inputs.
  2711. * testsuite/26_numerics/gcd/2.cc: New test.
  2712. 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
  2713. PR libstdc++/92978
  2714. * testsuite/experimental/numeric/92978.cc: Use experimental::lcm
  2715. not std::lcm.
  2716. 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
  2717. PR libstdc++/96851
  2718. * include/bits/cpp_type_traits.h (__is_memcmp_ordered):
  2719. New trait that says if memcmp can be used for ordering.
  2720. (__is_memcmp_ordered_with): Likewise, for two types.
  2721. * include/bits/deque.tcc (__lex_cmp_dit): Use new traits
  2722. instead of __is_byte and __numeric_traits.
  2723. (__lexicographical_compare_aux1): Likewise.
  2724. * include/bits/ranges_algo.h (__lexicographical_compare_fn):
  2725. Likewise.
  2726. * include/bits/stl_algobase.h (__lexicographical_compare_aux1)
  2727. (__is_byte_iter): Likewise.
  2728. * include/std/array (operator<=>): Likewise. Only use memcmp
  2729. when std::is_constant_evaluated() is false.
  2730. * testsuite/23_containers/array/comparison_operators/96851.cc:
  2731. New test.
  2732. * testsuite/23_containers/array/tuple_interface/get_neg.cc:
  2733. Adjust dg-error line numbers.
  2734. 2020-09-02 Jonathan Wakely <jwakely@redhat.com>
  2735. * include/bits/stl_iterator.h: Include <bits/exception_defines.h>
  2736. for definitions of __try, __catch and __throw_exception_again.
  2737. (counted_iterator::operator++(int)): Use __throw_exception_again
  2738. instead of throw.
  2739. * libsupc++/new: Include <bits/exception.h> not <exception>.
  2740. * libsupc++/new_opvnt.cc: Include <bits/exception_defines.h>.
  2741. * testsuite/18_support/destroying_delete.cc: Include
  2742. <type_traits> for std::is_same_v definition.
  2743. * testsuite/20_util/variant/index_type.cc: Qualify size_t.
  2744. 2020-09-01 Jonathan Wakely <jwakely@redhat.com>
  2745. PR libstdc++/71960
  2746. * include/bits/c++config (__glibcxx_assert_impl): Remove
  2747. do-while so that uses of the macro need to add it.
  2748. (__glibcxx_assert): Rename macro for runtime assertions
  2749. to __glibcxx_assert_2.
  2750. (__glibcxx_assert_1): Define macro for constexpr assertions.
  2751. (__glibcxx_assert): Define macro for constexpr and runtime
  2752. assertions.
  2753. * include/bits/range_access.h (ranges::advance): Remove
  2754. redundant precondition checks during constant evaluation.
  2755. * include/parallel/base.h (_GLIBCXX_PARALLEL_ASSERT): Always
  2756. use do-while in macro expansion.
  2757. * include/std/ranges (iota_view::iota_view(W, B)): Remove
  2758. redundant braces.
  2759. 2020-09-01 Jonathan Wakely <jwakely@redhat.com>
  2760. * include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)):
  2761. New helper function for finding GCD of two positive intmax_t
  2762. values.
  2763. (duration::__divide): New helper alias for dividing one period
  2764. by another.
  2765. (duration::__is_harmonic): Use __divide not ratio_divide.
  2766. (duration(const duration<R2, P2>&)): Require the duration rep
  2767. types to be convertible.
  2768. * testsuite/20_util/duration/cons/dr2094.cc: New test.
  2769. * testsuite/20_util/duration/requirements/reduced_period.cc:
  2770. Fix definition of unused member functions in test type.
  2771. * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
  2772. Adjust expected errors.
  2773. 2020-08-29 Jonathan Wakely <jwakely@redhat.com>
  2774. * include/std/numeric (__detail::__absu(bool)): Make deleted
  2775. function a function template, so it will be chosen for calls
  2776. with an explicit template argument list.
  2777. * testsuite/26_numerics/gcd/gcd_neg.cc: Add dg-prune-output.
  2778. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  2779. 2020-08-28 Jonathan Wakely <jwakely@redhat.com>
  2780. * include/std/chrono (common_type): Fix partial specializations
  2781. for a single duration type to use the common_type of the rep.
  2782. (duration::operator+, duration::operator-): Fix return types
  2783. to also use the common_type of the rep.
  2784. * testsuite/20_util/duration/requirements/reduced_period.cc:
  2785. Check duration using a rep that has common_type specialized.
  2786. 2020-08-28 Jonathan Wakely <jwakely@redhat.com>
  2787. PR libstdc++/92978
  2788. * include/std/numeric (__abs_integral): Replace with ...
  2789. (__detail::__absu): New function template that returns an
  2790. unsigned type, guaranteeing it can represent the most
  2791. negative signed value.
  2792. (__detail::__gcd, __detail::__lcm): Require arguments to
  2793. be unsigned and therefore already non-negative.
  2794. (gcd, lcm): Convert arguments to absolute value as unsigned
  2795. type before calling __detail::__gcd or __detail::__lcm.
  2796. * include/experimental/numeric (gcd, lcm): Likewise.
  2797. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
  2798. errors.
  2799. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  2800. * testsuite/26_numerics/gcd/92978.cc: New test.
  2801. * testsuite/26_numerics/lcm/92978.cc: New test.
  2802. * testsuite/experimental/numeric/92978.cc: New test.
  2803. 2020-08-27 Jonathan Wakely <jwakely@redhat.com>
  2804. * include/std/chrono (__duration_common_type): Ensure the
  2805. reduced ratio is used. Remove unused partial specialization
  2806. using __failure_type.
  2807. (common_type): Pass reduced ratios to __duration_common_type.
  2808. Add partial specializations for simple cases involving a single
  2809. duration or time_point type.
  2810. (duration::period): Use reduced ratio.
  2811. (duration::operator+(), duration::operator-()): Return duration
  2812. type using the reduced ratio.
  2813. * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
  2814. Adjust expected errors.
  2815. * testsuite/20_util/duration/requirements/reduced_period.cc: New test.
  2816. 2020-08-27 Patrick Palka <ppalka@redhat.com>
  2817. * include/std/chrono (year_month::operator+): Properly handle a
  2818. month value of 0 by casting the month value to int before
  2819. subtracting 1 from it so that the difference is sign-extended in
  2820. the subsequent addition.
  2821. * testsuite/std/time/year_month/1.cc: Test adding months to a
  2822. year_month whose month component is below or above the
  2823. normalized range of [1,12].
  2824. 2020-08-27 Patrick Palka <ppalka@redhat.com>
  2825. * include/std/chrono
  2826. (__detail::__months_years_conversion_disambiguator): Define.
  2827. (year_month::operator+=): Templatize the 'months'-based overload
  2828. so that the 'years'-based overload is selected in case of
  2829. equally-ranked implicit conversion sequences to both 'months'
  2830. and 'years' from the supplied argument.
  2831. (year_month::operator-=): Likewise.
  2832. (year_month::operator+): Likewise.
  2833. (year_month::operator-): Likewise.
  2834. (year_month_day::operator+=): Likewise.
  2835. (year_month_day::operator-=): Likewise.
  2836. (year_month_day::operator+): Likewise.
  2837. (year_month_day::operator-): Likewise.
  2838. (year_month_day_last::operator+=): Likewise.
  2839. (year_month_day_last::operator-=): Likewise.
  2840. (year_month_day_last::operator+): Likewise
  2841. (year_month_day_last::operator-): Likewise.
  2842. (year_month_day_weekday::operator+=): Likewise
  2843. (year_month_day_weekday::operator-=): Likewise.
  2844. (year_month_day_weekday::operator+): Likewise.
  2845. (year_month_day_weekday::operator-): Likewise.
  2846. (year_month_day_weekday_last::operator+=): Likewise
  2847. (year_month_day_weekday_last::operator-=): Likewise.
  2848. (year_month_day_weekday_last::operator+): Likewise.
  2849. (year_month_day_weekday_last::operator-): Likewise.
  2850. (testsuite/std/time/year_month/2.cc): New test.
  2851. (testsuite/std/time/year_month_day/2.cc): New test.
  2852. (testsuite/std/time/year_month_day_last/2.cc): New test.
  2853. (testsuite/std/time/year_month_weekday/2.cc): New test.
  2854. (testsuite/std/time/year_month_weekday_last/2.cc): New test.
  2855. * testsuite/std/time/year_month/2.cc: New file.
  2856. * testsuite/std/time/year_month_day/2.cc: New file.
  2857. * testsuite/std/time/year_month_day_last/2.cc: New file.
  2858. * testsuite/std/time/year_month_weekday/2.cc: New file.
  2859. * testsuite/std/time/year_month_weekday_last/2.cc: New file.
  2860. 2020-08-27 Patrick Palka <ppalka@redhat.com>
  2861. PR libstdc++/95322
  2862. * include/std/ranges (transform_view::sentinel::__distance_from):
  2863. Give this a deduced return type.
  2864. (transform_view::sentinel::operator-): Adjust the return type so
  2865. that it's based on the constness of the iterator rather than
  2866. that of the sentinel.
  2867. * testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488.
  2868. 2020-08-27 Patrick Palka <ppalka@redhat.com>
  2869. * include/std/ranges (elements_view::begin): Adjust constraints.
  2870. (elements_view::end): Likewise.
  2871. (elements_view::_Sentinel::operator==): Templatize to take both
  2872. _Iterator<true> and _Iterator<false>.
  2873. (elements_view::_Sentinel::operator-): Likewise.
  2874. * testsuite/std/ranges/adaptors/elements.cc: Add testcase for
  2875. the example from P1994R1.
  2876. * testsuite/std/ranges/adaptors/lwg3406.cc: New test.
  2877. 2020-08-27 Patrick Palka <ppalka@redhat.com>
  2878. * include/std/ranges (elements_view::end): Replace these two
  2879. overloads with four new overloads.
  2880. (elements_view::_Iterator::operator==): Remove.
  2881. (elements_view::_Iterator::operator-): Likewise.
  2882. (elements_view::_Sentinel): Define.
  2883. 2020-08-26 Jonathan Wakely <jwakely@redhat.com>
  2884. * include/std/tuple (_Tuple_impl): Whitespaces changes for
  2885. consistent indentation. Also use __enable_if_t alias template.
  2886. 2020-08-26 Jonathan Wakely <jwakely@redhat.com>
  2887. PR libstdc++/96803
  2888. * include/std/tuple
  2889. (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
  2890. Replace parameter pack with a type parameter and a pack and pass
  2891. the first type to __use_alloc.
  2892. * testsuite/20_util/tuple/cons/96803.cc: New test.
  2893. 2020-08-26 Patrick Palka <ppalka@redhat.com>
  2894. * include/std/chrono (year_month_weekday::operator==): Compare
  2895. weekday_indexed instead of weekday.
  2896. * testsuite/std/time/year_month_weekday/1.cc: Augment testcase.
  2897. 2020-08-26 Jonathan Wakely <jwakely@redhat.com>
  2898. * include/bits/hashtable_policy.h (_Hash_code_base): Change
  2899. index of _Hashtable_ebo_helper base class.
  2900. * testsuite/23_containers/unordered_map/dup_types.cc: New test.
  2901. 2020-08-26 Jonathan Wakely <jwakely@redhat.com>
  2902. PR libstdc++/71960
  2903. * include/experimental/string_view (basic_string_view):
  2904. Enable debug assertions.
  2905. * include/std/string_view (basic_string_view):
  2906. Likewise.
  2907. 2020-08-26 François Dumont <fdumont@gcc.gnu.org>
  2908. * include/bits/hashtable_policy.h (_Hashtable<>): Rename _H1 into _Hash
  2909. _H2 into _RangeHash and _Hash into _Unused.
  2910. (_Hastable_base<>): Likewise.
  2911. (_Map_base<>): Likewise.
  2912. (_Insert_base<>): Likewise.
  2913. (_Insert<>): Likewise.
  2914. (_Rehash_base<>): Likewise.
  2915. (_Local_iterator_base<>): Likewise.
  2916. (_Hash_code_base<>): Likewise.
  2917. (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>):
  2918. Remove.
  2919. (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, true>):
  2920. Remove.
  2921. (_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHas, _Unused,
  2922. bool>): Remove _Hashtable_ebo_helper<2, _RangeHash> base type..
  2923. (_Hash_code_base<>::_M_bucket_index(const _Key&, __hash_code, size_t)):
  2924. Replace by...
  2925. (_Hash_code_base<>::_M_bucket_index(__hash_code, size_t)): ...this.
  2926. (_Local_iterator<>): Remove _H1 and _H2 template parameters.
  2927. (_Local_const_iterator<>): Likewise.
  2928. (_Equality<>): Likewise.
  2929. (_Map_base<>::operator[](const key_type&): Adapt.
  2930. (_Map_base<>::operator[](key_type&&): Adapt.
  2931. (_Identity::operator()): Add noexcept.
  2932. (_Select1st::operator()): Likewise.
  2933. (_Hash_code_base<>): Remove _Hashtable_ebo_helper<0, _ExtractKey> base
  2934. type.
  2935. (_Hash_code_base::_M_extract): Remove.
  2936. * include/bits/hashtable.h (_Hashtable<>): Remove _H1 and _H2 template
  2937. parameters. Remove _ExtractKey from constructors.
  2938. (_Hashtable<>::_M_insert_unique_node(const key_type&, size_t,
  2939. __hash_code, __node_type*, size_t)): Replace by...
  2940. (_Hashtable<>::_M_insert_unique_node(size_t, __hash_code,
  2941. __node_type*, size_t)): ...this.
  2942. (_Hashtable<>::_M_insert_muti_node(__node_type*, const key_type&,
  2943. __hash_code, __node_type*)): Replace by...
  2944. (_Hashtable<>::_M_insert_multi_node(__node_type*, __hash_code,
  2945. __node_type*)): ...this.
  2946. (_Hashtable<>::__key_extract): Remove.
  2947. * include/bits/node_handle.h: Adapt.
  2948. 2020-08-25 Jonathan Wakely <jwakely@redhat.com>
  2949. * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Removed.
  2950. * testsuite/21_strings/debug/self_move_assign_neg.cc: Removed.
  2951. * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc: Removed.
  2952. * testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Removed.
  2953. * testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc: Removed.
  2954. * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc: Removed.
  2955. * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc: Removed.
  2956. * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Removed.
  2957. * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc: Removed.
  2958. * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Removed.
  2959. * testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc: Removed.
  2960. * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Removed.
  2961. * testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc: Removed.
  2962. * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Removed.
  2963. * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc: Removed.
  2964. * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Removed.
  2965. * testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc: Removed.
  2966. * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc: Removed.
  2967. * testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
  2968. Removed.
  2969. * testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc: Removed.
  2970. * testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
  2971. Removed.
  2972. * testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc: Removed.
  2973. * testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc: Removed.
  2974. * testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc: Removed.
  2975. * testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc: Removed.
  2976. * testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Removed.
  2977. 2020-08-25 Patrick Palka <ppalka@redhat.com>
  2978. * include/std/chrono (year_month_weekday::ok): Fix assert.
  2979. 2020-08-25 Jonathan Wakely <jwakely@redhat.com>
  2980. * include/std/future (future, shared_future. promise): Add
  2981. is_destructible assertion (LWG 3466). Adjust string-literal for
  2982. !is_array and !is_function assertions.
  2983. * testsuite/30_threads/future/requirements/lwg3458.cc: Check
  2984. types with no accessible destructor. Adjust expected errors.
  2985. * testsuite/30_threads/promise/requirements/lwg3466.cc:
  2986. Likewise.
  2987. * testsuite/30_threads/shared_future/requirements/lwg3458.cc:
  2988. Likewise.
  2989. 2020-08-25 Patrick Palka <ppalka@redhat.com>
  2990. Ed Smith-Rowland <3dw4rd@verizon.net>
  2991. Jonathan Wakely <jwakely@redhat.com>
  2992. * include/std/chrono (time_point::operator++)
  2993. (time_point::operator--): Define.
  2994. (utc_clock, tai_clock, gps_clock): Forward declare.
  2995. (utc_time, utc_seconds, tai_time, tai_seconds, gps_time)
  2996. (gps_seconds): Define.
  2997. (is_clock<utc_clock>, is_clock<tai_clock>, is_clock<gps_clock>)
  2998. (is_clock_v<utc_clock>, is_clock_v<tai_clock>)
  2999. (is_clock_v<gps_clock>): Define these specializations.
  3000. (leap_second_info): Define.
  3001. (day, month, year, weekday, weekday_indexed)
  3002. (weekday_last, month_day, month_day_last, month_weekday)
  3003. (month_weekday_last, year_month, year_month_day)
  3004. (year_month_day_last, year_month_weekday, year_month_weekday_last):
  3005. Declare and later define.
  3006. (last_spec, last, __detail::__days_per_month)
  3007. (__detail::__days_per_month, __detail::__last_day): Define.
  3008. (January, February, March, April, May, June, July, August)
  3009. (September, October, November, December, Sunday, Monday, Tuesday)
  3010. (Wednesday, Thursday, Friday, Saturday): Define.
  3011. (weekday::operator[]): Define out-of-line.
  3012. (year_month_day::_S_from_days, year_month_day::M_days_since_epoch):
  3013. Likewise.
  3014. (year_month_day::year_month_day, year_month_day::ok): Likewise.
  3015. (__detail::__pow10, hh_mm_ss): Define.
  3016. (literals::chrono_literals::operator""d)
  3017. (literals::chrono_literals::operator""y): Define.
  3018. (is_am, is_pm, make12, make24): Define.
  3019. * testsuite/20_util/time_point/4.cc: New test.
  3020. * testsuite/std/time/day/1.cc: New test.
  3021. * testsuite/std/time/hh_mm_ss/1.cc: New test.
  3022. * testsuite/std/time/is_am/1.cc: New test.
  3023. * testsuite/std/time/is_pm/1.cc: New test.
  3024. * testsuite/std/time/make12/1.cc: New test.
  3025. * testsuite/std/time/make24/1.cc: New test.
  3026. * testsuite/std/time/month/1.cc: New test.
  3027. * testsuite/std/time/month_day/1.cc: New test.
  3028. * testsuite/std/time/month_day_last/1.cc: New test.
  3029. * testsuite/std/time/month_weekday/1.cc: New test.
  3030. * testsuite/std/time/month_weekday_last/1.cc: New test.
  3031. * testsuite/std/time/weekday/1.cc: New test.
  3032. * testsuite/std/time/weekday_indexed/1.cc: New test.
  3033. * testsuite/std/time/weekday_last/1.cc: New test.
  3034. * testsuite/std/time/year/1.cc: New test.
  3035. * testsuite/std/time/year_month/1.cc: New test.
  3036. * testsuite/std/time/year_month_day/1.cc: New test.
  3037. * testsuite/std/time/year_month_day_last/1.cc: New test.
  3038. * testsuite/std/time/year_month_weekday/1.cc: New test.
  3039. * testsuite/std/time/year_month_weekday_last/1.cc: New test.
  3040. 2020-08-24 Jonathan Wakely <jwakely@redhat.com>
  3041. * include/std/ranges (join_view): Add deduction guide (LWG 3474).
  3042. * testsuite/std/ranges/adaptors/join_lwg3474.cc: New test.
  3043. 2020-08-24 Jonathan Wakely <jwakely@redhat.com>
  3044. * include/bits/iterator_concepts.h (indirectly_readable): Add
  3045. partial specializations to resolve ambiguities (LWG 3446).
  3046. * testsuite/24_iterators/associated_types/readable.traits.cc:
  3047. Check types with both value_type and element_type.
  3048. 2020-08-24 Jonathan Wakely <jwakely@redhat.com>
  3049. * include/std/ranges (ranges::iota_view::size()): Perform all
  3050. calculations in the right unsigned types.
  3051. * testsuite/std/ranges/iota/size.cc: New test.
  3052. 2020-08-24 Jonathan Wakely <jwakely@redhat.com>
  3053. PR libstdc++/96766
  3054. * include/std/variant (_Variant_storage): Replace implicit
  3055. conversions from size_t to __index_type with explicit casts.
  3056. 2020-08-24 Jonathan Wakely <jwakely@redhat.com>
  3057. * testsuite/30_threads/packaged_task/cons/alloc.cc: Run for
  3058. C++11 and skip for C++17 or later.
  3059. 2020-08-24 Corentin Gay <gay@adacore.com>
  3060. * testsuite/20_util/shared_ptr/atomic/3.cc: Do not require POSIX
  3061. threads and add -pthread only on targets supporting them.
  3062. * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
  3063. Likewise.
  3064. * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
  3065. Likewise.
  3066. * testsuite/30_threads/async/42819.cc: Likewise.
  3067. * testsuite/30_threads/async/49668.cc: Likewise.
  3068. * testsuite/30_threads/async/54297.cc: Likewise.
  3069. * testsuite/30_threads/async/any.cc: Likewise.
  3070. * testsuite/30_threads/async/async.cc: Likewise.
  3071. * testsuite/30_threads/async/except.cc: Likewise.
  3072. * testsuite/30_threads/async/launch.cc: Likewise.
  3073. * testsuite/30_threads/async/lwg2021.cc: Likewise.
  3074. * testsuite/30_threads/async/sync.cc: Likewise. : Likewise.
  3075. * testsuite/30_threads/call_once/39909.cc: Likewise.
  3076. * testsuite/30_threads/call_once/49668.cc: Likewise.
  3077. * testsuite/30_threads/call_once/60497.cc: Likewise.
  3078. * testsuite/30_threads/call_once/call_once1.cc: Likewise.
  3079. * testsuite/30_threads/call_once/dr2442.cc: Likewise.
  3080. * testsuite/30_threads/condition_variable/54185.cc: Likewise.
  3081. * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
  3082. * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
  3083. * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
  3084. * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
  3085. * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
  3086. * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
  3087. * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
  3088. Likewise.
  3089. * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
  3090. * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
  3091. * testsuite/30_threads/condition_variable_any/cond.cc: Likewise.
  3092. * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
  3093. * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
  3094. * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
  3095. * testsuite/30_threads/future/cons/move.cc: Likewise.
  3096. * testsuite/30_threads/future/members/45133.cc: Likewise.
  3097. * testsuite/30_threads/future/members/get.cc: Likewise.
  3098. * testsuite/30_threads/future/members/get2.cc: Likewise.
  3099. * testsuite/30_threads/future/members/share.cc: Likewise.
  3100. * testsuite/30_threads/future/members/valid.cc: Likewise.
  3101. * testsuite/30_threads/future/members/wait.cc: Likewise.
  3102. * testsuite/30_threads/future/members/wait_for.cc: Likewise.
  3103. * testsuite/30_threads/future/members/wait_until.cc: Likewise.
  3104. * testsuite/30_threads/lock/1.cc: Likewise.
  3105. * testsuite/30_threads/lock/2.cc: Likewise.
  3106. * testsuite/30_threads/lock/3.cc: Likewise.
  3107. * testsuite/30_threads/lock/4.cc: Likewise.
  3108. * testsuite/30_threads/mutex/cons/1.cc: Likewise.
  3109. * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
  3110. * testsuite/30_threads/mutex/lock/1.cc: Likewise.
  3111. * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
  3112. * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
  3113. * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
  3114. * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
  3115. * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
  3116. * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
  3117. * testsuite/30_threads/packaged_task/49668.cc: Likewise.
  3118. * testsuite/30_threads/packaged_task/60564.cc: Likewise.
  3119. * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
  3120. * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
  3121. * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
  3122. * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
  3123. * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
  3124. * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
  3125. * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
  3126. * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
  3127. Likewise.
  3128. * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
  3129. * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
  3130. * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
  3131. * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
  3132. * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
  3133. * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
  3134. * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
  3135. * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
  3136. * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
  3137. * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
  3138. * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
  3139. * testsuite/30_threads/promise/60966.cc: Likewise.
  3140. * testsuite/30_threads/promise/cons/1.cc: Likewise.
  3141. * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
  3142. * testsuite/30_threads/promise/cons/move.cc: Likewise.
  3143. * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
  3144. * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
  3145. * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
  3146. * testsuite/30_threads/promise/members/get_future.cc: Likewise.
  3147. * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
  3148. * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
  3149. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
  3150. * testsuite/30_threads/promise/members/set_value.cc: Likewise.
  3151. * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
  3152. * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
  3153. * testsuite/30_threads/promise/members/swap.cc: Likewise.
  3154. * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
  3155. * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
  3156. Likewise.
  3157. * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
  3158. * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
  3159. * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
  3160. Likewise.
  3161. * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
  3162. * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
  3163. * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
  3164. * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
  3165. * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
  3166. * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
  3167. Likewise.
  3168. * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
  3169. * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
  3170. * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
  3171. Likewise.
  3172. * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
  3173. Likewise.
  3174. * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
  3175. * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
  3176. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
  3177. Likewise.
  3178. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
  3179. Likewise.
  3180. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
  3181. Likewise.
  3182. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
  3183. Likewise.
  3184. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
  3185. Likewise.
  3186. * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
  3187. * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
  3188. * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
  3189. * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
  3190. * testsuite/30_threads/shared_future/members/get.cc: Likewise.
  3191. * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
  3192. * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
  3193. * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
  3194. * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
  3195. * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
  3196. * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
  3197. * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
  3198. * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
  3199. * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
  3200. * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
  3201. * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
  3202. * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
  3203. * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
  3204. * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
  3205. * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
  3206. * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
  3207. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
  3208. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
  3209. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
  3210. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
  3211. * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
  3212. * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
  3213. * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
  3214. * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
  3215. * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
  3216. * testsuite/30_threads/this_thread/1.cc: Likewise.
  3217. * testsuite/30_threads/this_thread/sleep_for-mt.cc: Likewise.
  3218. * testsuite/30_threads/this_thread/sleep_until-mt.cc: Likewise.
  3219. * testsuite/30_threads/thread/cons/1.cc: Likewise.
  3220. * testsuite/30_threads/thread/cons/2.cc: Likewise.
  3221. * testsuite/30_threads/thread/cons/3.cc: Likewise.
  3222. * testsuite/30_threads/thread/cons/4.cc: Likewise.
  3223. * testsuite/30_threads/thread/cons/49668.cc: Likewise.
  3224. * testsuite/30_threads/thread/cons/5.cc: Likewise.
  3225. * testsuite/30_threads/thread/cons/6.cc: Likewise.
  3226. * testsuite/30_threads/thread/cons/7.cc: Likewise.
  3227. * testsuite/30_threads/thread/cons/8.cc: Likewise.
  3228. * testsuite/30_threads/thread/cons/9.cc: Likewise.
  3229. * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
  3230. * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
  3231. * testsuite/30_threads/thread/members/1.cc: Likewise.
  3232. * testsuite/30_threads/thread/members/2.cc: Likewise.
  3233. * testsuite/30_threads/thread/members/3.cc: Likewise.
  3234. * testsuite/30_threads/thread/members/4.cc: Likewise.
  3235. * testsuite/30_threads/thread/members/5.cc: Likewise.
  3236. * testsuite/30_threads/thread/members/hardware_concurrency.cc:
  3237. Likewise.
  3238. * testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
  3239. * testsuite/30_threads/thread/swap/1.cc: Likewise.
  3240. * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
  3241. * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
  3242. Likewise.
  3243. * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
  3244. * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
  3245. * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
  3246. Likewise.
  3247. * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
  3248. * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
  3249. * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
  3250. * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
  3251. * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
  3252. * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
  3253. * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
  3254. * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
  3255. * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
  3256. * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
  3257. * testsuite/30_threads/try_lock/1.cc: Likewise.
  3258. * testsuite/30_threads/try_lock/2.cc: Likewise.
  3259. * testsuite/30_threads/try_lock/3.cc: Likewise.
  3260. * testsuite/30_threads/try_lock/4.cc: Likewise.
  3261. * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
  3262. * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
  3263. * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
  3264. * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
  3265. * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
  3266. * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
  3267. * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
  3268. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
  3269. * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
  3270. * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
  3271. * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
  3272. 2020-08-21 Jonathan Wakely <jwakely@redhat.com>
  3273. PR libstdc++/96736
  3274. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Do not
  3275. test "cold" on darwin.
  3276. * testsuite/17_intro/headers/c++2011/all_attributes.cc:
  3277. Likewise.
  3278. * testsuite/17_intro/headers/c++2014/all_attributes.cc:
  3279. Likewise.
  3280. * testsuite/17_intro/headers/c++2017/all_attributes.cc:
  3281. Likewise.
  3282. * testsuite/17_intro/headers/c++2020/all_attributes.cc:
  3283. Likewise.
  3284. 2020-08-21 Jonathan Wakely <jwakely@redhat.com>
  3285. PR libstdc++/96718
  3286. * testsuite/25_algorithms/pstl/feature_test-2.cc: Require
  3287. tbb-backend effective target.
  3288. * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
  3289. * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
  3290. * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
  3291. 2020-08-20 Jonathan Wakely <jwakely@redhat.com>
  3292. * include/bits/iterator_concepts.h [__STRICT_ANSI__]
  3293. (incrementable_traits<__int128>): Define specialization.
  3294. (incrementable_traits<unsigned __int128>): Likewise.
  3295. * testsuite/std/ranges/iota/96042.cc: Test iota_view with
  3296. __int128.
  3297. 2020-08-19 Jonathan Wakely <jwakely@redhat.com>
  3298. Patrick Palka <ppalka@redhat.com>
  3299. PR libstdc++/96042
  3300. * include/bits/range_access.h (__detail::__to_unsigned_like):
  3301. Do not use make_unsigned_t<T> in the return type, as it can
  3302. result in an error before the integral<T> constraint is checked.
  3303. [__STRICT_ANSI__]: Add overloads for 128-bit integer types.
  3304. (__detail::__make_unsigned_like_t): Define as the return type
  3305. of __to_unsigned_like.
  3306. * testsuite/std/ranges/subrange/96042.cc: New test.
  3307. 2020-08-19 Jonathan Wakely <jwakely@redhat.com>
  3308. * include/bits/stl_tree.h (operator!=, operator>, operator<=)
  3309. (operator>=): Remove deprecated functions.
  3310. 2020-08-19 Jonathan Wakely <jwakely@redhat.com>
  3311. PR libstdc++/96042
  3312. * include/ext/numeric_traits.h (__is_integer_nonstrict): New
  3313. trait which is true for 128-bit integers even in strict modes.
  3314. (__numeric_traits_integer, __numeric_traits): Use
  3315. __is_integer_nonstrict instead of __is_integer.
  3316. * include/std/limits [__STRICT_ANSI__ && __SIZEOF_INT128__]
  3317. (numeric_limits<__int128>, (numeric_limits<unsigned __int128>):
  3318. Define.
  3319. * testsuite/std/ranges/iota/96042.cc: New test.
  3320. 2020-08-19 Jonathan Wakely <jwakely@redhat.com>
  3321. * include/bits/c++config (_GLIBCXX_DEPRECATED_SUGGEST)
  3322. (_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST)
  3323. (_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST):
  3324. Add new macros to comment.
  3325. 2020-08-19 Patrick Palka <ppalka@redhat.com>
  3326. * include/Makefile.am (bits_headers): Add new header
  3327. <bits/max_size_type.h>.
  3328. * include/Makefile.in: Regenerate.
  3329. * include/bits/iterator_concepts.h
  3330. (ranges::__detail::__max_diff_type): Remove definition, replace
  3331. with forward declaration of class __max_diff_type.
  3332. (__detail::__max_size_type): Remove definition, replace with
  3333. forward declaration of class __max_size_type.
  3334. (__detail::__is_unsigned_int128, __is_signed_int128)
  3335. (__is_int128): New concepts.
  3336. (__detail::__is_integer_like): Accept __int128 and unsigned
  3337. __int128.
  3338. (__detail::__is_signed_integer_like): Accept __int128.
  3339. * include/bits/max_size_type.h: New header.
  3340. * include/bits/range_access.h: Include <bits/max_size_type.h>.
  3341. (__detail::__to_unsigned_like): Two new overloads.
  3342. * testsuite/std/ranges/iota/difference_type.cc: New test.
  3343. * testsuite/std/ranges/iota/max_size_type.cc: New test.
  3344. 2020-08-19 Jonathan Wakely <jwakely@redhat.com>
  3345. * include/bits/c++config (_GLIBCXX_DEPRECATED): Define for all
  3346. standard modes.
  3347. (_GLIBCXX_DEPRECATED_SUGGEST): New macro for "use 'foo' instead"
  3348. message in deprecated warnings.
  3349. (_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST): New
  3350. macros for marking features deprecated in C++11.
  3351. (_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST):
  3352. New macros.
  3353. * include/backward/auto_ptr.h (auto_ptr_ref, auto_ptr<void>):
  3354. Use _GLIBCXX11_DEPRECATED instead of _GLIBCXX_DEPRECATED.
  3355. (auto_ptr): Use _GLIBCXX11_DEPRECATED_SUGGEST.
  3356. * include/backward/binders.h (binder1st, binder2nd): Likewise.
  3357. * include/bits/ios_base.h (io_state, open_mode, seek_dir)
  3358. (streampos, streamoff): Use _GLIBCXX_DEPRECATED_SUGGEST.
  3359. * include/std/streambuf (stossc): Replace C++11 attribute
  3360. with _GLIBCXX_DEPRECATED_SUGGEST.
  3361. * include/std/type_traits (__is_nullptr_t): Use
  3362. _GLIBCXX_DEPRECATED_SUGGEST instead of _GLIBCXX_DEPRECATED.
  3363. * testsuite/27_io/types/1.cc: Check for deprecated warnings.
  3364. Also check for io_state, open_mode and seek_dir typedefs.
  3365. 2020-08-19 Antony Polukhin <antoshkka@gmail.com>
  3366. PR libstdc++/71579
  3367. * include/std/type_traits (invoke_result, is_nothrow_invocable_r)
  3368. Add static_asserts to make sure that the argument of the type
  3369. trait is not misused with incomplete types.
  3370. (is_swappable_with, is_nothrow_swappable_with): Add static_asserts
  3371. to make sure that the first and second arguments of the type trait
  3372. are not misused with incomplete types.
  3373. * testsuite/20_util/invoke_result/incomplete_neg.cc: New test.
  3374. * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: New test.
  3375. * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc: New test.
  3376. * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc: New
  3377. test.
  3378. * testsuite/20_util/is_swappable_with/incomplete_neg.cc: New test.
  3379. 2020-08-18 David Edelsohn <dje.gcc@gmail.com>
  3380. Clement Chigot <clement.chigot@atos.net>
  3381. * config/os/aix/t-aix: Add complementary mode object files to
  3382. libsupc++.a
  3383. 2020-08-18 Jonathan Wakely <jwakely@redhat.com>
  3384. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Check
  3385. "cold" isn't used in the library. Also check <cxxabi.h>.
  3386. * testsuite/17_intro/headers/c++2011/all_attributes.cc:
  3387. Likewise.
  3388. * testsuite/17_intro/headers/c++2014/all_attributes.cc:
  3389. Likewise.
  3390. * testsuite/17_intro/headers/c++2017/all_attributes.cc:
  3391. Likewise.
  3392. * testsuite/17_intro/headers/c++2020/all_attributes.cc:
  3393. Likewise.
  3394. 2020-08-18 Jonathan Wakely <jwakely@redhat.com>
  3395. PR libstdc++/69724
  3396. * include/std/future (__future_base::_S_make_deferred_state)
  3397. (__future_base::_S_make_async_state): Remove.
  3398. (__future_base::_Deferred_state): Change constructor to accept a
  3399. parameter pack of arguments and forward them to the call
  3400. wrapper.
  3401. (__future_base::_Async_state_impl): Likewise. Replace lambda
  3402. expression with a named member function.
  3403. (async): Construct state object directly from the arguments,
  3404. instead of using thread::__make_invoker, _S_make_deferred_state
  3405. and _S_make_async_state. Move shared state into the returned
  3406. future.
  3407. * include/std/thread (thread::_Call_wrapper): New alias
  3408. template for use by constructor and std::async.
  3409. (thread::thread(Callable&&, Args&&...)): Create state object
  3410. directly instead of using _S_make_state.
  3411. (thread::__make_invoker, thread::__decayed_tuple)
  3412. (thread::_S_make_state): Remove.
  3413. * testsuite/30_threads/async/69724.cc: New test.
  3414. 2020-08-17 Jonathan Wakely <jwakely@redhat.com>
  3415. PR libstdc++/55713
  3416. PR libstdc++/71096
  3417. PR libstdc++/93147
  3418. * include/std/tuple [__has_cpp_attribute(no_unique_address)]
  3419. (_Head_base<Idx, Head, true>): New definition of the partial
  3420. specialization, using [[no_unique_address]] instead of
  3421. inheritance.
  3422. * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
  3423. output.
  3424. * testsuite/20_util/tuple/comparison_operators/93147.cc: New test.
  3425. * testsuite/20_util/tuple/creation_functions/55713.cc: New test.
  3426. * testsuite/20_util/tuple/element_access/71096.cc: New test.
  3427. 2020-08-14 Lewis Hyatt <lhyatt@gmail.com>
  3428. * testsuite/lib/libstdc++.exp: Use the new option
  3429. -fdiagnostics-plain-output.
  3430. 2020-08-13 Jonathan Wakely <jwakely@redhat.com>
  3431. * acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Warn if the c_std
  3432. option is used and fail unless --enable-cheaders-obsolete is
  3433. also used.
  3434. * configure: Regenerate.
  3435. 2020-08-12 Jonathan Wakely <jwakely@redhat.com>
  3436. PR libstdc++/85828
  3437. * include/bits/basic_string.h (operator=(basic_string&&)): Check
  3438. for self-move before copying with char_traits::copy.
  3439. * include/bits/hashtable.h (operator=(_Hashtable&&)): Check for
  3440. self-move.
  3441. * include/bits/stl_deque.h (_M_move_assign1(deque&&, false_type)):
  3442. Check for equal allocators.
  3443. * include/bits/stl_list.h (_M_move_assign(list&&, true_type)):
  3444. Call clear() instead of _M_clear().
  3445. * include/debug/formatter.h (__msg_self_move_assign): Change
  3446. comment.
  3447. * include/debug/macros.h (__glibcxx_check_self_move_assign):
  3448. (_GLIBCXX_DEBUG_VERIFY): Remove.
  3449. * include/debug/safe_container.h (operator=(_Safe_container&&)):
  3450. Remove assertion check for safe move and make it well-defined.
  3451. * include/debug/safe_iterator.h (operator=(_Safe_iterator&&)):
  3452. Remove assertion check for self-move.
  3453. * include/debug/safe_local_iterator.h
  3454. (operator=(_Safe_local_iterator&&)): Likewise.
  3455. * testsuite/21_strings/basic_string/cons/char/self_move.cc: New test.
  3456. * testsuite/23_containers/deque/cons/self_move.cc: New test.
  3457. * testsuite/23_containers/forward_list/cons/self_move.cc: New test.
  3458. * testsuite/23_containers/list/cons/self_move.cc: New test.
  3459. * testsuite/23_containers/set/cons/self_move.cc: New test.
  3460. * testsuite/23_containers/unordered_set/cons/self_move.cc: New test.
  3461. * testsuite/23_containers/vector/cons/self_move.cc: New test.
  3462. 2020-08-11 François Dumont <fdumont@gcc.gnu.org>
  3463. PR libstdc++/91620
  3464. * include/bits/forward_list.tcc (forward_list<>::remove): Collect nodes
  3465. to destroy in an intermediate forward_list.
  3466. (forward_list<>::remove_if, forward_list<>::unique): Likewise.
  3467. * include/bits/list.tcc (list<>::remove, list<>::unique): Likewise.
  3468. (list<>::remove_if): Likewise.
  3469. * include/debug/forward_list (forward_list<>::_M_erase_after): Remove.
  3470. (forward_list<>::erase_after): Adapt.
  3471. (forward_list<>::remove, forward_list<>::remove_if): Collect nodes to
  3472. destroy in an intermediate forward_list.
  3473. (forward_list<>::unique): Likewise.
  3474. * include/debug/list (list<>::remove, list<>::unique): Likewise.
  3475. (list<>::remove_if): Likewise.
  3476. * testsuite/23_containers/forward_list/operations/91620.cc: New test.
  3477. * testsuite/23_containers/list/operations/91620.cc: New test.
  3478. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3479. * testsuite/30_threads/thread/cons/84535.cc: Use a custom
  3480. namespace.
  3481. * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
  3482. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3483. PR libstdc++/89760
  3484. * include/experimental/executor [!_GLIBCXX_HAS_GTHREADS]:
  3485. (execution_context::mutex_type): Define dummy mutex type.
  3486. (system_context): Use execution_context::mutex_type.
  3487. (system_context) [!_GLIBCXX_HAS_GTHREADS]: Define dummy
  3488. thread and condition variable types.
  3489. [!_GLIBCXX_HAS_GTHREADS] (system_context::_M_run()): Do not
  3490. define.
  3491. (system_context::_M_post) [!_GLIBCXX_HAS_GTHREADS]: Throw
  3492. an exception when threads aren't available.
  3493. (strand::running_in_this_thread()): Defer to _M_state.
  3494. (strand::_State::running_in_this_thread()): New function.
  3495. (use_future_t): Do not depend on _GLIBCXX_USE_C99_STDINT_TR1.
  3496. * include/experimental/io_context (io_context): Use the
  3497. execution_context::mutex_type alias. Replace stack of thread
  3498. IDs with counter.
  3499. * testsuite/experimental/net/execution_context/use_service.cc:
  3500. Enable test for non-pthread targets.
  3501. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3502. * include/experimental/executor (system_context::a__tag): Make
  3503. default constructor explicit.
  3504. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3505. * include/experimental/executor (system_context::_M_run()):
  3506. Fix predicate.
  3507. * testsuite/experimental/net/system_context/1.cc: New test.
  3508. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3509. * include/std/stop_token: Check _GLIBCXX_HAS_GTHREADS using
  3510. #ifdef instead of #if.
  3511. (stop_token::_S_yield()): Check _GLIBCXX_HAS_GTHREADS before
  3512. using __gthread_yield.
  3513. 2020-08-11 Jonathan Wakely <jwakely@redhat.com>
  3514. * include/std/thread [!_GLIBCXX_HAS_GTHREADS] (this_thread::yield)
  3515. (this_thread::sleep_until): Define.
  3516. [!_GLIBCXX_HAS_GTHREADS] (this_thread::sleep_for): Define. Replace
  3517. use of __gthread_time_t typedef with timespec.
  3518. * src/c++11/thread.cc [!_GLIBCXX_HAS_GTHREADS] (__sleep_for):
  3519. Likewise.
  3520. * testsuite/30_threads/this_thread/2.cc: Moved to...
  3521. * testsuite/30_threads/this_thread/yield.cc: ...here.
  3522. * testsuite/30_threads/this_thread/3.cc: Moved to...
  3523. * testsuite/30_threads/this_thread/sleep_for-mt.cc: ...here.
  3524. * testsuite/30_threads/this_thread/4.cc: Moved to...
  3525. * testsuite/30_threads/this_thread/sleep_until-mt.cc: ...here.
  3526. * testsuite/30_threads/this_thread/58038.cc: Add
  3527. dg-require-sleep.
  3528. * testsuite/30_threads/this_thread/60421.cc: Likewise.
  3529. * testsuite/30_threads/this_thread/sleep_for.cc: New test.
  3530. * testsuite/30_threads/this_thread/sleep_until.cc: New test.
  3531. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3532. PR libstdc++/94681
  3533. * src/c++17/fs_ops.cc (read_symlink): Use posix::lstat instead
  3534. of calling ::lstat directly.
  3535. * src/filesystem/ops.cc (read_symlink): Likewise.
  3536. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3537. * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
  3538. Use gdb.Type.strip_typedefs().
  3539. * testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in
  3540. the emulated old type.
  3541. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3542. PR libstdc++/94681
  3543. * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Do not depend on
  3544. $enable_libstdcxx_filesystem_ts.
  3545. * configure: Regenerate.
  3546. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3547. PR libstdc++/93904
  3548. * include/bits/stl_iterator.h (inserter): Do not deduce
  3549. iterator type (LWG 561).
  3550. * testsuite/24_iterators/insert_iterator/dr561.cc: New test.
  3551. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3552. * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI=0]
  3553. (basic_string::reserve()): Do nothing if exceptions are not
  3554. enabled.
  3555. 2020-08-10 Jonathan Wakely <jwakely@redhat.com>
  3556. PR libstdc++/95749
  3557. * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
  3558. (stat_type): Change to __stat64.
  3559. (stat): Use _wstat64.
  3560. 2020-08-07 Jonathan Wakely <jwakely@redhat.com>
  3561. PR libstdc++/96303
  3562. * include/debug/bitset (bitset::operator==): Call _M_base() on
  3563. right operand.
  3564. (bitset::operator!=): Likewise, but don't define it at all when
  3565. default comparisons are supported by the compiler.
  3566. * testsuite/23_containers/bitset/operations/96303.cc: New test.
  3567. 2020-08-07 Jonathan Wakely <jwakely@redhat.com>
  3568. * testsuite/18_support/comparisons/algorithms/partial_order.cc:
  3569. Replace VERIFY with static_assert where the compiler now
  3570. allows it.
  3571. * testsuite/18_support/comparisons/algorithms/weak_order.cc:
  3572. Likewise.
  3573. 2020-08-07 Jonathan Wakely <jwakely@redhat.com>
  3574. * config/abi/pre/gnu.ver: Fix wildcards for wstring symbols.
  3575. 2020-08-06 Andrew Luo <andrewluotechnologies@outlook.com>
  3576. Jonathan Wakely <jwakely@redhat.com>
  3577. * config/abi/pre/gnu.ver (GLIBCXX_3.4): Use less greedy
  3578. patterns for basic_string members.
  3579. (GLIBCXX_3.4.29): Export new basic_string::reserve symbols.
  3580. * doc/xml/manual/status_cxx2020.xml: Update P0966 status.
  3581. * include/bits/basic_string.h (shrink_to_fit()): Call reserve().
  3582. (reserve(size_type)): Remove default argument.
  3583. (reserve()): Declare new overload.
  3584. [!_GLIBCXX_USE_CXX11_ABI] (shrink_to_fit, reserve): Likewise.
  3585. * include/bits/basic_string.tcc (reserve(size_type)): Remove
  3586. support for shrinking capacity.
  3587. (reserve()): Perform shrink-to-fit operation.
  3588. [!_GLIBCXX_USE_CXX11_ABI] (reserve): Likewise.
  3589. * testsuite/21_strings/basic_string/capacity/1.cc: Adjust to
  3590. reflect new behavior.
  3591. * testsuite/21_strings/basic_string/capacity/char/1.cc:
  3592. Likewise.
  3593. * testsuite/21_strings/basic_string/capacity/char/18654.cc:
  3594. Likewise.
  3595. * testsuite/21_strings/basic_string/capacity/char/2.cc:
  3596. Likewise.
  3597. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
  3598. Likewise.
  3599. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
  3600. Likewise.
  3601. * testsuite/21_strings/basic_string/capacity/wchar_t/2.cc:
  3602. Likewise.
  3603. 2020-08-06 Jonathan Wakely <jwakely@redhat.com>
  3604. * include/bits/basic_string.tcc
  3605. (operator>>(basic_istream&, basic_string&)): Do not set eofbit
  3606. if extraction stopped after in.width() characters.
  3607. * src/c++98/istream-string.cc (operator>>(istream&, string&)):
  3608. Likewise.
  3609. * include/bits/istream.tcc (__istream_extract): Do not set
  3610. eofbit if extraction stopped after n-1 characters.
  3611. * src/c++98/istream.cc (__istream_extract): Likewise.
  3612. * testsuite/21_strings/basic_string/inserters_extractors/char/13.cc: New test.
  3613. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc: New test.
  3614. * testsuite/27_io/basic_istream/extractors_character/char/5.cc: New test.
  3615. * testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc: New test.
  3616. 2020-08-06 Jonathan Wakely <jwakely@redhat.com>
  3617. PR libstdc++/96484
  3618. * src/c++17/fs_ops.cc (fs::read_symlink): Return an error
  3619. immediately for non-symlinks.
  3620. * src/filesystem/ops.cc (fs::read_symlink): Likewise.
  3621. 2020-08-06 Jonathan Wakely <jwakely@redhat.com>
  3622. * include/std/istream (operator>>(istream&, char*)): Add
  3623. attributes to get warnings for pointers that are null or known
  3624. to point to the end of a buffer. Request upper bound from
  3625. __builtin_object_size check and handle zero-sized buffer case.
  3626. (operator>>(istream&, signed char))
  3627. (operator>>(istream&, unsigned char*)): Add attributes.
  3628. * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc:
  3629. Check extracting into the middle of a buffer.
  3630. * testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc: New test.
  3631. 2020-08-05 Jonathan Wakely <jwakely@redhat.com>
  3632. * include/std/atomic (atomic<T>::store): Reformat.
  3633. 2020-08-05 Jonathan Wakely <jwakely@redhat.com>
  3634. * doc/xml/manual/status_cxx2017.xml: Replace oneAPI DPC++ link
  3635. with LLVM repo for PSTL.
  3636. * doc/html/manual/status.html: Regenerate.
  3637. 2020-08-05 Jonathan Wakely <jwakely@redhat.com>
  3638. * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Export new symbols.
  3639. * include/bits/istream.tcc (__istream_extract): New function
  3640. template implementing both of operator>>(istream&, char*) and
  3641. operator>>(istream&, char(&)[N]). Add explicit instantiation
  3642. declaration for it. Remove explicit instantiation declarations
  3643. for old function templates.
  3644. * include/std/istream (__istream_extract): Declare.
  3645. (operator>>(basic_istream<C,T>&, C*)): Define inline and simply
  3646. call __istream_extract.
  3647. (operator>>(basic_istream<char,T>&, signed char*)): Likewise.
  3648. (operator>>(basic_istream<char,T>&, unsigned char*)): Likewise.
  3649. (operator>>(basic_istream<C,T>&, C(7)[N])): Define for LWG 2499.
  3650. (operator>>(basic_istream<char,T>&, signed char(&)[N])):
  3651. Likewise.
  3652. (operator>>(basic_istream<char,T>&, unsigned char(&)[N])):
  3653. Likewise.
  3654. * include/std/streambuf (basic_streambuf): Declare char overload
  3655. of __istream_extract as a friend.
  3656. * src/c++11/istream-inst.cc: Add explicit instantiation
  3657. definition for wchar_t overload of __istream_extract. Remove
  3658. explicit instantiation definitions of old operator>> overloads
  3659. for versioned-namespace build.
  3660. * src/c++98/istream.cc (operator>>(istream&, char*)): Replace
  3661. with __istream_extract(istream&, char*, streamsize).
  3662. * testsuite/27_io/basic_istream/extractors_character/char/3.cc:
  3663. Do not use variable-length array.
  3664. * testsuite/27_io/basic_istream/extractors_character/char/4.cc:
  3665. Do not run test for C++20.
  3666. * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc:
  3667. Do not test writing to pointers for C++20.
  3668. * testsuite/27_io/basic_istream/extractors_character/char/9826.cc:
  3669. Use array instead of pointer.
  3670. * testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc:
  3671. Do not use variable-length array.
  3672. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
  3673. Do not run test for C++20.
  3674. * testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc:
  3675. Do not test writing to pointers for C++20.
  3676. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
  3677. New test.
  3678. * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
  3679. New test.
  3680. * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc:
  3681. New test.
  3682. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
  3683. New test.
  3684. * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
  3685. New test.
  3686. 2020-08-01 Gerald Pfeifer <gerald@pfeifer.com>
  3687. * doc/xml/manual/using_exceptions.xml: Move www.stroustrup.com to
  3688. https.
  3689. * doc/html/manual/using_exceptions.html: Regenerate.
  3690. 2020-07-31 Gerald Pfeifer <gerald@pfeifer.com>
  3691. * doc/xml/manual/status_cxx2017.xml: ParallelSTL is now part
  3692. of oneAPI DPC++ Library on Github.
  3693. * doc/html/manual/status.html: Regenerate.
  3694. 2020-07-31 François Dumont <fdumont@gcc.gnu.org>
  3695. * include/bits/stl_bvector.h
  3696. [_GLIBCXX_INLINE_VERSION](_Bvector_impl_data::_M_start): Define as
  3697. _Bit_type*.
  3698. (_Bvector_impl_data(const _Bvector_impl_data&)): Default.
  3699. (_Bvector_impl_data(_Bvector_impl_data&&)): Delegate to latter.
  3700. (_Bvector_impl_data::operator=(const _Bvector_impl_data&)): Default.
  3701. (_Bvector_impl_data::_M_move_data(_Bvector_impl_data&&)): Use latter.
  3702. (_Bvector_impl_data::_M_reset()): Likewise.
  3703. (_Bvector_impl_data::_M_swap_data): New.
  3704. (_Bvector_impl::_Bvector_impl(_Bvector_impl&&)): Implement explicitely.
  3705. (_Bvector_impl::_Bvector_impl(_Bit_alloc_type&&, _Bvector_impl&&)): New.
  3706. (_Bvector_base::_Bvector_base(_Bvector_base&&, const allocator_type&)):
  3707. New, use latter.
  3708. (vector::vector(vector&&, const allocator_type&, true_type)): New, use
  3709. latter.
  3710. (vector::vector(vector&&, const allocator_type&, false_type)): New.
  3711. (vector::vector(vector&&, const allocator_type&)): Use latters.
  3712. (vector::vector(const vector&, const allocator_type&)): Adapt.
  3713. [__cplusplus >= 201103](vector::vector(_InputIt, _InputIt,
  3714. const allocator_type&)): Use _M_initialize_range.
  3715. (vector::operator[](size_type)): Use iterator operator[].
  3716. (vector::operator[](size_type) const): Use const_iterator operator[].
  3717. (vector::swap(vector&)): Add assertions on allocators. Use _M_swap_data.
  3718. [__cplusplus >= 201103](vector::insert(const_iterator, _InputIt,
  3719. _InputIt)): Use _M_insert_range.
  3720. (vector::_M_initialize(size_type)): Adapt.
  3721. [__cplusplus >= 201103](vector::_M_initialize_dispatch): Remove.
  3722. [__cplusplus >= 201103](vector::_M_insert_dispatch): Remove.
  3723. * python/libstdcxx/v6/printers.py (StdVectorPrinter._iterator): Stop
  3724. using start _M_offset.
  3725. (StdVectorPrinter.to_string): Likewise.
  3726. * testsuite/23_containers/vector/bool/allocator/swap.cc: Adapt.
  3727. * testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc:
  3728. Add check.
  3729. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3730. * testsuite/27_io/basic_istream/ignore/char/94749.cc: Use 0
  3731. instead of nullptr.
  3732. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
  3733. Likewise.
  3734. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3735. * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc:
  3736. Move struct to namespace scope.
  3737. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3738. * testsuite/26_numerics/numbers/float128.cc: Check
  3739. __STRICT_ANSI__ before using __float128.
  3740. * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc:
  3741. Likewise.
  3742. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3743. * testsuite/18_support/set_terminate.cc: Require C++11 or
  3744. higher.
  3745. * testsuite/28_regex/simple_c++11.cc: Likewise.
  3746. * testsuite/tr1/headers/c++200x/complex.cc: Likewise.
  3747. * testsuite/24_iterators/headers/iterator/synopsis.cc:
  3748. Require C++14 or lower.
  3749. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3750. * testsuite/23_containers/span/back_assert_neg.cc: Split c++2a
  3751. effective-target from xfail selector.
  3752. * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
  3753. * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
  3754. * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
  3755. * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
  3756. * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
  3757. * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
  3758. * testsuite/23_containers/span/subspan_2_assert_neg.cc:
  3759. Likewise.
  3760. * testsuite/23_containers/span/subspan_3_assert_neg.cc:
  3761. Likewise.
  3762. * testsuite/23_containers/span/subspan_4_assert_neg.cc:
  3763. Likewise.
  3764. * testsuite/23_containers/span/subspan_5_assert_neg.cc:
  3765. Likewise.
  3766. * testsuite/23_containers/span/subspan_6_assert_neg.cc:
  3767. Likewise.
  3768. * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
  3769. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3770. * testsuite/20_util/reference_wrapper/83427.cc: Adjust
  3771. effective-target to specific language mode only.
  3772. * testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
  3773. Likewise.
  3774. * testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
  3775. Likewise.
  3776. * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc:
  3777. Likewise.
  3778. * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc:
  3779. Likewise.
  3780. * testsuite/26_numerics/valarray/69116.cc:
  3781. Likewise.
  3782. * testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc:
  3783. Remove whitespace at end of file.
  3784. * testsuite/30_threads/headers/future/std_c++0x_neg.cc:
  3785. Likewise.
  3786. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  3787. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
  3788. c++17 effective-target.
  3789. * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
  3790. Likewise.
  3791. * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Likewise.
  3792. * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
  3793. Likewise.
  3794. * testsuite/17_intro/headers/c++2017/operator_names.cc:
  3795. Likewise.
  3796. * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
  3797. * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
  3798. Likewise.
  3799. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
  3800. Likewise.
  3801. * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
  3802. Likewise.
  3803. * testsuite/20_util/any/assign/1.cc: Likewise.
  3804. * testsuite/20_util/any/assign/2.cc: Likewise.
  3805. * testsuite/20_util/any/assign/emplace.cc: Likewise.
  3806. * testsuite/20_util/any/assign/exception.cc: Likewise.
  3807. * testsuite/20_util/any/assign/self.cc: Likewise.
  3808. * testsuite/20_util/any/cons/1.cc: Likewise.
  3809. * testsuite/20_util/any/cons/2.cc: Likewise.
  3810. * testsuite/20_util/any/cons/aligned.cc: Likewise.
  3811. * testsuite/20_util/any/cons/explicit.cc: Likewise.
  3812. * testsuite/20_util/any/cons/in_place.cc: Likewise.
  3813. * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
  3814. * testsuite/20_util/any/make_any.cc: Likewise.
  3815. * testsuite/20_util/any/misc/any_cast.cc: Likewise.
  3816. * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
  3817. * testsuite/20_util/any/misc/swap.cc: Likewise.
  3818. * testsuite/20_util/any/modifiers/1.cc: Likewise.
  3819. * testsuite/20_util/any/observers/type.cc: Likewise.
  3820. * testsuite/20_util/any/requirements.cc: Likewise.
  3821. * testsuite/20_util/any/typedefs.cc: Likewise.
  3822. * testsuite/20_util/as_const/1.cc: Likewise.
  3823. * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
  3824. * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
  3825. * testsuite/20_util/bool_constant/requirements.cc: Likewise.
  3826. * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
  3827. Likewise.
  3828. * testsuite/20_util/duration_cast/rounding.cc: Likewise.
  3829. * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
  3830. Likewise.
  3831. * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
  3832. * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
  3833. * testsuite/20_util/function_objects/searchers.cc: Likewise.
  3834. * testsuite/20_util/in_place/requirements.cc: Likewise.
  3835. * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
  3836. Likewise.
  3837. * testsuite/20_util/is_invocable/requirements/typedefs.cc:
  3838. Likewise.
  3839. * testsuite/20_util/is_invocable/value.cc: Likewise.
  3840. * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
  3841. Likewise.
  3842. * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc:
  3843. Likewise.
  3844. * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
  3845. Likewise.
  3846. * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
  3847. Likewise.
  3848. * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
  3849. * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
  3850. Likewise.
  3851. * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
  3852. Likewise.
  3853. * testsuite/20_util/is_nothrow_swappable_with/value.cc:
  3854. Likewise.
  3855. * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
  3856. Likewise.
  3857. * testsuite/20_util/is_swappable/requirements/typedefs.cc:
  3858. Likewise.
  3859. * testsuite/20_util/is_swappable/value.cc: Likewise.
  3860. * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
  3861. Likewise.
  3862. * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
  3863. Likewise.
  3864. * testsuite/20_util/is_swappable_with/value.cc: Likewise.
  3865. * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
  3866. Likewise.
  3867. * testsuite/20_util/logical_traits/requirements/typedefs.cc:
  3868. Likewise.
  3869. * testsuite/20_util/logical_traits/value.cc: Likewise.
  3870. * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
  3871. * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
  3872. * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
  3873. * testsuite/20_util/optional/hash.cc: Likewise.
  3874. * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
  3875. * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
  3876. * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
  3877. Likewise.
  3878. * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
  3879. Likewise.
  3880. * testsuite/20_util/tuple/apply/1.cc: Likewise.
  3881. * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
  3882. * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
  3883. * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
  3884. * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
  3885. Likewise.
  3886. * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
  3887. Likewise.
  3888. * testsuite/20_util/variant/any.cc: Likewise.
  3889. * testsuite/20_util/variant/compile.cc: Likewise.
  3890. * testsuite/20_util/variant/hash.cc: Likewise.
  3891. * testsuite/20_util/variant/index_type.cc: Likewise.
  3892. * testsuite/20_util/variant/run.cc: Likewise.
  3893. * testsuite/20_util/void_t/1.cc: Likewise.
  3894. * testsuite/21_strings/basic_string/79162.cc: Likewise.
  3895. * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
  3896. * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
  3897. * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
  3898. * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
  3899. * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
  3900. Likewise.
  3901. * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
  3902. Likewise.
  3903. * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
  3904. Likewise.
  3905. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
  3906. Likewise.
  3907. * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
  3908. Likewise.
  3909. * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
  3910. Likewise.
  3911. * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
  3912. Likewise.
  3913. * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
  3914. Likewise.
  3915. * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
  3916. Likewise.
  3917. * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
  3918. Likewise.
  3919. * testsuite/21_strings/basic_string/operations/data/char/2.cc:
  3920. Likewise.
  3921. * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
  3922. Likewise.
  3923. * testsuite/21_strings/basic_string/operations/find/char/5.cc:
  3924. Likewise.
  3925. * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
  3926. Likewise.
  3927. * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
  3928. * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
  3929. Likewise.
  3930. * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
  3931. * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
  3932. * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
  3933. * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
  3934. * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
  3935. Likewise.
  3936. * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
  3937. Likewise.
  3938. * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
  3939. Likewise.
  3940. * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
  3941. Likewise.
  3942. * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
  3943. Likewise.
  3944. * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
  3945. Likewise.
  3946. * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
  3947. Likewise.
  3948. * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
  3949. Likewise.
  3950. * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
  3951. Likewise.
  3952. * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
  3953. Likewise.
  3954. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
  3955. Likewise.
  3956. * testsuite/21_strings/basic_string_view/include.cc: Likewise.
  3957. * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
  3958. Likewise.
  3959. * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
  3960. Likewise.
  3961. * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
  3962. Likewise.
  3963. * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
  3964. Likewise.
  3965. * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
  3966. Likewise.
  3967. * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
  3968. Likewise.
  3969. * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
  3970. Likewise.
  3971. * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
  3972. Likewise.
  3973. * testsuite/21_strings/basic_string_view/literals/types.cc:
  3974. Likewise.
  3975. * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
  3976. Likewise.
  3977. * testsuite/21_strings/basic_string_view/literals/values.cc:
  3978. Likewise.
  3979. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
  3980. Likewise.
  3981. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
  3982. Likewise.
  3983. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
  3984. Likewise.
  3985. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
  3986. Likewise.
  3987. * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
  3988. Likewise.
  3989. * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
  3990. Likewise.
  3991. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
  3992. Likewise.
  3993. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
  3994. Likewise.
  3995. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
  3996. Likewise.
  3997. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
  3998. Likewise.
  3999. * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
  4000. Likewise.
  4001. * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
  4002. Likewise.
  4003. * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
  4004. Likewise.
  4005. * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
  4006. Likewise.
  4007. * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
  4008. Likewise.
  4009. * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
  4010. Likewise.
  4011. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
  4012. Likewise.
  4013. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
  4014. Likewise.
  4015. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
  4016. Likewise.
  4017. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
  4018. Likewise.
  4019. * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
  4020. Likewise.
  4021. * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
  4022. Likewise.
  4023. * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
  4024. Likewise.
  4025. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
  4026. Likewise.
  4027. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
  4028. Likewise.
  4029. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
  4030. Likewise.
  4031. * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
  4032. Likewise.
  4033. * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
  4034. Likewise.
  4035. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
  4036. Likewise.
  4037. * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
  4038. Likewise.
  4039. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
  4040. Likewise.
  4041. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
  4042. Likewise.
  4043. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
  4044. Likewise.
  4045. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
  4046. Likewise.
  4047. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
  4048. Likewise.
  4049. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
  4050. Likewise.
  4051. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
  4052. Likewise.
  4053. * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
  4054. Likewise.
  4055. * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
  4056. * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
  4057. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
  4058. Likewise.
  4059. * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
  4060. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
  4061. Likewise.
  4062. * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
  4063. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
  4064. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
  4065. * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
  4066. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
  4067. * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
  4068. * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
  4069. * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
  4070. * testsuite/23_containers/unordered_map/modifiers/extract.cc:
  4071. Likewise.
  4072. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
  4073. Likewise.
  4074. * testsuite/23_containers/unordered_map/modifiers/merge.cc:
  4075. Likewise.
  4076. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
  4077. Likewise.
  4078. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
  4079. Likewise.
  4080. * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
  4081. Likewise.
  4082. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
  4083. Likewise.
  4084. * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
  4085. Likewise.
  4086. * testsuite/23_containers/unordered_set/modifiers/extract.cc:
  4087. Likewise.
  4088. * testsuite/23_containers/unordered_set/modifiers/merge.cc:
  4089. Likewise.
  4090. * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
  4091. Likewise.
  4092. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
  4093. Likewise.
  4094. * testsuite/25_algorithms/clamp/1.cc: Likewise.
  4095. * testsuite/25_algorithms/clamp/2.cc: Likewise.
  4096. * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
  4097. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
  4098. Likewise.
  4099. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
  4100. Likewise.
  4101. * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
  4102. Likewise.
  4103. * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
  4104. Likewise.
  4105. * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
  4106. Likewise.
  4107. * testsuite/29_atomics/atomic/is_always_lock_free.cc: Likewise.
  4108. * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
  4109. Likewise.
  4110. * testsuite/30_threads/shared_lock/70766.cc: Likewise.
  4111. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
  4112. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
  4113. Likewise.
  4114. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc:
  4115. Likewise.
  4116. * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
  4117. Likewise.
  4118. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
  4119. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
  4120. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
  4121. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4122. PR libstdc++/96382
  4123. * include/bits/stl_iterator.h (reverse_iterator): Friend
  4124. declaration should not depend on __cplusplus.
  4125. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4126. * testsuite/experimental/filesystem/filesystem_error/cons.cc:
  4127. Remove -std=gnu++17 option.
  4128. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4129. * testsuite/20_util/is_aggregate/value.cc: Adjust for changes to
  4130. definition of aggregates in C++20.
  4131. * testsuite/20_util/optional/requirements.cc: Adjust for
  4132. defaulted comparisons in C++20.
  4133. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4134. * testsuite/20_util/tuple/78939.cc: Suppress warnings about
  4135. deprecation of volatile-qualified structured bindings in C++20.
  4136. * testsuite/20_util/variable_templates_for_traits.cc: Likewise
  4137. for deprecation of is_pod in C++20
  4138. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4139. * testsuite/20_util/time_point_cast/rounding.cc: Remove
  4140. duplicate dg-do directive and add c++17 effective target.
  4141. 2020-07-31 Jonathan Wakely <jwakely@redhat.com>
  4142. * src/c++17/floating_from_chars.cc (from_chars_impl): Use
  4143. LC_ALL_MASK not LC_ALL.
  4144. 2020-07-31 Richard Biener <rguenther@suse.de>
  4145. PR debug/96383
  4146. * testsuite/20_util/assume_aligned/3.cc: Use -g0.
  4147. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4148. * include/bits/basic_string.h (size_type, difference_type):
  4149. Use allocator_traits to obtain the allocator's size_type and
  4150. difference_type.
  4151. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4152. PR libstdc++/96279
  4153. * src/c++17/floating_from_chars.cc (from_chars_impl): Use
  4154. isinf unqualified.
  4155. [!_GLIBCXX_USE_C99_STDLIB]: Use strtod for float and long
  4156. double.
  4157. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4158. * testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
  4159. Use allocator with the correct value type.
  4160. * testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
  4161. Likewise.
  4162. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4163. * testsuite/20_util/from_chars/4.cc: Pass non-const iterator
  4164. to string::insert.
  4165. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4166. * include/bits/iterator_concepts.h (__detail::__cv_bool): New
  4167. helper concept.
  4168. (__detail::__integral_nonbool): Likewise.
  4169. (__detail::__is_integer_like): Use __integral_nonbool.
  4170. * testsuite/std/ranges/access/lwg3467.cc: New test.
  4171. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4172. * testsuite/20_util/from_chars/4.cc: Use dg-add-options ieee.
  4173. * testsuite/29_atomics/atomic_float/1.cc: Likewise.
  4174. 2020-07-30 Jonathan Wakely <jwakely@redhat.com>
  4175. * testsuite/23_containers/vector/bool/72847.cc: Use the
  4176. exceptions_enabled effective-target keyword instead of
  4177. checking for an explicit -fno-exceptions option.
  4178. * testsuite/util/testsuite_abi.cc (examine_symbol): Remove
  4179. redundant try-catch.
  4180. * testsuite/util/testsuite_allocator.h [!__cpp_exceptions]:
  4181. Do not define check_allocate_max_size and memory_resource.
  4182. * testsuite/util/testsuite_containers.h: Replace comment with
  4183. #error if wrong standard dialect used.
  4184. * testsuite/util/testsuite_shared.cc: Likewise.
  4185. 2020-07-29 François Dumont <fdumont@gcc.gnu.org>
  4186. * include/bits/hashtable_policy.h (_Node_iterator_base()): New.
  4187. (operator==(const _Node_iterator_base&, const _Node_iterator_base&)):
  4188. Make hidden friend.
  4189. (operator!=(const _Node_iterator_base&, const _Node_iterator_base&)):
  4190. Make hidden friend.
  4191. (_Local_iterator_base<>): Inherits _Node_iterator_base.
  4192. (_Local_iterator_base<>::_M_cur): Remove.
  4193. (_Local_iterator_base<>::_M_curr()): Remove.
  4194. (operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
  4195. Remove.
  4196. (operator!=(const _Local_iterator_base&, const _Local_iterator_base&)):
  4197. Remove.
  4198. * include/debug/unordered_map (unordered_map<>::_M_invalidate): Adapt.
  4199. (unordered_multimap<>::_M_invalidate): Adapt.
  4200. * include/debug/unordered_set (unordered_set<>::_M_invalidate): Adapt.
  4201. (unordered_multiset<>::_M_invalidate): Adapt.
  4202. 2020-07-29 David Edelsohn <dje.gcc@gmail.com>
  4203. Jonathan Wakely <jwakely@redhat.com>
  4204. Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  4205. * testsuite/lib/dg-options.exp (add_options_for_libatomic): Add
  4206. target powerpc-ibm-aix* and powerpc*-*-darwin*.
  4207. * testsuite/29_atomics/atomic_float/value_init.cc: Add options
  4208. for libatomic.
  4209. 2020-07-29 François Dumont <fdumont@gcc.gnu.org>
  4210. * include/bits/hashtable.h
  4211. (_Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, true_type)):
  4212. Add noexcept qualification.
  4213. (_Hashtable(_Hashtable&&)): Fix noexcept qualification.
  4214. (_Hashtable(_Hashtable&&, const allocator_type&)): Add noexcept
  4215. qualification.
  4216. * include/bits/unordered_map.h
  4217. (unordered_map(unordered_map&&, const allocator_type&)): Add noexcept
  4218. qualification.
  4219. (unordered_multimap(unordered_multimap&&, const allocator_type&)):
  4220. Likewise.
  4221. * include/bits/unordered_set.h
  4222. (unordered_set(unordered_set&&, const allocator_type&)): Likewise.
  4223. (unordered_multiset(unordered_multiset&&, const allocator_type&)):
  4224. Likewise.
  4225. * include/debug/unordered_map
  4226. (unordered_map(unordered_map&&, const allocator_type&)): Likewise.
  4227. (unordered_multimap(unordered_multimap&&, const allocator_type&)):
  4228. Likewise.
  4229. * include/debug/unordered_set
  4230. (unordered_set(unordered_set&&, const allocator_type&)): Likewise.
  4231. (unordered_multiset(unordered_multiset&&, const allocator_type&)):
  4232. Likewise.
  4233. * testsuite/23_containers/unordered_map/allocator/default_init.cc:
  4234. New test.
  4235. * testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc:
  4236. New test.
  4237. * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
  4238. New test.
  4239. * testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
  4240. New test.
  4241. * testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc:
  4242. New test.
  4243. * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
  4244. New test.
  4245. * testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc:
  4246. New test.
  4247. * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
  4248. New test.
  4249. * testsuite/23_containers/unordered_set/allocator/default_init.cc:
  4250. New test.
  4251. * testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc:
  4252. New test.
  4253. * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
  4254. New test.
  4255. 2020-07-28 François Dumont <fdumont@gcc.gnu.org>
  4256. * include/bits/hashtable.h
  4257. (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
  4258. const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
  4259. const allocator_type&, true_type)): New.
  4260. (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
  4261. const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
  4262. const allocator_type&, false_type)): New.
  4263. (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&,
  4264. const _H2&, const _Hash&, const _Equal&, const _ExtractKey&,
  4265. const allocator_type&)): Delegate to latters.
  4266. (operator=(initializer_list<value_type>)): Rehash if too small.
  4267. (_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Remove
  4268. size_t len parameter.
  4269. * include/bits/hashtable_policy.h (_Insert_base<>::_M_insert_range):
  4270. Do not try to get input range distance.
  4271. * testsuite/23_containers/unordered_set/cons/bucket_hint.cc: New test.
  4272. * testsuite/23_containers/unordered_set/modifiers/insert.cc: New test.
  4273. 2020-07-27 François Dumont <fdumont@gcc.gnu.org>
  4274. * include/bits/hashtable_policy.h (_Map_base<>::at): Use
  4275. _Hashtable<>::find.
  4276. (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals):New.
  4277. (_Hashtable_base<>::_M_node_equals): New, use latter.
  4278. (_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash,
  4279. _RehashPolicy, false>::_M_equal): Adapt to use latter.
  4280. * include/bits/hashtable.h (_Hashtable<>::_M_update_bbegin): New.
  4281. (_Hashtable<>::_M_assign): Use latter.
  4282. (_Hashtable<>::_M_move_assign): Likewise.
  4283. (_Hashtable<>(_Hashtable<>&&)): Likewise.
  4284. (_Hashtable<>(_Hashtable<>&&, const allocator_type&)): Likewise.
  4285. (_Hashtable<>::swap): Likewise.
  4286. (_Hashtable<>::find): Build iterator directly from _M_find_node result.
  4287. (_Hashtable<>::count): Use _Hashtable<>::find.
  4288. (_Hashtable<>::equal_range): Likewise.
  4289. (_Hashtable<>::_M_erase(false_type, const key_type&)): Use
  4290. _M_node_equals.
  4291. 2020-07-27 Jonathan Wakely <jwakely@redhat.com>
  4292. * src/c++17/floating_from_chars.cc (from_chars_impl): Ensure
  4293. that FE_NEAREST is used.
  4294. * testsuite/20_util/from_chars/4.cc: Do not use if constexpr in
  4295. a { target c++14 } test.
  4296. [!_GLIBCXX_HAVE_USELOCALE]: Disable all tests.
  4297. * testsuite/20_util/from_chars/5.cc [!_GLIBCXX_HAVE_USELOCALE]:
  4298. Likewise.
  4299. * testsuite/20_util/from_chars/6.cc: New test.
  4300. 2020-07-22 Jonathan Wakely <jwakely@redhat.com>
  4301. * include/std/future (future, shared_future, promise): Add
  4302. static assertions to the primary template to reject array and
  4303. function types.
  4304. * testsuite/30_threads/future/requirements/lwg3458.cc: New test.
  4305. * testsuite/30_threads/promise/requirements/lwg3466.cc: New test.
  4306. * testsuite/30_threads/shared_future/requirements/lwg3458.cc: New test.
  4307. 2020-07-22 Jonathan Wakely <jwakely@redhat.com>
  4308. * include/bits/stl_iterator.h (reverse_iterator): Constrain
  4309. converting constructor and converting assignment operator.
  4310. Access source iterator's data member directly instead of
  4311. calling base().
  4312. (move_iterator): Likewise.
  4313. * testsuite/24_iterators/move_iterator/dr3435.cc: New test.
  4314. * testsuite/24_iterators/reverse_iterator/dr3435.cc: New test.
  4315. 2020-07-20 Jonathan Wakely <jwakely@redhat.com>
  4316. * acinclude.m4 (libtool_VERSION): Bump version.
  4317. * config.h.in: Regenerate.
  4318. * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.29 version and new
  4319. exports.
  4320. * config/os/gnu-linux/ldbl-extra.ver: Add _GLIBCXX_LDBL_3.4.29
  4321. version and new export.
  4322. * configure: Regenerate.
  4323. * configure.ac: Check for <xlocale.h> and uselocale.
  4324. * crossconfig.m4: Add macro or checks for uselocale.
  4325. * include/std/charconv (from_chars): Declare overloads for
  4326. float, double, and long double.
  4327. * src/c++17/Makefile.am: Add new file.
  4328. * src/c++17/Makefile.in: Regenerate.
  4329. * src/c++17/floating_from_chars.cc: New file.
  4330. (from_chars): Define for float, double, and long double.
  4331. * testsuite/20_util/from_chars/1_c++20_neg.cc: Prune extra
  4332. diagnostics caused by new overloads.
  4333. * testsuite/20_util/from_chars/1_neg.cc: Likewise.
  4334. * testsuite/20_util/from_chars/2.cc: Check leading '+'.
  4335. * testsuite/20_util/from_chars/4.cc: New test.
  4336. * testsuite/20_util/from_chars/5.cc: New test.
  4337. * testsuite/util/testsuite_abi.cc: Add new symbol versions.
  4338. 2020-07-20 Jonathan Wakely <jwakely@redhat.com>
  4339. * include/bits/istream.tcc
  4340. (basic_istream::get(__streambuf_type&, char_type): Use unsigned
  4341. long long for counter and check if it would overflow _M_gcount.
  4342. * testsuite/27_io/basic_istream/get/char/lwg3464.cc: New test.
  4343. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: New test.
  4344. 2020-07-17 Iain Sandoe <iain@sandoe.co.uk>
  4345. * include/std/coroutine: Mark the methods of the
  4346. trivial awaitables as constexpr.
  4347. 2020-07-14 David Edelsohn <dje.gcc@gmail.com>
  4348. * config/os/aix/t-aix: Set BITS from compiler cpp macro.
  4349. 2020-07-13 Jonathan Wakely <jwakely@redhat.com>
  4350. PR libstdc++/94749
  4351. PR libstdc++/96161
  4352. * include/bits/istream.tcc (basic_istream::ignore(streamsize))
  4353. [n == max]: Check overflow conditions on _M_gcount. Rely on
  4354. the fact that either EOF or the delimiter was reached.
  4355. [n < max]: Check _M_gcount < n before checking for EOF or
  4356. delimiter.
  4357. (basic_istream::ignore(streamsize, char_type): Likewise.
  4358. * src/c++98/compatibility.cc (istream::ignore(streamsize))
  4359. (wistream::ignore(streamsize)): Likewise.
  4360. * src/c++98/istream.cc (istream::ignore(streamsize, char_type))
  4361. (wistream::ignore(streamsize, char_type)): Likewise.
  4362. * testsuite/27_io/basic_istream/ignore/char/94749.cc: Check that
  4363. delimiter is discarded if the number of characters ignored
  4364. doesn't fit in streamsize.
  4365. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc:
  4366. Likewise.
  4367. * testsuite/27_io/basic_istream/ignore/char/96161.cc: New test.
  4368. * testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc: New test.
  4369. 2020-07-08 François Dumont <fdumont@gcc.gnu.org>
  4370. * include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&)): Add noexcept
  4371. qualification based only on _Compare one.
  4372. * testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add
  4373. static asserts.
  4374. * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
  4375. Likewise.
  4376. * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
  4377. Likewise.
  4378. * testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise.
  4379. 2020-07-07 Jonathan Wakely <jwakely@redhat.com>
  4380. * include/std/limits: Whitespace changes.
  4381. 2020-07-07 Jonathan Wakely <jwakely@redhat.com>
  4382. * include/Makefile.am: Remove bits/int_limits.h.
  4383. * include/Makefile.in: Regenerate.
  4384. * include/bits/int_limits.h: Removed.
  4385. * include/bits/parse_numbers.h (_Select_int_base): Replace
  4386. __int_limits with __int_traits.
  4387. * include/bits/range_access.h (_SSize::operator()): Likewise.
  4388. * include/ext/numeric_traits.h (__numeric_traits_integer): Add
  4389. static assertion.
  4390. (__int_traits): New alias template.
  4391. * include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
  4392. (__countr_zero, __countr_one, __popcount, __bit_ceil)
  4393. (__bit_floor, __bit_width) Replace __int_limits with
  4394. __int_traits.
  4395. * include/std/charconv (__to_chars_8, __from_chars_binary)
  4396. (__from_chars_alpha_to_num, from_chars): Likewise.
  4397. * include/std/memory_resource (polymorphic_allocator::allocate)
  4398. (polymorphic_allocator::allocate_object): Likewise.
  4399. * include/std/string_view (basic_string_view::_S_compare):
  4400. Likewise.
  4401. * include/std/utility (cmp_equal, cmp_less, in_range): Likewise.
  4402. 2020-07-07 Jonathan Wakely <jwakely@redhat.com>
  4403. * include/std/limits: Whitespace changes.
  4404. 2020-07-06 Jonathan Wakely <jwakely@redhat.com>
  4405. * include/std/optional (_Optional_payload_base, _Optional_base)
  4406. (optional, __optional_hash_call_base): Adjust whitespace and
  4407. other formatting. Remove redundant && tokens on template
  4408. arguments to type traits.
  4409. 2020-07-06 Jonathan Wakely <jwakely@redhat.com>
  4410. * include/std/optional (make_optional): Add enable_if
  4411. constraints and noexcept-specifier to each overload.
  4412. * testsuite/20_util/optional/make_optional-2.cc: New test.
  4413. 2020-07-06 Jonathan Wakely <jwakely@redhat.com>
  4414. PR libstdc++/96036
  4415. * include/std/optional (optional): Add noexcept-specifier to
  4416. every constructor, assignment operator, emplace function and
  4417. dereference operator.
  4418. * testsuite/20_util/optional/assignment/noexcept.cc: New test.
  4419. * testsuite/20_util/optional/cons/noexcept.cc: New test.
  4420. 2020-07-06 Jonathan Wakely <jwakely@redhat.com>
  4421. PR libstdc++/96063
  4422. * include/bits/fs_dir.h: Use consistent tag in class-head.
  4423. * include/bits/localefwd.h: Likewise.
  4424. * include/bits/regex.h: Likewise.
  4425. * include/bits/stl_map.h: Likewise.
  4426. * include/bits/stl_multimap.h: Likewise.
  4427. * include/bits/stl_multiset.h: Likewise.
  4428. * include/bits/stl_set.h: Likewise.
  4429. * include/std/complex: Likewise.
  4430. * include/std/functional: Likewise.
  4431. * include/std/future: Likewise.
  4432. * include/std/system_error: Likewise.
  4433. * include/std/thread: Likewise.
  4434. * include/std/tuple: Likewise.
  4435. * include/std/type_traits: Likewise.
  4436. * include/std/valarray: Likewise.
  4437. 2020-07-02 Jonathan Wakely <jwakely@redhat.com>
  4438. * testsuite/27_io/basic_ios/conv/voidptr.cc: Add c++98_only
  4439. target selector.
  4440. 2020-07-02 Jonathan Wakely <jwakely@redhat.com>
  4441. * testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: Add
  4442. c++98_only target selector.
  4443. * testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc:
  4444. Likewise.
  4445. * testsuite/18_support/headers/cstdint/std_c++0x_neg.cc:
  4446. Likewise.
  4447. * testsuite/18_support/headers/new/synopsis_cxx98.cc: Likewise.
  4448. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc:
  4449. Likewise.
  4450. * testsuite/20_util/headers/type_traits/std_c++0x_neg.cc:
  4451. Likewise.
  4452. * testsuite/23_containers/headers/array/std_c++0x_neg.cc:
  4453. Likewise.
  4454. * testsuite/23_containers/headers/tuple/std_c++0x_neg.cc:
  4455. Likewise.
  4456. * testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc:
  4457. Likewise.
  4458. * testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc:
  4459. Likewise.
  4460. * testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc:
  4461. Likewise.
  4462. * testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc:
  4463. Likewise.
  4464. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc:
  4465. Likewise.
  4466. * testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc:
  4467. Likewise.
  4468. * testsuite/26_numerics/headers/random/std_c++0x_neg.cc:
  4469. Likewise.
  4470. * testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc: Likewise.
  4471. * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Likewise.
  4472. * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc:
  4473. Likewise.
  4474. * testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc:
  4475. Likewise.
  4476. * testsuite/30_threads/headers/future/std_c++0x_neg.cc:
  4477. Likewise.
  4478. * testsuite/30_threads/headers/mutex/std_c++0x_neg.cc: Likewise.
  4479. * testsuite/30_threads/headers/thread/std_c++0x_neg.cc:
  4480. Likewise.
  4481. 2020-07-02 Ville Voutilainen <ville.voutilainen@gmail.com>
  4482. PR libstdc++/91807
  4483. * include/std/variant
  4484. (_Copy_assign_base::operator=(const _Copy_assign_base&):
  4485. Do the move-assignment from a temporary so that the temporary
  4486. is constructed with an explicit index.
  4487. * testsuite/20_util/variant/91807.cc: New.
  4488. 2020-07-02 Jonathan Wakely <jwakely.gcc@gmail.com>
  4489. PR libstdc++/91153
  4490. PR target/93224
  4491. * testsuite/29_atomics/atomic_float/1.cc: Use different values
  4492. for tests.
  4493. * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
  4494. 2020-07-01 Jonathan Wakely <jwakely@redhat.com>
  4495. PR libstdc++/94627
  4496. * include/bits/regex.h (operator==, operator!=): Remove noexcept
  4497. equality comparisons for match_results.
  4498. * testsuite/28_regex/match_results/94627.cc: New test.
  4499. 2020-07-01 Martin Sebor <msebor@redhat.com>
  4500. * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: Adjust
  4501. text of expected warning.
  4502. * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: Same.
  4503. * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: Same.
  4504. * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: Same.
  4505. * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: Same.
  4506. 2020-06-29 Ville Voutilainen <ville.voutilainen@gmail.com>
  4507. Revert:
  4508. 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com>
  4509. * include/bits/basic_string.h (string(_CharT*, const _Alloc&)):
  4510. Add a __nonnull__ attribute.
  4511. * testsuite/21_strings/basic_string/cons/char/nonnull.cc: New.
  4512. * testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise.
  4513. 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com>
  4514. * include/bits/basic_string.h (string(_CharT*, const _Alloc&)):
  4515. Add a __nonnull__ attribute.
  4516. * testsuite/21_strings/basic_string/cons/char/nonnull.cc: New.
  4517. * testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise.
  4518. 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com>
  4519. PR libstdc++/95915
  4520. * include/std/type_traits (is_literal_type, is_literal_type_v):
  4521. Deprecate in C++17.
  4522. * include/std/variant (_Uninitialized):
  4523. Adjust the condition and the comment.
  4524. * testsuite/20_util/is_literal_type/deprecated-1z.cc: New.
  4525. * testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc:
  4526. Adjust.
  4527. * testsuite/20_util/is_literal_type/requirements/typedefs.cc: Likewise.
  4528. * testsuite/20_util/is_literal_type/value.cc: Likewise.
  4529. * testsuite/20_util/optional/constexpr/nullopt.cc:
  4530. Use __is_literal_type directly.
  4531. * testsuite/20_util/optional/nullopt.cc: Likewise.
  4532. * testsuite/20_util/variable_templates_for_traits.cc: Adjust.
  4533. * testsuite/20_util/variant/95915.cc: New.
  4534. * testsuite/20_util/variant/compile.cc: Add new test.
  4535. * testsuite/experimental/optional/constexpr/nullopt.cc:
  4536. Use __is_literal_type directly.
  4537. * testsuite/experimental/optional/nullopt.cc: Likewise.
  4538. * testsuite/experimental/type_traits/value.cc: Adjust.
  4539. * testsuite/util/testsuite_common_types.h:
  4540. Use __is_literal_type directly.
  4541. 2020-06-24 Jonathan Wakely <jwakely@redhat.com>
  4542. * include/std/charconv (__from_chars_binary): Ignore leading zeros.
  4543. * testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases,
  4544. not just 10 and 16.
  4545. * testsuite/20_util/from_chars/3.cc: New test.
  4546. 2020-06-24 Jonathan Wakely <jwakely@redhat.com>
  4547. * include/bits/stl_algobase.h (__find_if): Add FALLTHRU markers.
  4548. * include/std/charconv (__detail::__to_chars): Avoid
  4549. -Wsign-compare warning.
  4550. 2020-06-24 Jonathan Wakely <jwakely@redhat.com>
  4551. PR libstdc++/95851
  4552. * include/std/charconv (__to_chars_i): Check for zero-sized
  4553. buffer unconditionally.
  4554. * testsuite/20_util/to_chars/95851.cc: New test.
  4555. 2020-06-23 Jonathan Wakely <jwakely@redhat.com>
  4556. * testsuite/20_util/from_chars/1_c++20_neg.cc: Check enumeration
  4557. type.
  4558. * testsuite/20_util/from_chars/1_neg.cc: Likewise. Move dg-error
  4559. directives outside preprocessor condition.
  4560. 2020-06-23 Jonathan Wakely <jwakely@redhat.com>
  4561. PR libstdc++/95832
  4562. * include/std/variant (__detail::__variant::_Build_FUN): Remove
  4563. partial specialization to prevent narrowing conversions to bool.
  4564. * testsuite/20_util/variant/compile.cc: Test non-narrowing
  4565. conversions to bool.
  4566. * testsuite/20_util/variant/run.cc: Likewise.
  4567. 2020-06-23 Jonathan Wakely <jwakely@redhat.com>
  4568. * doc/Makefile.in: Regenerate.
  4569. * include/Makefile.in: Regenerate.
  4570. * libsupc++/Makefile.in: Regenerate.
  4571. * po/Makefile.in: Regenerate.
  4572. * python/Makefile.in: Regenerate.
  4573. * src/Makefile.in: Regenerate.
  4574. * src/c++11/Makefile.in: Regenerate.
  4575. * src/c++17/Makefile.in: Regenerate.
  4576. * src/c++98/Makefile.in: Regenerate.
  4577. * src/filesystem/Makefile.in: Regenerate.
  4578. * testsuite/Makefile.in: Regenerate.
  4579. 2020-06-22 David Edelsohn <dje.gcc@gmail.com>
  4580. * Makefile.am: Use -include.
  4581. * Makefile.in: Regenerate.
  4582. 2020-06-21 David Edelsohn <dje.gcc@gmail.com>
  4583. * Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
  4584. * Makefile.in: Regenerate.
  4585. * configure.ac (tmake_file): Substitute.
  4586. * configure: Regenerate.
  4587. * configure.host (aix*): Define tmake_file.
  4588. * config/os/aix/t-aix: New file.
  4589. 2020-06-20 Jason Merrill <jason@redhat.com>
  4590. * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
  4591. Remove greedy_ops tests.
  4592. * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
  4593. Remove greedy_ops tests.
  4594. 2020-06-19 Jonathan Wakely <jwakely@redhat.com>
  4595. PR libstdc++/95765
  4596. * include/bits/stl_algobase.h (__size_to_integer(float))
  4597. (__size_to_integer(double), __size_to_integer(long double))
  4598. (__size_to_integer(__float128)): Cast return type explicitly.
  4599. * include/bits/stl_uninitialized.h (__uninitialized_default_1<true>):
  4600. Remove unused typedef.
  4601. 2020-06-19 Jonathan Wakely <jwakely@redhat.com>
  4602. * include/bits/stl_pair.h (_Index_tuple): Remove redundant
  4603. namespace qualification.
  4604. (pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)):
  4605. Likewise.
  4606. * include/std/tuple (_Head_base, _Tuple_impl, tuple_size)
  4607. (tuple_element, __get_helper, get, __make_tuple_impl)
  4608. (__make_1st_indices, __tuple_concater)
  4609. (pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)):
  4610. Likewise.
  4611. * include/std/utility (tuple_element, __is_tuple_like_impl)
  4612. (tuple_size, __pair_get, get): Likewise.
  4613. 2020-06-19 Jonathan Wakely <jwakely@redhat.com>
  4614. * include/bits/std_function.h (function): Define all member
  4615. functions inline.
  4616. 2020-06-19 Marc Glisse <marc.glisse@inria.fr>
  4617. * include/bits/stl_algo.h (__includes): Simplify the code.
  4618. 2020-06-19 Marc Glisse <marc.glisse@inria.fr>
  4619. * include/std/optional (optional()): Explicitly define it.
  4620. 2020-06-17 Jonathan Wakely <jwakely@redhat.com>
  4621. PR libstdc++/94540
  4622. * include/bits/stl_uninitialized.h (__uninitialized_default_1<true>):
  4623. Construct the first value at *__first instead of on the stack.
  4624. (__uninitialized_default_n_1<true>): Likewise.
  4625. Improve comments on several of the non-standard algorithms.
  4626. * testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
  4627. New test.
  4628. * testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
  4629. New test.
  4630. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
  4631. New test.
  4632. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
  4633. New test.
  4634. * testsuite/23_containers/vector/cons/94540.cc: New test.
  4635. 2020-06-17 Jonathan Wakely <jwakely@redhat.com>
  4636. * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
  4637. Replace Value type with int so trivial code path is used.
  4638. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
  4639. Likewise.
  4640. 2020-06-17 Jonathan Wakely <jwakely@redhat.com>
  4641. * include/bits/stl_uninitialized.h (uninitialized_fill_n): Only
  4642. use std::fill_n when the size is an integral type.
  4643. (__uninitialized_default_n): Likewise.
  4644. * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
  4645. New test.
  4646. * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc:
  4647. New test.
  4648. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
  4649. New test.
  4650. 2020-06-16 Jonathan Wakely <jwakely@redhat.com>
  4651. PR libstdc++/95282
  4652. * include/bits/atomic_base.h (__atomic_impl::load): Use the _Val
  4653. alias instead of deducing _Tp as an unqualified type.
  4654. (__atomic_impl::exchange): Use the _Val alias to remove volatile
  4655. from the reinterpret_cast result type.
  4656. 2020-06-16 Jonathan Wakely <jwakely@redhat.com>
  4657. * include/std/atomic (atomic): Add static assertions.
  4658. * testsuite/29_atomics/atomic/requirements/types_neg.cc: New test.
  4659. 2020-06-16 Patrick Palka <ppalka@redhat.com>
  4660. PR libstdc++/94003
  4661. * testsuite/20_util/is_constructible/94003.cc: New test.
  4662. 2020-06-15 Jonathan Wakely <jwakely@redhat.com>
  4663. * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
  4664. Update value for C++20.
  4665. * include/std/version (__cpp_lib_constexpr_char_traits): Likewise.
  4666. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
  4667. Update expected value.
  4668. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
  4669. Likewise.
  4670. 2020-06-15 Paul Keir <paul.keir@uws.ac.uk>
  4671. * include/bits/char_traits.h (char_traits::move): constexpr move with
  4672. overlap was using copy_backward incorrectly.
  4673. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
  4674. New test.
  4675. 2020-06-12 Jonathan Wakely <jwakely@redhat.com>
  4676. * testsuite/29_atomics/atomic_flag/clear/1.cc: Also test clear()
  4677. when the value is currently set.
  4678. * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc:
  4679. Actually check the return value.
  4680. * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc:
  4681. Likewise.
  4682. 2020-06-12 Jonathan Wakely <jwakely@redhat.com>
  4683. * include/bits/atomic_base.h (atomic_flag::test): Add missing
  4684. const qualifiers.
  4685. * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
  4686. dg-options and verify results of test function.
  4687. * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
  4688. 2020-06-11 Jonathan Wakely <jwakely@redhat.com>
  4689. PR libstdc++/94749
  4690. * include/bits/istream.tcc (basic_istream::ignore(streamsize, CharT)):
  4691. Only discard an extra character if we didn't already reach the
  4692. maximum number.
  4693. * src/c++98/istream.cc (istream::ignore(streamsiz, char))
  4694. (wistream::ignore(streamsize, wchar_t)): Likewise.
  4695. * testsuite/27_io/basic_istream/ignore/char/94749.cc: New test.
  4696. * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: New test.
  4697. 2020-06-10 Patrick Palka <ppalka@redhat.com>
  4698. PR libstdc++/95578
  4699. * include/bits/ranges_algo.h (__lexicographical_compare_fn):
  4700. Also check that the iterator and sentinel have the same type before
  4701. applying the unwrapping optimization for __normal_iterator.
  4702. Split the check into two, one for the first iterator/sentinel
  4703. pair and another for second iterator/sentinel pair. Remove uses
  4704. of __niter_base, and remove uses of std::move on a
  4705. __normal_iterator.
  4706. * include/bits/ranges_algobase.h (__equal_fn): Likewise.
  4707. (__copy_or_move): Likewise. Perform similar adjustments for
  4708. the reverse_iterator and move_iterator optimizations. Inline
  4709. the checks into the if-constexprs, and use using-declarations to
  4710. make them less visually noisy. Remove uses of __niter_wrap.
  4711. (__copy_or_move_backward): Likewise.
  4712. * testsuite/25_algorithms/copy/95578.cc: New test.
  4713. * testsuite/25_algorithms/copy_backward/95578.cc: New test.
  4714. * testsuite/25_algorithms/equal/95578.cc: New test.
  4715. * testsuite/25_algorithms/lexicographical_compare/95578.cc: New test.
  4716. * testsuite/25_algorithms/move/95578.cc: New test.
  4717. * testsuite/25_algorithms/move_backward/95578.cc: New test.
  4718. 2020-06-10 François Dumont <fdumont@gcc.gnu.org>
  4719. Jonathan Wakely <jwakely@redhat.com>
  4720. * include/bits/deque.tcc (__lex_cmp_dit): New.
  4721. (__lexicographical_compare_aux1): Define overloads for deque
  4722. iterators.
  4723. * include/bits/stl_algobase.h (__lexicographical_compare::__3way):
  4724. New static member function.
  4725. (__lexicographical_compare<true>::__3way): Likewise.
  4726. (__lexicographical_compare<true>::__lc): Use __3way.
  4727. (__lexicographical_compare_aux): Rename to
  4728. __lexicographical_compare_aux1 and declare overloads for deque
  4729. iterators.
  4730. (__lexicographical_compare_aux): Define new forwarding function
  4731. that calls __lexicographical_compare_aux1 and declare new overloads
  4732. for safe iterators.
  4733. (lexicographical_compare): Do not use __niter_base on
  4734. parameters.
  4735. * include/debug/safe_iterator.tcc
  4736. (__lexicographical_compare_aux): Define overloads for safe
  4737. iterators.
  4738. * testsuite/25_algorithms/lexicographical_compare/1.cc: Add
  4739. checks with random access iterators.
  4740. * testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
  4741. New test.
  4742. 2020-06-09 Jonathan Wakely <jwakely@redhat.com>
  4743. * include/bits/stl_iterator.h (move_iterator::operator=): Define.
  4744. * testsuite/24_iterators/move_iterator/dr3265.cc: New test.
  4745. 2020-06-09 Jonathan Wakely <jwakely@redhat.com>
  4746. * include/std/optional (bad_optional_access): Define default
  4747. constructor and destructor as defaulted.
  4748. * testsuite/20_util/optional/bad_access.cc: New test.
  4749. 2020-06-08 Jonathan Wakely <jwakely@redhat.com>
  4750. * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error
  4751. line number.
  4752. * testsuite/20_util/default_delete/void_neg.cc: Likewise.
  4753. 2020-06-08 Jonathan Wakely <jwakely@redhat.com>
  4754. * include/bits/unique_ptr.h (operator<<): Define for C++20.
  4755. * testsuite/20_util/unique_ptr/io/lwg2948.cc: New test.
  4756. 2020-06-04 Jonathan Wakely <jwakely@redhat.com>
  4757. * include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref)
  4758. (__detail::__cat, __detail::__diff): Move to class scope in the
  4759. relevant __iterator_traits specializations.
  4760. (__iterator_traits<>): Use nested class templates instead of ones from
  4761. namespace __detail.
  4762. * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to
  4763. class scope in iterator_traits<common_iterator<I, S>>.
  4764. (iterator_traits<common_iterator<I, S>>): Use nested class template
  4765. instead of __detail::__common_iter_ptr.
  4766. 2020-06-04 François Dumont <fdumont@gcc.gnu.org>
  4767. * include/bits/stl_algo.h (__copy_n_a): Move to ...
  4768. * include/bits/stl_algobase.h (__copy_n_a): ...here. Add __strict
  4769. parameter.
  4770. (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
  4771. Declare.
  4772. (__niter_base(const _Safe_iterator<_Ite, _Seq,
  4773. random_access_iterator_tag>&)): Declare.
  4774. (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
  4775. _Deque_iterator<>)): Declare.
  4776. * include/bits/deque.tcc
  4777. (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>,
  4778. _Deque_iterator<>)): New.
  4779. (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)):
  4780. New.
  4781. * include/bits/streambuf_iterator.h
  4782. (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*, bool)): Adapt.
  4783. * include/debug/safe_iterator.tcc (__niter_base): New.
  4784. * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
  4785. (test03): New.
  4786. * testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc:
  4787. New test.
  4788. * testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc:
  4789. New test.
  4790. * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc: New test.
  4791. * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
  4792. New test.
  4793. 2020-06-04 Jonathan Wakely <jwakely@redhat.com>
  4794. * include/bits/ranges_algobase.h (__copy_n_fn): Only call
  4795. ranges::copy for positive values.
  4796. * include/bits/stl_algo.h (copy_n): Convert Size argument to an
  4797. integral type and only call __copy_n for positive values.
  4798. * testsuite/util/testsuite_iterators.h
  4799. (random_access_iterator_wrapper::operator+=): Fix range check for
  4800. negative values.
  4801. (output_container, input_container, forward_container)
  4802. (bidirectional_container, random_access_container): New alias
  4803. templates.
  4804. * testsuite/25_algorithms/copy_n/5.cc: New test.
  4805. 2020-06-02 Jonathan Wakely <jwakely@redhat.com>
  4806. PR libstdc++/90102
  4807. * include/debug/deque (deque(const _Base&)): Replace parameter
  4808. with a struct that wraps a const _Base&.
  4809. * include/debug/forward_list (forward_list(_Base_ref)): New
  4810. constructor.
  4811. * include/debug/list (list(const _Base&)): Replace parameter
  4812. with a struct that wraps a const _Base&.
  4813. * include/debug/map.h (map(const _Base&)): Likewise.
  4814. * include/debug/multimap.h (multimap(const _Base&)): Likewise.
  4815. * include/debug/multiset.h (multiset(const _Base&)): Likewise.
  4816. * include/debug/set.h (set(const _Base&)): Likewise.
  4817. * include/debug/unordered_map (unordered_map(const _Base&))
  4818. (unordered_multimap(const _Base&)): Likewise.
  4819. * include/debug/unordered_set (unordered_set(const _Base&))
  4820. (unordered_multiset(const _Base&)): Likewise.
  4821. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
  4822. Adjust dg-error line number.
  4823. * include/debug/vector (vector(const _Base&)): Likewise.
  4824. * testsuite/23_containers/deque/debug/90102.cc: New test.
  4825. * testsuite/23_containers/forward_list/debug/90102.cc: New test.
  4826. * testsuite/23_containers/list/debug/90102.cc: New test.
  4827. * testsuite/23_containers/map/debug/90102.cc: New test.
  4828. * testsuite/23_containers/multimap/debug/90102.cc: New test.
  4829. * testsuite/23_containers/multiset/debug/90102.cc: New test.
  4830. * testsuite/23_containers/set/debug/90102.cc: New test.
  4831. * testsuite/23_containers/unordered_map/debug/90102.cc: New test.
  4832. * testsuite/23_containers/unordered_multimap/debug/90102.cc: New test.
  4833. * testsuite/23_containers/unordered_multiset/debug/90102.cc: New test.
  4834. * testsuite/23_containers/unordered_set/debug/90102.cc: New test.
  4835. * testsuite/23_containers/vector/debug/90102.cc: New test.
  4836. 2020-06-01 Jonathan Wakely <jwakely@redhat.com>
  4837. PR libstdc++/95392
  4838. * include/bits/fs_path.h (path::_S_to_string): Move to
  4839. namespace-scope and rename to ...
  4840. (__detail::__string_from_range): ... this.
  4841. [WINDOWS] (__detail::__wstr_from_utf8): New function template to
  4842. convert a char sequence containing UTF-8 to wstring.
  4843. (path::_S_convert(Iter, Iter)): Adjust call to _S_to_string.
  4844. (path::_S_convert_loc(Iter, Iter, const locale&)): Likewise.
  4845. (u8path(InputIterator, InputIterator)) [WINDOWS]: Use
  4846. __string_from_range to obtain a contiguous range and
  4847. __wstr_from_utf8 to obtain a wide string.
  4848. (u8path(const Source&)) [WINDOWS]: Use __effective_range to
  4849. obtain a contiguous range and __wstr_from_utf8 to obtain a wide
  4850. string.
  4851. (path::_S_convert(const _EcharT*, const _EcharT)) [WINDOWS]:
  4852. Use __wstr_from_utf8.
  4853. 2020-06-01 Jonathan Wakely <jwakely@redhat.com>
  4854. * testsuite/util/testsuite_iterators.h:
  4855. (input_iterator_wrapper::operator++(int)): Return proxy object.
  4856. 2020-06-01 Jonathan Wakely <jwakely@redhat.com>
  4857. * doc/xml/manual/evolution.xml: Document deprecation of
  4858. __is_nullptr_t and removal of std::allocator members.
  4859. * doc/html/manual/api.html: Regenerate.
  4860. 2020-06-01 Jonathan Wakely <jwakely@redhat.com>
  4861. * doc/xml/manual/containers.xml: Replace <xref> with <link>.
  4862. * doc/xml/manual/evolution.xml: Likewise.
  4863. * doc/html/manual/api.html: Regenerate.
  4864. * doc/html/manual/containers.html: Regenerate.
  4865. 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com>
  4866. * doc/xml/faq.xml: Adjust Valgrind reference and remove another.
  4867. * doc/html/faq.html: Regenerate.
  4868. 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com>
  4869. * doc/xml/manual/policy_data_structures_biblio.xml: Remove
  4870. stray change.
  4871. 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com>
  4872. * doc/xml/manual/policy_data_structures_biblio.xml: Switch
  4873. www.cs.princeton.edu to https.
  4874. * doc/html/manual/policy_data_structures.html: Regenerate.
  4875. 2020-05-31 Douglas B Rupp <douglas.b.rupp@gmail.com>
  4876. * crossconfig.m4 (<*-vxworks>): Check for more math decls.
  4877. * configure: Rebuild.
  4878. 2020-05-29 H.J. Lu <hjl.tools@gmail.com>
  4879. PR bootstrap/95413
  4880. * configure: Regenerated.
  4881. 2020-05-29 François Dumont <fdumont@gcc.gnu.org>
  4882. PR libstdc++/95079
  4883. * include/bits/hashtable_policy.h (_Insert_base<>::try_emplace): New.
  4884. * include/bits/unordered_map.h (unordered_map<>::try_emplace): Adapt.
  4885. (unordered_map<>::insert_or_assign): Adapt.
  4886. 2020-05-27 Jonathan Wakely <jwakely@redhat.com>
  4887. PR libstdc++/95282
  4888. * include/bits/atomic_base.h (__atomic_impl::load): Add
  4889. cv-qualifiers to parameter so that _Tp is deduced as the
  4890. unqualified type.
  4891. * testsuite/29_atomics/atomic_float/95282.cc: New test.
  4892. 2020-05-27 Jonathan Wakely <jwakely@redhat.com>
  4893. PR libstdc++/95322
  4894. * include/std/ranges (transform_view::_Sentinel): Allow hidden
  4895. friends to work with _Iterator<true> and _Iterator<false>.
  4896. (join_view::_Sentinel): Likewise.
  4897. * testsuite/std/ranges/adaptors/95322.cc: New test.
  4898. 2020-05-27 Jonathan Wakely <jwakely@redhat.com>
  4899. PR libstdc++/94354
  4900. * include/bits/stl_iterator.h (reverse_iterator): Fix comparison
  4901. operators to use the correct operations on the underlying
  4902. iterators.
  4903. * testsuite/24_iterators/reverse_iterator/rel_ops.cc: New test.
  4904. 2020-05-27 Jonathan Wakely <jwakely@redhat.com>
  4905. * testsuite/18_support/comparisons/categories/zero_neg.cc: New test.
  4906. 2020-05-26 Patrick Palka <ppalka@redhat.com>
  4907. PR libstdc++/95322
  4908. * include/bits/stl_iterator.h (__detail::_Common_iter_proxy):
  4909. Remove and instead define it ...
  4910. (common_iterator::_Proxy): ... here.
  4911. (common_iterator::operator->): Use it.
  4912. * testsuite/24_iterators/common_iterator/2.cc: New test.
  4913. * testsuite/std/ranges/adaptors/95322.cc: New test.
  4914. 2020-05-23 Patrick Palka <ppalka@redhat.com>
  4915. PR libstdc++/93978
  4916. * testsuite/std/ranges/adaptors/93978.cc: Add -Wall to
  4917. dg-additional-options. Avoid unused-but-set-variable warning.
  4918. 2020-05-23 Jonathan Wakely <jwakely@redhat.com>
  4919. PR libstdc++/95289
  4920. * include/debug/helper_functions.h (__get_distance): Only declare
  4921. as a constexpr function for C++14 and up.
  4922. * testsuite/25_algorithms/copy/debug/95289.cc: New test.
  4923. * include/bits/fs_path.h (__detail::_S_range_begin)
  4924. (__detail::_S_range_end, path::_S_string_from_iter): Replace with
  4925. overloaded function template __detail::__effective_range.
  4926. (__detail::__effective_range): New overloaded function template to
  4927. create a basic_string or basic_string_view for an effective range.
  4928. (__detail::__value_type_is_char): Use __detail::__effective_range.
  4929. Do not use remove_const on value type.
  4930. (__detail::__value_type_is_char_or_char8_t): Likewise.
  4931. (path::path(const Source&, format))
  4932. (path::path(const Source&, const locale&))
  4933. (path::operator/=(const Source&), path::append(const Source&))
  4934. (path::concat(const Source&)): Use __detail::__effective_range.
  4935. (path::_S_to_string(InputIterator, InputIterator)): New function
  4936. template to create a string view if possible, or string otherwise.
  4937. (path::_S_convert): Add overloads that convert a string returned
  4938. by __detail::__effective_range. Use if-constexpr to inline conversion
  4939. logic from all overloads of _Cvt::_S_convert.
  4940. (path::_S_convert_loc): Add overload that converts a string. Use
  4941. _S_to_string to avoid allocation when possible.
  4942. (path::_Cvt): Remove.
  4943. (path::operator+=(CharT)): Remove indirection through path::concat.
  4944. * include/experimental/bits/fs_path.h (path::_S_convert_loc): Add
  4945. overload for non-const pointers, to avoid constructing a std::string.
  4946. * src/c++17/fs_path.cc (path::_S_convert_loc): Replace conditional
  4947. compilation with call to _S_convert.
  4948. * include/bits/fs_path.h (__detail::_S_range_begin)
  4949. (__detail::_S_range_end): Remove unintentional static specifiers.
  4950. * include/experimental/bits/fs_path.h (__detail::_S_range_begin)
  4951. (__detail::_S_range_end): Likewise.
  4952. * include/bits/fs_path.h (filesystem::__detail::__is_encoded_char):
  4953. Replace alias template with variable template. Don't remove const.
  4954. (filesystem::__detail::__is_path_src): Replace overloaded function
  4955. template with variable template and specializations.
  4956. (filesystem::__detail::__is_path_iter_src): Replace alias template
  4957. with class template.
  4958. (filesystem::__detail::_Path): Use __is_path_src. Remove support for
  4959. iterator pairs.
  4960. (filesystem::__detail::_Path2): New alias template for checking
  4961. InputIterator requirements.
  4962. (filesystem::__detail::__constructible_from): Remove.
  4963. (filesystem::path): Replace _Path<Iter, Iter> with _Path2<Iter>.
  4964. * testsuite/27_io/filesystem/path/construct/80762.cc: Check with two
  4965. constructor arguments of void and void* types.
  4966. 2020-05-21 Matthias Kretz <kretz@kde.org>
  4967. * testsuite/Makefile.am: Remove dup target_triplet and set tool,
  4968. allowing runtest to work without arguments.
  4969. * testsuite/Makefile.in: Regenerate.
  4970. 2020-05-21 Jonathan Wakely <jwakely@redhat.com>
  4971. PR libstdc++/93983
  4972. * include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
  4973. Reorder constraints to avoid recursion when constructors use
  4974. iterator_traits (LWG 3420).
  4975. * testsuite/24_iterators/customization_points/lwg3420.cc: New test.
  4976. * include/experimental/socket (basic_socket::is_open()
  4977. (basic_socket_acceptor::is_open()): Use _GLIBCXX_NODISCARD macro.
  4978. * include/experimental/bits/net.h (__endpoint, __protocol)
  4979. (__acceptable_protocol, __inet_protocol): New concepts.
  4980. (__detail::__is_endpoint): Move trait from <experimental/socket>.
  4981. (__is_protocol, __is_acceptable_protocol, __is_inet_protocol): New
  4982. traits.
  4983. (__endpoint, __protocol, __acceptable_protocol): New variable
  4984. templates.
  4985. * include/experimental/socket (__is_endpoint): Move to net.h header.
  4986. (basic_socket, basic_socket_acceptor): Check requirements.
  4987. * include/experimental/executor (use_future_t::use_future_t()): Fix
  4988. incorrect noexcept-specifier.
  4989. * include/experimental/internet (basic_resolver_results): Adjust
  4990. whitespace.
  4991. * include/experimental/socket (__basic_socket_impl::release): Add
  4992. member function.
  4993. (basic_socket(io_context&, const endpoint_type&)): Fix argument to
  4994. target constructor.
  4995. (basic_socket::release(), basic_socket::release(error_code&)): Add
  4996. missing member functions.
  4997. (basic_socket::is_open()): Add nodiscard attribute.
  4998. (basic_socket::close(error_code&)): Pass argument to base function.
  4999. (basic_socket_acceptor::release())
  5000. (basic_socket_acceptor::release(error_code&)): Add missing member
  5001. functions.
  5002. (basic_socket_acceptor::is_open()): Add nodiscard attribute.
  5003. (basic_socket_streambuf::error()): Add noexcept.
  5004. (basic_socket_iostream::error()): Likewise.
  5005. * testsuite/experimental/net/socket/basic_socket.cc: New test.
  5006. * include/experimental/buffer: Replace typedefs with
  5007. alias-declarations.
  5008. * include/experimental/executor: Likewise.
  5009. * include/experimental/internet: Likewise.
  5010. * include/experimental/socket: Likewise.
  5011. * include/experimental/timer: Likewise.
  5012. 2020-05-19 Jonathan Wakely <jwakely@redhat.com>
  5013. PR libstdc++/94087
  5014. * src/c++11/random.cc (__x86_rdseed): Allow fallback function to be
  5015. passed in.
  5016. (__x86_rdseed_rdrand): New function that uses rdseed with rdrand
  5017. fallback.
  5018. (random_device::_M_init): Use __x86_rdseed_rdrand when both
  5019. instructions are available.
  5020. * testsuite/26_numerics/random/random_device/94087.cc: New test.
  5021. 2020-05-19 Patrick Palka <ppalka@redhat.com>
  5022. PR c++/66439
  5023. * testsuite/20_util/pair/astuple/get_neg.cc: Prune "type/value
  5024. mismatch" messages.
  5025. * testsuite/20_util/tuple/element_access/get_neg.cc: Likewise.
  5026. 2020-05-15 H.J. Lu <hongjiu.lu@intel.com>
  5027. PR bootstrap/95147
  5028. * configure: Regenerated.
  5029. 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
  5030. * configure: Regenerated.
  5031. 2020-05-13 Alexandre Oliva <oliva@adacore.com>
  5032. PR libstdc++/77691
  5033. * include/experimental/memory_resource
  5034. (__resource_adaptor_imp::do_allocate): Handle max_align_t on
  5035. x86-vxworks as on x86-solaris.
  5036. (__resource_adaptor_imp::do_deallocate): Likewise.
  5037. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  5038. Drop xfail.
  5039. (BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris.
  5040. (test03): Drop max-align test for char-aligned alloc.
  5041. 2020-05-08 Ulrich Drepper <drepper@redhat.com>
  5042. * include/bits/atomic_base.h (atomic_flag): Implement test member
  5043. function.
  5044. * include/std/version: Define __cpp_lib_atomic_flag_test.
  5045. * testsuite/29_atomics/atomic_flag/test/explicit.cc: New file.
  5046. * testsuite/29_atomics/atomic_flag/test/implicit.cc: New file.
  5047. 2020-05-07 Jonathan Wakely <jwakely@redhat.com>
  5048. PR libstdc++/94971 (partial)
  5049. * include/bits/ranges_algo.h (ranges::__sample_fn): Qualify
  5050. std::sample using macro to work in parallel mode.
  5051. (__sort_fn): Likewise for std::sort.
  5052. (ranges::__nth_element_fn): Likewise for std::nth_element.
  5053. * include/bits/stl_algobase.h (lexicographical_compare_three_way):
  5054. Likewise for std::__min_cmp.
  5055. * include/parallel/algobase.h (lexicographical_compare_three_way):
  5056. Add to namespace std::__parallel.
  5057. PR c/92472
  5058. * include/parallel/multiway_merge.h (_GuardedIterator::operator*)
  5059. (_GuardedIterator::operator _RAIter, _UnguardedIterator::operator*)
  5060. (_UnguardedIterator::operator _RAIter): Add const qualifier.
  5061. (operator<(_GuardedIterator&, _GuardedIterator&)
  5062. (operator<=(_GuardedIterator&, _GuardedIterator&)
  5063. (operator<(_UnguardedIterator&, _UnguardedIterator&)
  5064. (operator<=(_UnguardedIterator&, _UnguardedIterator&): Change
  5065. parameters to const references.
  5066. 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
  5067. * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
  5068. * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
  5069. 2020-05-06 François Dumont <fdumont@gcc.gnu.org>
  5070. * include/bits/stl_algobase.h (struct _Bit_iterator): New declaration.
  5071. (std::__fill_a1(_Bit_iterator, _Bit_iterator, const bool&)): Likewise.
  5072. * include/bits/stl_bvector.h (__fill_bvector): Move outside
  5073. _GLIBCXX_STD_C namespace.
  5074. (fill(_Bit_iterator, _Bit_iterator, const bool&)): Likewise and rename
  5075. into...
  5076. (__fill_a1): ...this.
  5077. * testsuite/25_algorithms/fill/bvector/1.cc: New.
  5078. 2020-05-06 H.J. Lu <hongjiu.lu@intel.com>
  5079. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
  5080. 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  5081. * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
  5082. * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
  5083. Likewise.
  5084. * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
  5085. * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
  5086. Likewise.
  5087. 2020-05-06 Martin Liska <mliska@suse.cz>
  5088. Revert:
  5089. 2020-05-05 Martin Liska <mliska@suse.cz>
  5090. PR c/92472
  5091. * include/parallel/multiway_merge.h:
  5092. Use const for _Compare template argument.
  5093. 2020-05-06 Jonathan Wakely <jwakely@redhat.com>
  5094. * doc/xml/manual/abi.xml (abi.versioning.history): Document library
  5095. versions for GCC 9.[123] and 10.1 releases.
  5096. * doc/html/*: Regenerate.
  5097. 2020-05-06 Jakub Jelinek <jakub@redhat.com>
  5098. * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
  5099. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
  5100. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
  5101. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
  5102. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
  5103. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
  5104. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
  5105. 2020-05-05 Martin Liska <mliska@suse.cz>
  5106. PR c/92472
  5107. * include/parallel/multiway_merge.h:
  5108. Use const for _Compare template argument.
  5109. 2020-05-04 Fangrui Song <maskray@google.com>
  5110. * libsupc++/cxxabi.h (__cxa_finalize): Fix return type.
  5111. 2020-05-04 Jonathan Wakely <jwakely@redhat.com>
  5112. * doc/xml/faq.xml: Use working link for SGI STL FAQ.
  5113. * doc/html/*: Regenerate.
  5114. PR libstdc++/94906
  5115. * src/c++17/memory_resource.cc
  5116. (monotonic_buffer_resource::_Chunk::release): Use size_t for shift
  5117. operands.
  5118. 2020-05-04 Nathan Sidwell <nathan@acm.org>
  5119. PR libstdc++/94747
  5120. * libsupc++/dyncast.cc (__dynamic_cast): Cast offsetof to
  5121. ptrdiff_t before negation, to show intent more clearly.
  5122. 2020-05-04 Jonathan Wakely <jwakely@redhat.com>
  5123. PR libstdc++/94936
  5124. * src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools):
  5125. Add comment about single-threaded behaviour.
  5126. (synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist
  5127. class member access out of loop.
  5128. (synchronized_pool_resource::synchronized_pool_resource())
  5129. (synchronized_pool_resource::~synchronized_pool_resource())
  5130. (synchronized_pool_resource::release()): Check __gthread_active_p
  5131. before creating and/or deleting the thread-specific data key.
  5132. (synchronized_pool_resource::_M_thread_specific_pools()): Adjust
  5133. assertions.
  5134. (synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast
  5135. path for single-threaded case.
  5136. (synchronized_pool_resource::do_deallocate(void*, size_t, size_t)):
  5137. Likewise. Return if unable to find a pool that owns the allocation.
  5138. * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
  5139. New test.
  5140. * testsuite/20_util/synchronized_pool_resource/cons_single.cc: New
  5141. test.
  5142. * testsuite/20_util/synchronized_pool_resource/release_single.cc: New
  5143. test.
  5144. 2020-05-03 Jonathan Wakely <jwakely@redhat.com>
  5145. PR libstdc++/94933
  5146. * include/bits/stl_algobase.h (__fill_a1): Make overload for byte types
  5147. usable in constant expressions.
  5148. * testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and
  5149. non-scalars.
  5150. 2020-05-01 Jonathan Wakely <jwakely@redhat.com>
  5151. PR libstdc++/94901
  5152. * testsuite/17_intro/badnames.cc: Test values between _E9 and _E24 too.
  5153. 2020-05-01 Jonathan Wakely <jwakely@redhat.com>
  5154. Patrick Palka <ppalka@redhat.com>
  5155. PR libstdc++/92894
  5156. * include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
  5157. Add trait to determine return type and an alias for it.
  5158. (ranges::__cust_imove::_IMove::operator()): Use __result instead of
  5159. deduced return type.
  5160. (iter_rvalue_reference_t): Use _IMove::__type instead of checking
  5161. the result of ranges::iter_move.
  5162. (__detail::__indirectly_readable_impl): Use iter_rvalue_reference_t
  5163. instead of checking the result of ranges::iter_move.
  5164. * testsuite/24_iterators/customization_points/92894.cc: New test.
  5165. * testsuite/24_iterators/indirect_callable/92894.cc: New test.
  5166. 2020-05-01 Jonathan Wakely <jwakely@redhat.com>
  5167. PR libstdc++/94901
  5168. * include/std/type_traits (__is_complete_or_unbounded): Replace
  5169. BADNAME _T with _Tp.
  5170. * testsuite/17_intro/badnames.cc: New test.
  5171. 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
  5172. PR libstdc++/89510
  5173. * include/bits/alloc_traits.h (allocator_traits::_S_construct)
  5174. (allocator_traits::_S_destroy)
  5175. (allocator_traits<allocator<T>>::construct): Use traits in
  5176. noexcept-specifiers.
  5177. * include/bits/allocator.h (allocator<void>::construct)
  5178. (allocator<void>::destroy): Likewise.
  5179. * include/ext/malloc_allocator.h (malloc_allocator::construct)
  5180. (malloc_allocator::destroy): Likewise.
  5181. * include/ext/new_allocator.h (new_allocator::construct)
  5182. (new_allocator::destroy): Likewise.
  5183. * testsuite/20_util/allocator/89510.cc: New test.
  5184. * testsuite/ext/malloc_allocator/89510.cc: New test.
  5185. * testsuite/ext/new_allocator/89510.cc: New test.
  5186. 2020-04-29 Jonathan Wakely <jwakely@redhat.com>
  5187. PR libstdc++/94854
  5188. * include/bits/basic_string.tcc: Update comment about explicit
  5189. instantiations.
  5190. 2020-04-28 Jonathan Wakely <jwakely@redhat.com>
  5191. PR libstdc++/91480
  5192. * include/bits/allocator.h (__cpp_lib_allocator_is_always_equal):
  5193. Remove non-standard macro.
  5194. * include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define
  5195. to indicate P1032R1 support.
  5196. * include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise.
  5197. * include/std/string_view (__cpp_lib_constexpr_string_view): Likewise.
  5198. * include/std/tuple (__cpp_lib_constexpr_tuple): Likewise.
  5199. * include/std/version (__cpp_lib_allocator_is_always_equal): Remove.
  5200. (__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view)
  5201. (__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define.
  5202. * testsuite/20_util/function_objects/constexpr_searcher.cc: Check
  5203. feature test macro.
  5204. * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise.
  5205. * testsuite/21_strings/basic_string_view/operations/copy/char/
  5206. constexpr.cc: Likewise.
  5207. * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
  5208. PR libstdc++/94831
  5209. * include/bits/alloc_traits.h (_S_construct): Restore placement
  5210. new-expression for C++11/14/17 and call std::construct_at directly
  5211. for C++20.
  5212. * include/bits/stl_construct.h (_Construct): Revert to non-constexpr
  5213. function returning void.
  5214. * testsuite/20_util/specialized_algorithms/
  5215. uninitialized_value_construct/94831.cc: New test.
  5216. * testsuite/23_containers/vector/cons/94831.cc: New test.
  5217. 2020-04-28 Patrick Palka <ppalka@redhat.com>
  5218. LWG 3433 subrange::advance(n) has UB when n < 0
  5219. * include/std/ranges (subrange::prev): Fix typo.
  5220. (subrange::advance): Handle a negative argument as per the proposed
  5221. resolution of LWG 3433.
  5222. * testsuite/std/ranges/subrange/lwg3433.cc: New test.
  5223. 2020-04-28 Jonathan Wakely <jwakely@redhat.com>
  5224. Iain Sandoe <iain@sandoe.co.uk>
  5225. PR c++/94759
  5226. * include/std/coroutine: Implement handing for non-
  5227. class coroutine return types.
  5228. 2020-04-24 Jonathan Wakely <jwakely@redhat.com>
  5229. * include/experimental/executor (service_already_exists): Make default
  5230. constructor public (LWG 3414).
  5231. * testsuite/experimental/net/execution_context/make_service.cc: Check
  5232. the service_already_exists can be default constructed.
  5233. 2020-04-24 Kamlesh Kumar <kamleshbhalui@gmail.com>
  5234. Jonathan Wakely <jwakely@redhat.com>
  5235. PR libstdc++/90415
  5236. PR libstdc++/92156
  5237. * include/std/any (any): Rename template parameters for consistency
  5238. with the standard.
  5239. (any::_Decay): Rename to _Decay_if_not_any.
  5240. (any::any(T&&):: Remove is_constructible from constraints. Remove
  5241. non-standard overload.
  5242. (any::any(in_place_type_t<T>, Args&&...))
  5243. (any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
  5244. (any::emplace(Args&&...))
  5245. (any::emplace(initializer_list<U>, Args&&...)):
  5246. Use decay_t instead of _Decay.
  5247. * testsuite/20_util/any/cons/90415.cc: New test.
  5248. * testsuite/20_util/any/cons/92156.cc: New Test.
  5249. * testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
  5250. more robust.
  5251. * testsuite/20_util/any/modifiers/92156.cc: New test.
  5252. 2020-04-23 Jonathan Wakely <jwakely@redhat.com>
  5253. * doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
  5254. * doc/html/*: Regenerate.
  5255. * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
  5256. value for C++17 to 201803L because P0858R0 is supported for C++17.
  5257. * include/std/version (__cpp_lib_array_constexpr): Likewise.
  5258. * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
  5259. Check for value corresponding to P0031R0 features being tested.
  5260. * testsuite/23_containers/array/requirements/constexpr_iter.cc:
  5261. Check for value corresponding to P0858R0 features being tested.
  5262. * include/std/version (__cpp_lib_three_way_comparison): Define for
  5263. freestanding builds.
  5264. 2020-04-23 Thomas Rodgers <rodgert@appliantology.com>
  5265. * include/experimental/net/executor (system_context): Mark
  5266. system_context::system_context() = delete.
  5267. * testsuite/experimental/net/executor/1.cc: Add new
  5268. test to check system_context is not default constructible.
  5269. 2020-04-23 Iain Sandoe <iain@sandoe.co.uk>
  5270. * include/std/coroutine: Update the inline namespace to __n4861.
  5271. Add the __cpp_lib_coroutine define, set to 201902L.
  5272. * include/std/version: Add __cpp_lib_coroutine, set to 201902L.
  5273. 2020-04-22 Jonathan Wakely <jwakely@redhat.com>
  5274. * include/std/execution (__cpp_lib_execution): Define to indicate
  5275. support for P0024R2 and P1001R2.
  5276. * include/std/version (__cpp_lib_execution): Define.
  5277. * testsuite/25_algorithms/pstl/feature_test.cc: Only test macro
  5278. defined by <algorithm>, move other tests to new tests ...
  5279. * testsuite/25_algorithms/pstl/feature_test-2.cc: New test.
  5280. * testsuite/25_algorithms/pstl/feature_test-3.cc: New test.
  5281. * testsuite/25_algorithms/pstl/feature_test-4.cc: New test.
  5282. * testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
  5283. * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
  5284. different values for C++17 and C++20, to indicate different feature
  5285. sets. Update value for C++20 to indicate P1032R1 support.
  5286. * include/std/version (__cpp_lib_array_constexpr): Likewise.
  5287. * testsuite/23_containers/array/comparison_operators/constexpr.cc:
  5288. Check feature test macro.
  5289. * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
  5290. New test.
  5291. * testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
  5292. feature test macro.
  5293. * testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
  5294. in C++17 mode and check feature test macro.
  5295. * include/std/utility (__cpp_lib_constexpr_algorithms): Do not define
  5296. here.
  5297. * testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be
  5298. defined by <utility>.
  5299. * include/std/functional (__cpp_lib_concepts): Update macro value to
  5300. indicate P1964R2 support.
  5301. * include/std/version (__cpp_lib_concepts): Likewise.
  5302. * testsuite/std/concepts/1.cc: Adjust expected value.
  5303. * testsuite/std/concepts/2.cc: Likewise.
  5304. * include/std/functional (__cpp_lib_constexpr_invoke): Rename to
  5305. __cpp_lib_constexpr_functional.
  5306. * include/std/version (__cpp_lib_constexpr_invoke): Likewise.
  5307. * testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust.
  5308. * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to
  5309. indicate P1006R1 support.
  5310. (__cpp_lib_to_address): Define to indicate P0653R2 support.
  5311. * include/bits/range_access.h (__cpp_lib_ssize): Define to indicate
  5312. P1227R2 support.
  5313. * include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate
  5314. P0769R2 support.
  5315. * include/std/atomic (__cpp_lib_atomic_float): Define to indicate
  5316. P0020R6 support.
  5317. * include/std/memory (__cpp_lib_assume_aligned): Define to indicate
  5318. P1007R3 support.
  5319. * include/std/memory_resource (__cpp_lib_polymorphic_allocator):
  5320. Define to indicate P0339R6 support.
  5321. * include/std/string_view (__cpp_lib_starts_ends_with): Define to
  5322. indicate P0457R2 support.
  5323. * include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define
  5324. to indicate P0758R1 support.
  5325. (__cpp_lib_remove_cvref): Define to indicate P0550R2 support.
  5326. (__cpp_lib_type_identity): Define to indicate P0887R1 support.
  5327. * include/std/version (__cpp_lib_atomic_float)
  5328. (__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref)
  5329. (__cpp_lib_type_identity, __cpp_lib_assume_aligned)
  5330. (__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator)
  5331. (__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with)
  5332. (__cpp_lib_to_address): Define.
  5333. * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
  5334. * include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old
  5335. macro.
  5336. * include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion):
  5337. Likewise.
  5338. * include/std/version (__cpp_lib_map_insertion)
  5339. (__cpp_lib_unordered_map_insertion): Remove.
  5340. * include/std/condition_variable (__cpp_lib_jthread): Remove
  5341. redundant definition.
  5342. * include/std/stop_token (__cpp_lib_jthread): Update macro value to
  5343. indicate P1869R1 support.
  5344. * include/std/version (__cpp_lib_jthread): Update value.
  5345. * testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check
  5346. for updated macro value.
  5347. * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
  5348. Likewise.
  5349. * testsuite/30_threads/jthread/1.cc: Likewise.
  5350. * testsuite/30_threads/jthread/2.cc: Likewise.
  5351. * testsuite/30_threads/stop_token/1.cc: Likewise.
  5352. * testsuite/30_threads/stop_token/2.cc: Likewise.
  5353. * testsuite/21_strings/basic_string/erasure.cc: Check for
  5354. __cpp_lib_erase_if macro.
  5355. * testsuite/23_containers/deque/erasure.cc: Add header name to #error
  5356. messages.
  5357. * testsuite/23_containers/forward_list/erasure.cc: Likewise.
  5358. * testsuite/23_containers/list/erasure.cc: Likewise.
  5359. * testsuite/23_containers/map/erasure.cc: Likewise.
  5360. * testsuite/23_containers/set/erasure.cc: Likewise.
  5361. * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
  5362. * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
  5363. * testsuite/23_containers/vector/erasure.cc: Likewise.
  5364. 2020-04-21 Jonathan Wakely <jwakely@redhat.com>
  5365. * include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way
  5366. to define operator<=>.
  5367. * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test.
  5368. * doc/Makefile.am (xml_sources_manual): Add missing XML files.
  5369. * doc/Makefile.in: Regenerate.
  5370. * doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead
  5371. of "this page".
  5372. * doc/xml/manual/status_cxx2011.xml: Formatting and other corrections
  5373. to the C++11 status table.
  5374. * doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature
  5375. proposals with table matching contents of the C++14 standard.
  5376. * doc/xml/manual/status_cxx2017.xml: Add table matching contents of
  5377. the C++17 standard.
  5378. * doc/html/*: Regenerate.
  5379. PR c++/94149
  5380. * include/std/type_traits (__is_nt_constructible_impl): Add partial
  5381. specializations for bounded arrays with non-empty initializers.
  5382. * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
  5383. 2020-04-20 Thomas Rodgers <trodgers@redhat.com>
  5384. * testsuite/lib/libstdc++.exp: Add additional_flags=
  5385. -DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when
  5386. compiling with a newer Thread Building Blocks.
  5387. 2020-04-20 Jonathan Wakely <jwakely@redhat.com>
  5388. * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
  5389. * testsuite/20_util/is_constructible/51185.cc: Make test class a
  5390. non-aggregate so that the test verifies the same thing in all -std
  5391. modes.
  5392. * testsuite/20_util/is_constructible/value-2.cc: Adjust expected
  5393. results for some types when paren-init for aggregates is supported.
  5394. * include/std/version (__cpp_lib_three_way_comparison): Update value.
  5395. * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
  5396. (__detail::__synth3way): Add noexcept-specifier.
  5397. * include/bits/stl_map.h (map): Define operator<=> and remove
  5398. operator< for C++20.
  5399. * include/bits/stl_multimap.h (multimap): Likewise.
  5400. * include/bits/stl_multiset.h (multiset): Likewise.
  5401. * include/bits/stl_set.h (set): Likewise.
  5402. * include/bits/stl_tree.h (_Rb_tree): Likewise.
  5403. (_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant
  5404. operator!= for C++20.
  5405. * include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20.
  5406. * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
  5407. * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
  5408. * include/debug/set.h (__gnu_debug::set): Likewise.
  5409. * testsuite/23_containers/map/operators/cmp_c++20.cc: New test.
  5410. * testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test.
  5411. * testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test.
  5412. * testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
  5413. 2020-04-20 Matthias Kretz <kretz@kde.org>
  5414. * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose.
  5415. 2020-04-19 Jonathan Wakely <jwakely@redhat.com>
  5416. * include/bits/stl_queue.h (queue): Define operator<=> for C++20.
  5417. * include/bits/stl_stack.h (stack): Likewise.
  5418. * testsuite/23_containers/queue/cmp_c++20.cc: New test.
  5419. * testsuite/23_containers/stack/cmp_c++20.cc: New test.
  5420. * include/bits/unordered_map.h (unordered_map, unordered_multimap):
  5421. Remove redundant operator!= for C++20.
  5422. * include/bits/unordered_set.h (unordered_set, unordered_multiset):
  5423. Likewise.
  5424. * include/debug/unordered_map (unordered_map, unordered_multimap):
  5425. Likewise.
  5426. * include/debug/unordered_set (unordered_set, unordered_multiset):
  5427. Likewise.
  5428. PR other/94629
  5429. * include/debug/formatter.h (_Error_formatter::_Parameter): Fix
  5430. redundant assignment in constructor.
  5431. 2020-04-18 Jonathan Wakely <jwakely@redhat.com>
  5432. * include/std/chrono (duration, time_point): Define operator<=> and
  5433. remove redundant operator!= for C++20.
  5434. * testsuite/20_util/duration/comparison_operators/three_way.cc: New
  5435. test.
  5436. * testsuite/20_util/time_point/comparison_operators/three_way.cc: New
  5437. test.
  5438. * testsuite/util/native_type/native_priority_queue.hpp: Use
  5439. allocator_traits to rebind allocator.
  5440. 2020-04-17 Jonathan Wakely <jwakely@redhat.com>
  5441. * include/bits/forward_list.h (forward_list): Define operator<=> and
  5442. remove redundant comparison operators for C++20.
  5443. * include/bits/stl_bvector.h (vector<bool, Alloc>): Likewise.
  5444. * include/bits/stl_deque.h (deque): Likewise.
  5445. * include/bits/stl_iterator.h (__normal_iterator): Likewise.
  5446. * include/bits/stl_list.h (list): Likewise.
  5447. * include/bits/stl_vector.h (vector): Likewise.
  5448. * include/debug/deque (__gnu_debug::deque): Likewise.
  5449. * include/debug/forward_list (__gnu_debug::forward_list): Likewise.
  5450. * include/debug/list (__gnu_debug::list): Likewise.
  5451. * include/debug/safe_iterator.h (__gnu_debug::_Safe_iterator):
  5452. Likewise.
  5453. * include/debug/vector (__gnu_debug::vector): Likewise.
  5454. * include/ext/pointer.h (__gnu_cxx::_Pointer_adapter): Define
  5455. operator<=> for C++20.
  5456. * testsuite/23_containers/deque/operators/cmp_c++20.cc: New test.
  5457. * testsuite/23_containers/forward_list/cmp_c++20.cc: New test.
  5458. * testsuite/23_containers/list/cmp_c++20.cc: New test.
  5459. * testsuite/23_containers/vector/bool/cmp_c++20.cc: New test.
  5460. * testsuite/23_containers/vector/cmp_c++20.cc: New test.
  5461. * include/bits/basic_string.h (basic_string): Define operator<=> and
  5462. remove redundant comparison operators for C++20.
  5463. * include/bits/char_traits.h (__gnu_cxx::char_traits, char_traits):
  5464. Add comparison_category members.
  5465. (__detail::__char_traits_cmp_cat): New helper to get comparison
  5466. category from char traits class.
  5467. * include/bits/regex.h (regex_traits::_RegexMask::operator!=): Do not
  5468. define for C++20.
  5469. (sub_match): Define operator<=> and remove redundant comparison
  5470. operators for C++20.
  5471. (match_results): Remove redundant operator!= for C++20.
  5472. * include/std/string_view (basic_string_view): Define operator<=> and
  5473. remove redundant comparison operators for C++20.
  5474. * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: New
  5475. test.
  5476. * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
  5477. New test.
  5478. * testsuite/21_strings/basic_string_view/operations/copy/char/
  5479. constexpr.cc: Initialize variable.
  5480. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
  5481. constexpr.cc: Likewise.
  5482. * testsuite/21_strings/basic_string_view/operators/char/2.cc: Add
  5483. dg-do directive and remove comments showing incorrect signatures.
  5484. * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
  5485. Likewise.
  5486. * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
  5487. New test.
  5488. * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
  5489. New test.
  5490. * testsuite/28_regex/sub_match/compare_c++20.cc: New test.
  5491. 2020-04-16 Jonathan Wakely <jwakely@redhat.com>
  5492. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Remove
  5493. name of unused parameter.
  5494. 2020-04-15 Jonathan Wakely <jwakely@redhat.com>
  5495. * include/bits/fs_dir.h (file_status): Define operator== for C++20.
  5496. (directory_entry): Define operator<=> and remove redundant comparison
  5497. operators for C++20.
  5498. * include/bits/fs_fwd.h (space_info): Define operator== for C++20.
  5499. * include/bits/fs_path.h (path): Define operator<=> and remove
  5500. redundant comparison operators for C++20.
  5501. * testsuite/27_io/filesystem/path/compare/compare.cc: Fix comment.
  5502. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
  5503. * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
  5504. * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
  5505. * include/bits/allocator.h (operator!=): Do not define for C++20.
  5506. * include/bits/locale_classes.h (operator!=): Likewise.
  5507. * include/bits/std_function.h (operator==(nullptr_t, const function&))
  5508. (operator!=(const function&, nullptr_t))
  5509. (operator!=(nullptr_t, const function&)): Likewise.
  5510. * include/ext/bitmap_allocator.h (operator!=): Likewise.
  5511. * include/ext/debug_allocator.h (operator!=): Likewise.
  5512. * include/ext/extptr_allocator.h (operator!=): Likewise.
  5513. * include/ext/malloc_allocator.h (operator!=): Likewise.
  5514. * include/ext/mt_allocator.h (operator!=): Likewise.
  5515. * include/ext/new_allocator.h (operator!=): Likewise.
  5516. * include/ext/pool_allocator.h (operator!=): Likewise.
  5517. * include/ext/throw_allocator.h (operator!=): Likewise.
  5518. * include/std/bitset (bitset::operator!=): Likewise.
  5519. * include/std/memory_resource (operator!=): Likewise.
  5520. * include/std/scoped_allocator (operator!=): Likewise.
  5521. * include/std/typeindex (operator<=>): Define for C++20.
  5522. * testsuite/20_util/typeindex/comparison_operators_c++20.cc: New test.
  5523. 2020-04-14 Jonathan Wakely <jwakely@redhat.com>
  5524. * libsupc++/compare (compare_three_way): Fix constraint so that
  5525. BUILTIN-PTR-THREE-WAY does not require three_way_comparable_with.
  5526. * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc:
  5527. New test.
  5528. PR libstdc++/94562
  5529. * include/bits/shared_ptr.h (operator<=>): Define for C++20.
  5530. * include/bits/shared_ptr_base.h (operator<=>): Likewise.
  5531. * include/bits/unique_ptr.h (operator<=>): Add inline specifier.
  5532. * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: New test.
  5533. * testsuite/20_util/shared_ptr/comparison/less.cc: Do not expect
  5534. std::less<A*> to be used when comparing std::shared_ptr<A> objects in
  5535. C++20.
  5536. PR libstdc++/94565
  5537. * libsupc++/compare (__unspec): Add noexcept-specifier to constructor.
  5538. * testsuite/18_support/comparisons/categories/94565.cc: New test.
  5539. 2020-04-13 Iain Sandoe <iain@sandoe.co.uk>
  5540. * include/std/coroutine: Update coroutines builtin define,
  5541. per n4861.
  5542. 2020-04-09 Jonathan Wakely <jwakely@redhat.com>
  5543. * libsupc++/compare (compare_three_way): Fix noexcept-specifier.
  5544. (strong_order, weak_order, partial_order): Replace uses of <=> with
  5545. compare_three_way function object (LWG 3324).
  5546. * testsuite/18_support/comparisons/algorithms/partial_order.cc: Add
  5547. equality operator so that X satisfies three_way_comparable.
  5548. * testsuite/18_support/comparisons/algorithms/strong_order.cc:
  5549. Likewise.
  5550. * testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise.
  5551. * include/bits/unique_ptr.h (operator<=>): Define for C++20.
  5552. * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
  5553. * testsuite/20_util/default_delete/void_neg.cc: Likewise.
  5554. * testsuite/20_util/unique_ptr/comparison/compare.cc: New test.
  5555. * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: New test.
  5556. 2020-04-08 Jonathan Wakely <jwakely@redhat.com>
  5557. * include/bits/slice_array.h (operator==(const slice&, const slice&)):
  5558. Define for C++20.
  5559. * include/std/complex (operator==(const T&, const complex<T>&))
  5560. (operator!=(const complex<T>&, const complex<T>&))
  5561. (operator!=(const complex<T>&, const T&))
  5562. (operator!=(const T&, const complex<T>&)): Do not declare for C++20.
  5563. * testsuite/26_numerics/slice/compare.cc: New test.
  5564. * include/std/charconv (to_chars_result, from_chars_result): Add
  5565. defaulted equality comparisons for C++20.
  5566. * testsuite/20_util/from_chars/compare.cc: New test.
  5567. * testsuite/20_util/to_chars/compare.cc: New test.
  5568. 2020-04-07 Jonathan Wakely <jwakely@redhat.com>
  5569. PR libstdc++/94520
  5570. * include/std/charconv (__integer_to_chars_result_type)
  5571. (__integer_from_chars_result_type): Use __or_ instead of __or_v_ to
  5572. allow use in C++14.
  5573. * testsuite/20_util/from_chars/1.cc: Run test as C++14 and replace
  5574. use of std::string_view with std::string.
  5575. * testsuite/20_util/from_chars/2.cc: Likewise.
  5576. * testsuite/20_util/to_chars/1.cc: Likewise.
  5577. * testsuite/20_util/to_chars/2.cc: Likewise.
  5578. 2020-04-06 Jonathan Wakely <jwakely@redhat.com>
  5579. PR libstdc++/94498
  5580. * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Make it
  5581. usable in constant expressions for C++20.
  5582. (__gnu_cxx::char_traits::copy, __gnu_cxx::char_traits::assign): Add
  5583. _GLIBCXX20_CONSTEXPR.
  5584. (std::char_traits<char>, std::char_traits<wchar_t>)
  5585. (std::char_traits<char8_t>): Make move, copy and assign usable in
  5586. constant expressions for C++20.
  5587. (std::char_traits<char16_t>, std::char_traits<char32_t>): Make move
  5588. and copy usable in constant expressions for C++20.
  5589. * include/std/string_view (basic_string_view::copy): Add
  5590. _GLIBCXX20_CONSTEXPR.
  5591. * testsuite/21_strings/basic_string_view/operations/copy/char/
  5592. constexpr.cc: New test.
  5593. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/
  5594. constexpr.cc: New test.
  5595. 2020-04-05 Gerald Pfeifer <gerald@pfeifer.com>
  5596. * doc/xml/manual/appendix_contributing.xml: Refer to Git
  5597. documentation instead of Subversion. Switch to https.
  5598. * doc/html/manual/appendix_contributing.html: Regenerate.
  5599. 2020-04-03 Jonathan Wakely <jwakely@redhat.com>
  5600. PR libstdc++/93960
  5601. * include/bits/ptr_traits.h (__to_address): Add special case for debug
  5602. iterators, to avoid dereferenceable check.
  5603. * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
  5604. * testsuite/20_util/to_address/debug.cc: New test.
  5605. 2020-04-01 Andrea Corallo <andrea.corallo@arm.com>
  5606. * testsuite/experimental/net/execution_context/use_service.cc:
  5607. Require pthread and gthreads.
  5608. 2020-04-01 Gerald Pfeifer <gerald@pfeifer.com>
  5609. * doc/xml/manual/appendix_free.xml: Move "free books" list from
  5610. fsf.org to gnu.org.
  5611. * doc/html/manual/appendix_free.html: Regenerate.
  5612. 2020-03-31 Ville Voutilainen <ville.voutilainen@gmail.com>
  5613. Library-side tests for parenthesized aggregate init
  5614. PR c++/92878
  5615. PR c++/92947
  5616. * testsuite/20_util/allocator_traits/members/92878_92947.cc: New.
  5617. * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
  5618. * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
  5619. * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
  5620. * testsuite/20_util/optional/assignment/92878_92947.cc: Likewise.
  5621. * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
  5622. * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
  5623. * testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise.
  5624. * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
  5625. Likewise.
  5626. * testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise.
  5627. * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
  5628. * testsuite/20_util/variant/92878_92947.cc: Likewise.
  5629. * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
  5630. Likewise.
  5631. * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
  5632. Likewise.
  5633. * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
  5634. Likewise.
  5635. * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
  5636. Likewise.
  5637. * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
  5638. Likewise.
  5639. * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
  5640. Likewise.
  5641. * testsuite/23_containers/priority_queue/92878_92947.cc: Likewise.
  5642. * testsuite/23_containers/queue/92878_92947.cc: Likewise.
  5643. * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
  5644. Likewise.
  5645. * testsuite/23_containers/stack/92878_92947.cc: Likewise.
  5646. * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
  5647. Likewise.
  5648. * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
  5649. Likewise.
  5650. * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
  5651. Likewise.
  5652. * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
  5653. Likewise.
  5654. * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
  5655. Likewise.
  5656. 2020-03-28 Jonathan Wakely <jwakely@redhat.com>
  5657. * testsuite/20_util/is_constructible/value-2.cc: Fix test to account
  5658. for changes due to parenthesized aggregate-initialization in C++20.
  5659. * testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash
  5660. with std::chrono::sys_time in C++20.
  5661. * include/bits/stl_iterator.h (reverse_iterator): Use requires-clause
  5662. to constrain C++20 versions of comparison operators. Fix backwards
  5663. logic of relational operators.
  5664. (move_iterator): Use requires-clause to constrain comparison operators
  5665. in C++20. Do not declare non-standard same-type overloads for C++20.
  5666. * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: Check result
  5667. of comparisons and check using greedy_ops type.
  5668. * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: Likewise.
  5669. * testsuite/24_iterators/move_iterator/greedy_ops.cc: Remove redundant
  5670. main function from compile-only test.
  5671. * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise.
  5672. 2020-03-27 Jonathan Wakely <jwakely@redhat.com>
  5673. * include/bits/range_cmp.h (__cpp_lib_ranges): Define.
  5674. * include/bits/stl_iterator.h: Check value of __cpp_concepts so that
  5675. C++20 concepts are required.
  5676. * include/bits/stl_iterator_base_types.h: Likewise.
  5677. * include/std/concepts: Likewise.
  5678. * include/std/version: Likewise.
  5679. * testsuite/std/ranges/headers/ranges/synopsis.cc: Check feature test
  5680. macro.
  5681. * include/bits/stl_iterator.h (reverse_iterator::iterator_concept)
  5682. (reverse_iterator::iterator_category): Define for C++20.
  5683. (reverse_iterator): Define comparison operators correctly for C++20.
  5684. (__normal_iterator): Add constraints to comparison operators for C++20.
  5685. (move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new
  5686. overload for input iterators.
  5687. (move_iterator): Add constraints to comparison operators for C++20.
  5688. Define operator<=> for C++20.
  5689. * testsuite/24_iterators/move_iterator/input_iterator.cc: New test.
  5690. * testsuite/24_iterators/move_iterator/move_only.cc: New test.
  5691. * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test.
  5692. * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test.
  5693. * include/bits/iterator_concepts.h (__detail::__decay_copy)
  5694. (__detail::__member_begin, __detail::__adl_begin): Move here from
  5695. <bits/range_access.h>.
  5696. (__detail::__ranges_begin, __detail::__range_iter_t): Define.
  5697. * bits/range_access.h (__cust_access::__decay_copy)
  5698. (__cust_access::__member_begin, __cust_access::__adl_begin): Move to
  5699. <bits/iterator_concepts.h>.
  5700. (ranges::iterator_t): Use __detail::__range_iter_t.
  5701. * include/bits/stl_iterator.h (back_insert_iterator): Simplify
  5702. conditional compilation. Add _GLIBCXX20_CONSTEXPR to all members.
  5703. (front_insert_iterator): Likewise.
  5704. (insert_iterator): Implement changes from P0896R4 for C++20.
  5705. * testsuite/24_iterators/back_insert_iterator/constexpr.cc: New test.
  5706. * testsuite/24_iterators/front_insert_iterator/constexpr.cc: New test.
  5707. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Adjust
  5708. for inclusion in synopsis_c++20.cc which expects different signatures
  5709. for some function templates.
  5710. * testsuite/24_iterators/insert_iterator/constexpr.cc: New test.
  5711. * include/std/type_traits (__is_array_convertible): Move definition
  5712. to immediately after is_convertible.
  5713. 2020-03-26 Jonathan Wakely <jwakely@redhat.com>
  5714. * include/std/chrono (chrono::days, chrono::weeks, chrono::years)
  5715. (chrono::months, chrono::sys_days, chrono::local_t)
  5716. (chrono::local_time, chrono::local_seconds, chrono::local_days):
  5717. Define for C++20.
  5718. (chrono::time_point): Add missing static assert.
  5719. * testsuite/20_util/time_point/requirements/duration_neg.cc: New test.
  5720. * testsuite/std/time/clock/file/overview.cc: New test.
  5721. * testsuite/std/time/clock/file/members.cc: New test.
  5722. * testsuite/std/time/syn_c++20.cc: New test.
  5723. 2020-03-25 Mike Crowe <mac@mcrowe.com>
  5724. * testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New
  5725. test.
  5726. * testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc: New
  5727. test.
  5728. 2020-03-25 Jonathan Wakely <jwakely@redhat.com>
  5729. * include/bits/fs_fwd.h (filesystem::__file_clock): Move to ...
  5730. * include/std/chrono (filesystem::__file_clock): Here.
  5731. (filesystem::__file_clock::from_sys, filesystem::__file_clock::to_sys):
  5732. Define public member functions for C++20.
  5733. (is_clock, is_clock_v): Define traits for C++20.
  5734. * include/std/condition_variable (condition_variable::wait_until): Add
  5735. check for valid clock.
  5736. * include/std/future (_State_baseV2::wait_until): Likewise.
  5737. * include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Likewise.
  5738. * include/std/shared_mutex (shared_timed_mutex::try_lock_shared_until):
  5739. Likewise.
  5740. * include/std/thread (this_thread::sleep_until): Likewise.
  5741. * testsuite/30_threads/condition_variable/members/2.cc: Qualify
  5742. slow_clock with new namespace.
  5743. * testsuite/30_threads/condition_variable/members/clock_neg.cc: New
  5744. test.
  5745. * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
  5746. New test.
  5747. * testsuite/30_threads/future/members/clock_neg.cc: New test.
  5748. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc:
  5749. Qualify slow_clock with new namespace.
  5750. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/
  5751. clock_neg.cc: New test.
  5752. * testsuite/30_threads/shared_future/members/clock_neg.cc: New
  5753. test.
  5754. * testsuite/30_threads/shared_lock/locking/clock_neg.cc: New test.
  5755. * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
  5756. New test.
  5757. * testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Qualify
  5758. slow_clock with new namespace.
  5759. * testsuite/30_threads/timed_mutex/try_lock_until/4.cc: Likewise.
  5760. * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: New
  5761. test.
  5762. * testsuite/30_threads/unique_lock/locking/clock_neg.cc: New test.
  5763. * testsuite/std/time/traits/is_clock.cc: New test.
  5764. * testsuite/util/slow_clock.h (slow_clock): Move to __gnu_test
  5765. namespace.
  5766. 2020-03-21 Jonathan Wakely <jwakely@redhat.com>
  5767. PR libstdc++/93245
  5768. * include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()):
  5769. * testsuite/experimental/filesystem/path/generic/generic_string.cc:
  5770. Improve test coverage.
  5771. PR libstdc++/94242
  5772. * include/bits/fs_path.h (path::_S_str_convert): Replace first
  5773. parameter with basic_string_view so that strings with different
  5774. allocators can be accepted.
  5775. (path::generic_string<C,T,A>()): Use basic_string object that uses the
  5776. right allocator type.
  5777. * testsuite/27_io/filesystem/path/generic/94242.cc: New test.
  5778. * testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve
  5779. test coverage.
  5780. 2020-03-18 Jonathan Wakely <jwakely@redhat.com>
  5781. PR libstdc++/94033
  5782. * include/std/type_traits (__is_nt_default_constructible_atom): Remove.
  5783. (__is_nt_default_constructible_impl): Remove.
  5784. (__is_nothrow_default_constructible_impl): Remove.
  5785. (__is_nt_constructible_impl): Add bool template parameter. Adjust
  5786. partial specializations.
  5787. (__is_nothrow_constructible_impl): Replace class template with alias
  5788. template.
  5789. (is_nothrow_default_constructible): Derive from alias template
  5790. __is_nothrow_constructible_impl instead of
  5791. __is_nothrow_default_constructible_impl.
  5792. * testsuite/20_util/is_nothrow_constructible/94003.cc: New test.
  5793. * include/std/stop_token (stop_token::_Stop_state_ref): Define
  5794. comparison operators explicitly if the compiler won't synthesize them.
  5795. * include/bits/stl_algobase.h (__lexicographical_compare_aux): Check
  5796. __cpp_lib_concepts before using iter_reference_t.
  5797. * include/bits/stream_iterator.h (istream_iterator): Check
  5798. __cpp_lib_concepts before using default_sentinel_t.
  5799. * include/bits/streambuf_iterator.h (istreambuf_iterator): Likewise.
  5800. PR libstdc++/94203
  5801. * include/experimental/executor (executor::executor(Executor)): Call
  5802. make_shared directly instead of _M_create. Create _Tgt1 object.
  5803. (executor::executor(allocator_arg_t, const ProtoAlloc&, Executor)):
  5804. Call allocate_shared directly instead of _M_create. Create _Tgt2
  5805. object.
  5806. (executor::target_type): Add cast needed for new _Tgt interface.
  5807. (executor::target): Define when RTTI is disabled. Use _Tgt::_M_func.
  5808. (executor::_Tgt): Define the same interface whether RTTI is enabled or
  5809. not.
  5810. (executor::_Tgt::target_type, executor::_Tgt::target): Do not use
  5811. std::type_info in the interface.
  5812. (executor::_Tgt::_M_func): Add data member.
  5813. (executor::_TgtImpl): Replace with _Tgt1 and _Tgt2 class templates.
  5814. (executor::_Tgt1::_S_func): Define function to access target without
  5815. depending on RTTI.
  5816. (executor::_M_create): Remove.
  5817. (operator==, operator!=): Simplify comparisons for executor.
  5818. * include/experimental/socket (is_error_code_enum<socket_errc>):
  5819. Define specialization before use.
  5820. * testsuite/experimental/net/executor/1.cc: New test.
  5821. 2020-03-16 Jonathan Wakely <jwakely@redhat.com>
  5822. PR libstdc++/94199
  5823. * include/experimental/executor (service_already_exists): Add default
  5824. constructor. Declare make_service to be a friend.
  5825. * testsuite/experimental/net/execution_context/make_service.cc: New
  5826. test.
  5827. 2020-03-12 Jonathan Wakely <jwakely@redhat.com>
  5828. * testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Do not pass
  5829. a null pointer to functions with nonnull(1) attribute.
  5830. 2020-03-11 Patrick Palka <ppalka@redhat.com>
  5831. * include/std/ranges (split_view::_OuterIter::_OuterIter): Typo fix,
  5832. 'address' -> 'std::__addressof'.
  5833. * testsuite/std/ranges/adaptors/split.cc: Test taking the split_view of
  5834. a non-forward input_range.
  5835. * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): Make
  5836. default constructor protected instead of deleted, like with
  5837. input_iterator_wrapper.
  5838. (test_range::iterator): Add comment explaining that this type is used
  5839. only when the underlying wrapper is input_iterator_wrapper or
  5840. output_iterator_wrapper. Remove delegating defaulted constructor so
  5841. that the inherited default constructor is used instead.
  5842. LWG 3286 ranges::size is not required to be valid after a call to
  5843. ranges::begin on an input range
  5844. * include/std/ranges (subrange::subrange): Split single-argument
  5845. constructor into two, one constrained by _S_store_size and another by
  5846. !_S_store_size.
  5847. (take_view::begin): Call size() before calling ranges::begin(_M_base).
  5848. * testsuite/std/ranges/adaptors/lwg3286.cc: New test.
  5849. * testsuite/std/ranges/subrange/lwg3286.cc: New test.
  5850. 2020-03-10 Jonathan Wakely <jwakely@redhat.com>
  5851. * include/std/ranges (split_view::_OuterIter::__at_end): Use __current
  5852. instead of _M_current.
  5853. (split_view::_OuterIter::operator++): Likewise.
  5854. * include/std/ranges (transform_view::_Iterator::__iter_move): Remove.
  5855. (transform_view::_Iterator::operator*): Add noexcept-specifier.
  5856. (transform_view::_Iterator::iter_move): Inline __iter_move body here.
  5857. (split_view::_OuterIter::__current): Add noexcept.
  5858. (split_view::_InnerIter::__iter_swap): Remove.
  5859. (split_view::_InnerIter::__iter_move): Remove.
  5860. (split_view::_InnerIter::_M_i_current): New accessors.
  5861. (split_view::_InnerIter::__at_end): Use _M_i_current().
  5862. (split_view::_InnerIter::operator*): Likewise.
  5863. (split_view::_InnerIter::operator++): Likewise.
  5864. (iter_move(const _InnerIter&)): Likewise.
  5865. (iter_swap(const _InnerIter&, const _InnerIter&)): Likewise.
  5866. * testsuite/std/ranges/adaptors/split.cc: Check noexcept-specifier
  5867. for iter_move and iter_swap on split_view's inner iterator.
  5868. PR c++/94117
  5869. * include/std/ranges (ranges::transform_view::_Iterator::iter_move):
  5870. Change expression in noexcept-specifier to match function body.
  5871. * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Add
  5872. comment explaining multiple dg-do directives.
  5873. * testsuite/24_iterators/ostream_iterator/1.cc: Fix do-do directive
  5874. so test is run as well as compiled.
  5875. 2020-03-09 Jonathan Wakely <jwakely@redhat.com>
  5876. PR libstdc++/94063
  5877. * src/c++17/fs_path.cc (path::operator+=(const path&)): Add kluge to
  5878. handle concatenations that change the type of the first component.
  5879. (path::operator+=(basic_string_view<value_type>)): Likewise.
  5880. * testsuite/27_io/filesystem/path/concat/94063.cc: New test.
  5881. 2020-03-06 Patrick Palka <ppalka@redhat.com>
  5882. * include/std/ranges (join_view::_Sentinel<_Const>): Befriend
  5883. join_view::_Sentinel<!_Const>.
  5884. * testsuite/std/ranges/adaptors/join.cc: Augment test.
  5885. PR libstdc++/93978
  5886. * include/bits/range_access.h (__cust_access::_Empty::operator()):
  5887. Declare return type to be bool instead of auto.
  5888. * testsuite/std/ranges/adaptors/93978.cc: New test.
  5889. 2020-03-06 Jonathan Wakely <jwakely@redhat.com>
  5890. PR libstdc++/94069
  5891. * include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
  5892. (__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect
  5893. second argument to __glibcxx_rwlock_init.
  5894. * testsuite/30_threads/shared_timed_mutex/94069.cc: New test.
  5895. PR libstdc++/93244
  5896. * testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust
  5897. test to not fail due to PR 94063.
  5898. * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
  5899. * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
  5900. 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
  5901. * src/c++11/system_error.cc: Omit the ENOTSUP case statement if it
  5902. would match ENOSYS.
  5903. 2020-03-05 Jonathan Wakely <jwakely@redhat.com>
  5904. * testsuite/27_io/filesystem/operations/all.cc: Mark unused variable.
  5905. * testsuite/27_io/filesystem/operations/copy.cc: Fix typo.
  5906. * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
  5907. * testsuite/27_io/filesystem/operations/file_size.cc: Use correct type
  5908. for return value, and in comparison.
  5909. * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
  5910. PR libstdc++/94051
  5911. * include/std/string_view: Include <bits/ostream_insert.h>.
  5912. * testsuite/21_strings/basic_string_view/inserters/94051.cc: New test.
  5913. 2020-03-04 Jonathan Wakely <jwakely@redhat.com>
  5914. * include/bits/cpp_type_traits.h (__memcpyable): Fix comment.
  5915. 2020-03-04 Patrick Palka <ppalka@redhat.com>
  5916. PR libstdc++/94017
  5917. * include/bits/ranges_algobase.h (__fill_n_fn::operator()): Refine
  5918. condition for when to use memset, making sure to additionally check that
  5919. the output pointer's value type is a non-volatile byte type. Instead of
  5920. requiring that the fill type is a byte type, just require that it's an
  5921. integral type.
  5922. * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
  5923. New test.
  5924. * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
  5925. New test.
  5926. * testsuite/25_algorithms/fill/94013.cc: Uncomment part of test that was
  5927. blocked by PR 94017.
  5928. * testsuite/25_algorithms/fill/94017.cc: New test.
  5929. * testsuite/25_algorithms/fill_n/94017.cc: New test.
  5930. LWG 3355 The memory algorithms should support move-only input iterators
  5931. introduced by P1207
  5932. * include/bits/ranges_uninitialized.h
  5933. (__uninitialized_copy_fn::operator()): Use std::move to avoid attempting
  5934. to copy __ifirst, which could be a move-only input iterator. Use
  5935. operator- instead of ranges::distance to compute distance from a sized
  5936. sentinel.
  5937. (__uninitialized_copy_n_fn::operator()): Likewise.
  5938. (__uninitialized_move_fn::operator()): Likewise.
  5939. (__uninitialized_move_n_fn::operator()): Likewise.
  5940. (__uninitialized_destroy_fn::operator()): Use std::move to avoid
  5941. attempting to copy __first.
  5942. (__uninitialized_destroy_n_fn::operator()): Likewise.
  5943. * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
  5944. Augment test.
  5945. * .../specialized_algorithms/uninitialized_copy/constrained.cc:
  5946. Likewise.
  5947. * .../specialized_algorithms/uninitialized_move/constrained.cc:
  5948. Likewise.
  5949. * testsuite/util/testsuite_iterators.h (test_range::get_iterator): Make
  5950. protected instead of private.
  5951. (test_sized_range_sized_sent): New.
  5952. * testsuite/util/testsuite_iterators.h (input_iterator_wrapper_nocopy):
  5953. New testsuite iterator.
  5954. * testsuite/24_iterators/counted_iterator/lwg3389.cc: use it.
  5955. * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
  5956. * include/bits/ranges_uninitialized.h
  5957. (uninitialized_copy_fn::operator()): Pass a reference type as the first
  5958. argument to is_nothrow_assignable_v.
  5959. (uninitialized_copy_fn::operator()): Likewise.
  5960. (uninitialized_move_fn::operator()): Likewise. Return an in_out_result
  5961. with the input iterator stripped of its move_iterator.
  5962. (uninitialized_move_n_fn::operator()): Likewise.
  5963. (uninitialized_fill_fn::operator()): Pass a reference type as the first
  5964. argument to is_nothrow_assignable_v.
  5965. (uninitialized_fill_n_fn::operator()): Likewise.
  5966. 2020-03-03 Jonathan Wakely <jwakely@redhat.com>
  5967. PR libstdc++/94013
  5968. * include/bits/cpp_type_traits.h (__memcpyable, __memcmpable): New
  5969. traits to control when to use memmove and memcmp optimizations.
  5970. (__is_nonvolatile_trivially_copyable): New helper trait.
  5971. * include/bits/ranges_algo.h (__lexicographical_compare_fn): Do not
  5972. use memcmp optimization with volatile data.
  5973. * include/bits/ranges_algobase.h (__equal_fn): Use __memcmpable.
  5974. (__copy_or_move, __copy_or_move_backward): Use __memcpyable.
  5975. * include/bits/stl_algobase.h (__copy_move_a2): Use __memcpyable.
  5976. (__copy_move_backward_a2): Likewise.
  5977. (__equal_aux1): Use __memcmpable.
  5978. (__lexicographical_compare_aux): Do not use memcmp optimization with
  5979. volatile data.
  5980. * testsuite/25_algorithms/copy/94013.cc: New test.
  5981. * testsuite/25_algorithms/copy_backward/94013.cc: New test.
  5982. * testsuite/25_algorithms/equal/94013.cc: New test.
  5983. * testsuite/25_algorithms/fill/94013.cc: New test.
  5984. * testsuite/25_algorithms/lexicographical_compare/94013.cc: New test.
  5985. * testsuite/25_algorithms/move/94013.cc: New test.
  5986. * testsuite/25_algorithms/move_backward/94013.cc: New test.
  5987. * include/bits/stl_algobase.h (lexicographical_compare_three_way):
  5988. Avoid redundant iterator comparisons (LWG 3410).
  5989. 2020-03-02 Jonathan Wakely <jwakely@redhat.com>
  5990. PR libstdc++/93972
  5991. * include/bits/stl_algobase.h (__memcmp): Allow pointer types to
  5992. differ.
  5993. * testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test.
  5994. * include/std/ranges (__detail::__maybe_empty_t): Rename to
  5995. __maybe_present_t.
  5996. (__adaptor::_RangeAdaptor, join_view, split_view): Use new name.
  5997. * include/bits/ranges_algo.h (shift_right): Add 'typename' to
  5998. dependent type.
  5999. 2020-03-01 H.J. Lu <hongjiu.lu@intel.com>
  6000. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
  6001. 2020-02-29 John David Anglin <danglin@gcc.gnu.org>
  6002. * testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*.
  6003. * testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
  6004. * testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
  6005. * testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
  6006. * testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
  6007. * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
  6008. Add libatomic option.
  6009. * testsuite/30_threads/jthread/jthread.cc: Likewise.
  6010. 2020-02-29 François Dumont <fdumont@gcc.gnu.org>
  6011. * include/bits/stl_algo.h
  6012. (__find_if, __count_if, __is_permutation, std::is_permutation): Move...
  6013. * include/bits/stl_algobase.h: ...here.
  6014. * include/bits/hashtable_policy.h: Remove <bits/stl_algo.h> include.
  6015. 2020-02-29 John David Anglin <danglin@gcc.gnu.org>
  6016. * testsuite/30_threads/stop_token/stop_callback.cc: Add libatomic
  6017. option.
  6018. * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
  6019. Likewise.
  6020. * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: Likewise.
  6021. * testsuite/30_threads/stop_token/stop_callback/destroy.cc: Likewise.
  6022. * testsuite/30_threads/stop_token/stop_callback/invoke.cc: Likewise.
  6023. * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
  6024. * testsuite/30_threads/stop_token/stop_source/assign.cc: Likewise.
  6025. * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
  6026. * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
  6027. Likewise.
  6028. PR libstdc++/92906
  6029. * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
  6030. 2020-02-28 Patrick Palka <ppalka@redhat.com>
  6031. PR libstdc++/93972
  6032. * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
  6033. Fix condition for when to use memcmp, making it consistent with the
  6034. corresponding condition used in std::lexicographical_compare.
  6035. * testsuite/25_algorithms/lexicographical_compare/93972.cc: New test.
  6036. * testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for
  6037. functions introduced in C++11, C++17 and C++2a. Add 'constexpr' to
  6038. existing signatures for C++2a.
  6039. 2020-02-28 Jonathan Wakely <jwakely@redhat.com>
  6040. * testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run
  6041. test instead of just compiling it.
  6042. 2020-02-28 Patrick Palka <ppalka@redhat.com>
  6043. * include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false
  6044. whenever the underlying range models common_range.
  6045. * include/std/ranges (__detail::_CachedPosition): New struct.
  6046. (views::filter_view::_S_needs_cached_begin): New member variable.
  6047. (views::filter_view::_M_cached_begin): New member variable.
  6048. (views::filter_view::begin): Use _M_cached_begin to cache its
  6049. result.
  6050. (views::drop_view::_S_needs_cached_begin): New static member variable.
  6051. (views::drop_view::_M_cached_begin): New member variable.
  6052. (views::drop_view::begin): Use _M_cached_begin to cache its result
  6053. when _S_needs_cached_begin.
  6054. (views::drop_while_view::_M_cached_begin): New member variable.
  6055. (views::drop_while_view::begin): Use _M_cached_begin to cache its
  6056. result.
  6057. (views::reverse_view::_S_needs_cached_begin): New static member
  6058. variable.
  6059. (views::reverse_view::_M_cached_begin): New member variable.
  6060. (views::reverse_view::begin): Use _M_cached_begin to cache its result
  6061. when _S_needs_cached_begin.
  6062. * testsuite/std/ranges/adaptors/drop.cc: Augment test to check that
  6063. drop_view::begin caches its result.
  6064. * testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check
  6065. that drop_while_view::begin caches its result.
  6066. * testsuite/std/ranges/adaptors/filter.cc: Augment test to check that
  6067. filter_view::begin caches its result.
  6068. * testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that
  6069. reverse_view::begin caches its result.
  6070. 2020-02-28 Jonathan Wakely <jwakely@redhat.com>
  6071. * testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
  6072. filesystems that silently truncate timestamps.
  6073. * testsuite/experimental/filesystem/operations/last_write_time.cc:
  6074. Likewise.
  6075. * testsuite/21_strings/basic_string/cons/char/1.cc: Disable
  6076. -Wstringop-overflow warnings.
  6077. 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
  6078. * testsuite/lib/libstdc++.exp (v3_target_compile): Add
  6079. -fdiagnostics-urls=never to options.
  6080. 2020-02-27 Patrick Palka <ppalka@redhat.com>
  6081. * include/std/ranges (transform_view::_Iterator<_Const>): Befriend
  6082. _Iterator<!_Const>.
  6083. (transform_view::_Sentinel<_Const>): Befriend _Sentinel<!_Const>.
  6084. (take_view::_Sentinel<_Const>): Likewise.
  6085. (take_while_view::_Sentinel<_Const>): Likewise.
  6086. (split_view::_OuterIter<_Const>): Befriend _OuterIter<!_Const>.
  6087. * testsuite/std/ranges/adaptors/split.cc: Augment test.
  6088. * testsuite/std/ranges/adaptors/take.cc: Augment test.
  6089. * testsuite/std/ranges/adaptors/take_while.cc: Augment test.
  6090. * testsuite/std/ranges/adaptors/transform.cc: Augment test.
  6091. * testsuite/25_algorithms/copy/constrained.cc: Don't assume that the
  6092. base() of a vector<>::iterator is a pointer.
  6093. * testsuite/25_algorithms/copy_backward/constrained.cc: Likewise.
  6094. * testsuite/25_algorithms/move/constrained.cc: Likewise.
  6095. * testsuite/25_algorithms/move_backward/constrained.cc: Likewise.
  6096. * testsuite/25_algorithms/inplace_merge/constrained.cc: Use foo.data()
  6097. instead of &foo[0].
  6098. * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
  6099. * testsuite/25_algorithms/partial_sort_copy/constrained.cc: Likewise.
  6100. * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
  6101. * testsuite/25_algorithms/sort/constrained.cc: Likewise.
  6102. * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
  6103. 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
  6104. * include/debug/array (operator<=>): Define for C++20.
  6105. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
  6106. Adjust dg-error line numbers.
  6107. * testsuite/23_containers/array/tuple_interface/
  6108. tuple_element_debug_neg.cc: Likewise.
  6109. * testsuite/23_containers/span/back_assert_neg.cc: Add #undef before
  6110. defining _GLIBCXX_ASSERTIONS.
  6111. * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
  6112. * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
  6113. * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
  6114. * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
  6115. * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
  6116. * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
  6117. * testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise.
  6118. * testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise.
  6119. * testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise.
  6120. * testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise.
  6121. * testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise.
  6122. * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
  6123. * include/debug/string (__gnu_debug::basic_string::insert): Fix for
  6124. C++98 where the member function of the base class returns void.
  6125. * testsuite/util/testsuite_iterators.h (forward_iterator_wrapper): Add
  6126. equality comparisons that support value-initialized iterators.
  6127. * include/bits/boost_concept_check.h (__function_requires): Add
  6128. _GLIBCXX14_CONSTEXPR.
  6129. * testsuite/25_algorithms/min/concept_checks.cc: New test.
  6130. 2020-02-26 Patrick Palka <ppalka@redhat.com>
  6131. PR libstdc++/93936
  6132. * include/std/ranges (split_view::_InnerIter::operator==): Compare
  6133. the operands' _M_i rather than their _M_i.current().
  6134. * testsuite/std/ranges/adaptors/split.cc: Augment test.
  6135. P1645R1 constexpr for <numeric> algorithms
  6136. * include/bits/stl_numeric.h (iota, accumulate, inner_product,
  6137. partial_sum, adjacent_difference): Make conditionally constexpr for
  6138. C++20.
  6139. * include/std/numeric (__cpp_lib_constexpr_numeric): Define this feature
  6140. test macro.
  6141. (reduce, transform_reduce, exclusive_scan, inclusive_scan,
  6142. transform_exclusive_scan, transform_inclusive_scan): Make conditionally
  6143. constexpr for C++20.
  6144. * include/std/version (__cpp_lib_constexpr_numeric): Define.
  6145. * testsuite/26_numerics/accumulate/constexpr.cc: New test.
  6146. * testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise.
  6147. * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
  6148. * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
  6149. * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
  6150. * testsuite/26_numerics/iota/constexpr.cc: Likewise.
  6151. * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
  6152. * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
  6153. * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: Likewise.
  6154. * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: Likewise.
  6155. * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
  6156. 2020-02-26 Jonathan Wakely <jwakely@redhat.com>
  6157. * include/bits/ranges_algo.h (__lexicographical_compare_fn): Declare
  6158. variables in smaller scope and avoid calling ranges::distance when we
  6159. know they are pointers. Remove statically-unreachable use of
  6160. __builtin_unreachable().
  6161. * include/bits/stl_algobase.h (__lexicographical_compare::__lc):
  6162. Define inline.
  6163. * include/std/ranges (__detail::__maybe_empty_t): Define new helper
  6164. alias.
  6165. (__detail::__maybe_const_t): Likewise.
  6166. (__adaptor::_RangeAdaptor): Use __maybe_empty_t.
  6167. (transform_view, take_view, take_while_view, elements_view): Use
  6168. __maybe_const_t.
  6169. (join_view, split_view): Use both.
  6170. 2020-02-25 Patrick Palka <ppalka@redhat.com>
  6171. LWG 3397 basic_istream_view::iterator should not provide
  6172. iterator_category
  6173. * include/std/ranges (basic_istream_view:_Iterator::iterator_category):
  6174. Rename to ...
  6175. (basic_istream_view:_Iterator::iterator_concept): ... this.
  6176. * testsuite/std/ranges/istream_view.cc: Augment test.
  6177. LWG 3325 Constrain return type of transformation function for
  6178. transform_view
  6179. * include/std/ranges (transform_view): Constrain the return type of the
  6180. transformation function as per LWG 3325.
  6181. * testsuite/std/ranges/adaptors/lwg3325_neg.cc: New test.
  6182. LWG 3313 join_view::_Iterator::operator-- is incorrectly constrained
  6183. * include/std/ranges (join_view::_Iterator::operator--): Require that
  6184. range_reference_t<_Base> models common_range.
  6185. * testsuite/std/ranges/adaptors/lwg3313_neg.cc: New test.
  6186. LWG 3301 transform_view::_Iterator has incorrect iterator_category
  6187. * include/std/ranges (transform_view::_Iterator::_S_iter_cat): Adjust
  6188. determination of iterator_category as per LWG 3301.
  6189. * testsuite/std/ranges/adaptors/transform.cc: Augment test.
  6190. LWG 3292 iota_view is under-constrained
  6191. * include/std/ranges (iota_view): Require that _Winc models semiregular
  6192. as per LWG 3292.
  6193. * testsuite/std/ranges/iota/lwg3292_neg.cc: New test.
  6194. 2020-02-25 Jonathan Wakely <jwakely@redhat.com>
  6195. * include/bits/ranges_algobase.h (__copy_or_move): Do not use memmove
  6196. during constant evaluation. Call __builtin_memmove directly instead of
  6197. __memmove.
  6198. (__copy_or_move_backward): Likewise.
  6199. * include/bits/stl_algobase.h (__memmove): Remove.
  6200. (__copy_move<M, true, random_access_iterator_tag>::__copy_m)
  6201. (__copy_move_backward<M, true, random_access_iterator_tag>::__copy_m):
  6202. Use __builtin_memmove directly instead of __memmove.
  6203. (__copy_move_a2): Do not use memmove during constant evaluation.
  6204. (__copy_move_backward_a2): Use _IsMove constant to select correct
  6205. __copy_move_backward specialization.
  6206. * testsuite/25_algorithms/copy_backward/constexpr.cc: Check for copies
  6207. begin turned into moves during constant evaluation.
  6208. * testsuite/25_algorithms/move_backward/93872.cc: Add test left out of
  6209. previous commit.
  6210. PR libstdc++/93872
  6211. * include/bits/stl_algobase.h (__memmove): Cast away const before
  6212. doing move assignment.
  6213. * testsuite/25_algorithms/move/93872.cc: New test.
  6214. * testsuite/25_algorithms/move_backward/93872.cc: New test.
  6215. 2020-02-24 Patrick Palka <ppalka@redhat.com>
  6216. PR libstdc++/93884
  6217. * include/bits/ranges_algobase.h (__copy_or_move,
  6218. __copy_or_move_backward): Don't inspect the iter_value_t of the output
  6219. iterator, instead inspect its iterator_traits directly.
  6220. * include/bits/stl_iterator.h (back_insert_iterator::container):
  6221. Conditionally initialize.
  6222. (back_insert_iterator::difference_type): Conditionally define.
  6223. (back_insert_iterator::back_insert_iterator): Conditionally define this
  6224. default constructor.
  6225. (front_insert_iterator::container): Conditionally initialize.
  6226. (front_insert_iterator::difference_type): Conditionally define.
  6227. (front_insert_iterator::front_insert_iterator): Conditionally define
  6228. this default constructor.
  6229. * 24_iterators/back_insert_iterator/pr93884.cc: New test.
  6230. * 24_iterators/front_insert_iterator/pr93884.cc: New test.
  6231. P0769R2 Add shift to <algorithm>
  6232. * include/bits/ranges_algo.h (shift_left, shift_right): New.
  6233. * testsuite/25_algorithms/shift_left/1.cc: New test.
  6234. * testsuite/25_algorithms/shift_right/1.cc: New test.
  6235. 2020-02-24 Jonathan Wakely <jwakely@redhat.com>
  6236. * include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
  6237. Make noexcept-specifier conditional.
  6238. * testsuite/24_iterators/istream_iterator/cons/sentinel.cc: Check
  6239. noexcept-specifier.
  6240. * include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)):
  6241. Add constructor.
  6242. (operator==(istream_iterator, default_sentinel_t)): Add operator.
  6243. (ostream_iterator::difference_type): Define to ptrdiff_t for C++20.
  6244. * include/bits/streambuf_iterator.h
  6245. (istreambuf_iterator(default_sentinel_t)): Add constructor.
  6246. (operator==(istreambuf_iterator, default_sentinel_t)): Add operator.
  6247. * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
  6248. New test.
  6249. * testsuite/24_iterators/istream_iterator/sentinel.cc: New test.
  6250. * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
  6251. New test.
  6252. * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
  6253. * include/std/ranges (__deep_const_range, __enable_view_impl): Remove.
  6254. (ranges::enable_view): Simplify (LWG 3326).
  6255. * include/bits/range_access.h (ranges::enable_view): Declare.
  6256. * include/bits/regex.h (__enable_view_impl): Remove partial
  6257. specialization.
  6258. * include/bits/stl_multiset.h (__enable_view_impl): Likewise.
  6259. * include/bits/stl_set.h (__enable_view_impl): Likewise.
  6260. * include/bits/unordered_set.h (__enable_view_impl): Likewise.
  6261. * include/debug/multiset.h (__enable_view_impl): Likewise.
  6262. * include/debug/set.h (__enable_view_impl): Likewise.
  6263. * include/debug/unordered_set (__enable_view_impl): Likewise.
  6264. * include/experimental/string_view (ranges::enable_view): Define
  6265. partial specialization.
  6266. * include/std/span (ranges::enable_view): Likewise.
  6267. * include/std/string_view (ranges::enable_view): Likewise.
  6268. * testsuite/std/ranges/view.cc: Check satisfaction of updated concept.
  6269. 2020-02-21 Jonathan Wakely <jwakely@redhat.com>
  6270. * include/std/optional (operator<=>(optional<T>, optional<U>))
  6271. (operator<=>(optional<T>, nullopt), operator<=>(optional<T>, U)):
  6272. Define for C++20.
  6273. * include/std/tuple (__tuple_cmp): New helper function for <=>.
  6274. (operator<=>(tuple<T...>, tuple<U>...)): Define for C++20.
  6275. * include/std/variant (operator<=>(variant<T...>, variant<T...>))
  6276. (operator<=>(monostate, monostate)): Define for C++20.
  6277. * testsuite/20_util/optional/relops/three_way.cc: New test.
  6278. * testsuite/20_util/tuple/comparison_operators/three_way.cc: New test.
  6279. * testsuite/20_util/variant/89851.cc: Move to ...
  6280. * testsuite/20_util/variant/relops/89851.cc: ... here.
  6281. * testsuite/20_util/variant/90008.cc: Move to ...
  6282. * testsuite/20_util/variant/relops/90008.cc: ... here.
  6283. * testsuite/20_util/variant/relops/three_way.cc: New test.
  6284. 2020-02-20 Patrick Palka <ppalka@redhat.com>
  6285. * include/std/ranges (views::__adaptor::__maybe_refwrap): New utility
  6286. function.
  6287. (views::__adaptor::_RangeAdaptor::operator()): Add comments. Use
  6288. __maybe_refwrap to capture lvalue references by reference, and then use
  6289. unwrap_reference_t to forward the by-reference captures as references.
  6290. * testsuite/std/ranges/adaptors/split.cc: Augment test.
  6291. * testsuite/std/ranges/adaptors/split_neg.cc: New test.
  6292. * include/std/ranges (iota_view): Forward declare _Sentinel.
  6293. (iota_view::_Iterator): Befriend _Sentinel.
  6294. (iota_view::_Sentinel::_M_equal): New member function.
  6295. (iota_view::_Sentinel::operator==): Use it.
  6296. (views::_Iota::operator()): Forward __f using the correct type.
  6297. * testsuite/std/ranges/access/ssize.cc (test06): Don't call views::iota
  6298. with integers of different signedness, to appease iota_view's deduction
  6299. guide.
  6300. * testsuite/std/ranges/iota/iota_view.cc: Augment test.
  6301. 2020-02-20 Jonathan Wakely <jwakely@redhat.com>
  6302. * include/bits/range_access.h (ranges::begin): Reject array of
  6303. incomplete type.
  6304. (ranges::end, ranges::size): Require arrays to be bounded.
  6305. (ranges::data): Require lvalue or borrowed_range.
  6306. (ranges::iterator_t): Remove constraint.
  6307. * testsuite/std/ranges/access/begin.cc: Do not check array of
  6308. incomplete type.
  6309. * testsuite/std/ranges/access/begin_neg.cc: New test.
  6310. * testsuite/std/ranges/access/end_neg.cc: Adjust expected error.
  6311. * testsuite/std/ranges/access/size_neg.cc: Adjust expected error.
  6312. * testsuite/std/ranges/access/ssize.cc: Do not check array of
  6313. incomplete type.
  6314. * include/std/system_error (error_category::operator<=>)
  6315. (operator<=>(const error_code&, const error_code&))
  6316. (operator<=>(const error_condition&, const error_condition&)): Define
  6317. for C++20.
  6318. * testsuite/19_diagnostics/error_category/operators/less.cc: New test.
  6319. * testsuite/19_diagnostics/error_category/operators/three_way.cc: New
  6320. test.
  6321. * testsuite/19_diagnostics/error_code/operators/equal.cc: Remove
  6322. incorrect comment.
  6323. * testsuite/19_diagnostics/error_code/operators/less.cc: New test.
  6324. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Remove
  6325. incorrect comment.
  6326. * testsuite/19_diagnostics/error_code/operators/three_way.cc: New test.
  6327. * testsuite/19_diagnostics/error_condition/operators/equal.cc: Remove
  6328. incorrect comment.
  6329. * testsuite/19_diagnostics/error_condition/operators/less.cc: New test.
  6330. * testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
  6331. Remove incorrect comment.
  6332. * testsuite/19_diagnostics/error_condition/operators/three_way.cc: New
  6333. test.
  6334. * libsupc++/typeinfo (type_info::operator!=): Remove for C++20.
  6335. * include/std/thread (thread::id::operator<=>): Define for C++20.
  6336. * testsuite/30_threads/thread/id/70294.cc: Do not take addresses of
  6337. functions in namespace std.
  6338. * testsuite/30_threads/thread/id/operators_c++20.cc: New test.
  6339. 2020-02-19 Patrick Palka <ppalka@redhat.com>
  6340. * testsuite/std/ranges/adaptors/split.cc (test03): Don't include the
  6341. null terminator of the underlying string as part of the test_range.
  6342. (main): Call test03.
  6343. 2020-02-19 Jonathan Wakely <jwakely@redhat.com>
  6344. * include/bits/stl_iterator.h (common_iterator): Add copyable<I>
  6345. requirement (LWG 3385).
  6346. * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust
  6347. expected declaration.
  6348. * include/std/ranges (take_while_view, drop_view, drop_while_view)
  6349. (elements_view:_Iterator): Initialize data members (LWG 3364).
  6350. * libsupc++/compare (three_way_comparable): Remove always-false check
  6351. that should have been removed with weak_equality (P1959R0).
  6352. (three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
  6353. * include/std/concepts (__detail::__partially_ordered_with): Move here
  6354. from <compare>.
  6355. (totally_ordered, totally_ordered_with): Use __partially_ordered_with
  6356. to simplify definition (LWG 3331).
  6357. * libsupc++/compare (__detail::__partially_ordered_with): Move to
  6358. <concepts>.
  6359. * include/std/concepts (totally_ordered_with): Remove redundant
  6360. requirement (LWG 3329).
  6361. * include/std/ranges (__detail::__convertible_to_non_slicing): New
  6362. helper concept.
  6363. (__detail::__pair_like_convertible_to): Remove.
  6364. (__detail::__pair_like_convertible_from): Add requirements for
  6365. non-slicing conversions.
  6366. (subrange): Constrain constructors with __convertible_to_non_slicing.
  6367. Remove constructors from pair-like types. Add new deduction guide.
  6368. * testsuite/std/ranges/subrange/lwg3282_neg.cc: New test.
  6369. * include/bits/iterator_concepts.h (iter_move): Add declaration to
  6370. prevent unqualified lookup finding a suitable declaration (LWG 3247).
  6371. * include/std/memory_resource (polymorphic_allocator::allocate)
  6372. (polymorphic_allocator::allocate_object): Change type of exception to
  6373. bad_array_new_length (LWG 3237).
  6374. * testsuite/20_util/polymorphic_allocator/lwg3237.cc: New test.
  6375. * include/std/type_traits (__cpp_lib_unwrap_ref): Define (LWG 3348).
  6376. * include/std/version (__cpp_lib_unwrap_ref): Likewise.
  6377. * testsuite/20_util/unwrap_reference/1.cc: Check macro.
  6378. * testsuite/20_util/unwrap_reference/3.cc: New test.
  6379. * include/std/numeric (midpoint(T8, T*)): Do not check for complete
  6380. type during overload resolution, use static assert instead (LWG 3200).
  6381. * testsuite/26_numerics/midpoint/pointer.cc: Do not test with
  6382. incomplete type.
  6383. * testsuite/26_numerics/midpoint/pointer_neg.cc: New test.
  6384. * include/std/span (span(T (&)[N])): Use non-deduced context to
  6385. prevent first parameter from interfering with class template argument
  6386. deduction (LWG 3369).
  6387. * testsuite/23_containers/span/deduction.cc: Add missing 'const'.
  6388. * testsuite/23_containers/span/lwg3255.cc: Check for construction from
  6389. rvalues.
  6390. * include/std/span (span::const_iterator, span::const_reverse_iterator)
  6391. (span::cbegin(), span::cend(), span::crbegin(), span::crend()):
  6392. Remove (LWG 3320).
  6393. * testsuite/23_containers/span/everything.cc: Replace uses of cbegin
  6394. and cend.
  6395. * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
  6396. Likewise.
  6397. * testsuite/20_util/specialized_algorithms/uninitialized_copy/
  6398. constrained.cc: Likewise.
  6399. * testsuite/20_util/specialized_algorithms/
  6400. uninitialized_default_construct/constrained.cc: Likewise.
  6401. * testsuite/20_util/specialized_algorithms/uninitialized_fill/
  6402. constrained.cc: Likewise.
  6403. * testsuite/20_util/specialized_algorithms/uninitialized_move/
  6404. constrained.cc: Likewise.
  6405. * testsuite/20_util/specialized_algorithms/
  6406. uninitialized_value_construct/constrained.cc: Likewise.
  6407. * include/bits/range_access.h (range_size_t): Define alias template.
  6408. * include/std/ranges (all_view): Rename to views::all_t (LWG 3335).
  6409. * testsuite/std/ranges/adaptors/filter.cc: Adjust to new name.
  6410. * include/std/ranges (filter_view, transform_view, take_view)
  6411. (join_view, split_view, reverse_view): Remove commented-out converting
  6412. constructors (LWG 3280).
  6413. * include/std/memory (uninitialized_construct_using_allocator): Use
  6414. std::construct_at (LWG 3321).
  6415. * include/std/memory_resource (polymorphic_allocator::allocate_bytes)
  6416. (polymorphic_allocator::allocate_object)
  6417. (polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).
  6418. LWG 3379. "safe" in several library names is misleading
  6419. * include/bits/range_access.h (enable_safe_range): Rename to
  6420. enable_borrowed_range.
  6421. (__detail::__maybe_safe_range): Rename to __maybe_borrowed_range.
  6422. (safe_range): Rename to borrowed_range.
  6423. * include/bits/ranges_algo.h: Adjust to use new names.
  6424. * include/bits/ranges_algobase.h: Likewise.
  6425. * include/bits/ranges_uninitialized.h: Likewise.
  6426. * include/std/ranges: Likewise.
  6427. (safe_iterator_t): Rename to borrowed_iterator_t.
  6428. (safe_subrange_t): Rename to borrowed_subrange_t.
  6429. * include/std/span: Adjust to use new names.
  6430. * include/std/string_view: Likewise.
  6431. * include/experimental/string_view: Likewise.
  6432. * testsuite/std/ranges/access/begin.cc: Likewise.
  6433. * testsuite/std/ranges/access/cbegin.cc: Likewise.
  6434. * testsuite/std/ranges/access/cdata.cc: Likewise.
  6435. * testsuite/std/ranges/access/cend.cc: Likewise.
  6436. * testsuite/std/ranges/access/crbegin.cc: Likewise.
  6437. * testsuite/std/ranges/access/crend.cc: Likewise.
  6438. * testsuite/std/ranges/access/data.cc: Likewise.
  6439. * testsuite/std/ranges/access/end.cc: Likewise.
  6440. * testsuite/std/ranges/access/rbegin.cc: Likewise.
  6441. * testsuite/std/ranges/access/rend.cc: Likewise.
  6442. * testsuite/std/ranges/safe_range.cc: Likewise.
  6443. * testsuite/std/ranges/safe_range_types.cc: Likewise.
  6444. * testsuite/util/testsuite_iterators.h: Likewise.
  6445. * include/std/ranges (tuple_element<0, const subrange<I, S, K>>)
  6446. (tuple_element<1, const subrange<I, S, K>>): Add partial
  6447. specializations (LWG 3398).
  6448. * testsuite/std/ranges/subrange/tuple_like.cc: New test.
  6449. * include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
  6450. (__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
  6451. (__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
  6452. 2020-02-18 Patrick Palka <ppalka@redhat.com>
  6453. P1983R0 Wording for GB301, US296, US292, US291, and US283
  6454. * include/std/ranges (filter_view::pred): New member function.
  6455. (join_view::_Iterator::_Iterator): Remove now-redundant comment since
  6456. P1983R0 fixes the highlighted issue in the same way.
  6457. (join_view::_Iterator<_Const>): Add friend
  6458. join_view::_Iterator<!_Const>.
  6459. (join_view::_M_inner): Remove mutable specifier, effectively reverting
  6460. the proposed wording changes of P3278.
  6461. (join_view::begin): Refine the condition for when to return a const
  6462. iterator.
  6463. (split_view::_OuterIter::_OuterIter): Adjust constraints.
  6464. * testsuite/std/ranges/adaptors/filter.cc: Test that filter_view::pred
  6465. exists and works.
  6466. 2020-02-18 Jonathan Wakely <jwakely@redhat.com>
  6467. PR libstdc++/93818
  6468. * include/std/ranges (_RangeAdaptor): Add deduction guide.
  6469. (filter_view::_Iterator): Add alias _Vp_iter and use in place of
  6470. iterator_t<_Vp>.
  6471. (filter_view::_Iterator::_S_iter_cat()): Add 'typename'.
  6472. (transform_view::_Iterator): Add alias _Base_iter and use in place of
  6473. iterator_t<_Base>.
  6474. (transform_view::_Iterator::_S_iter_cat()): Add 'typename'.
  6475. (join_view::_Iterator): Add _Outer_iter and _Inner_iter aliases.
  6476. (join_view::_Iterator::_S_iter_cat()): Add 'typename'.
  6477. (split_view::_InnerIter::_S_iter_cat()): Likewise.
  6478. * testsuite/20_util/integer_comparisons/equal.cc: Fix invalid
  6479. assumption that long is wider than int.
  6480. * testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise.
  6481. * testsuite/20_util/integer_comparisons/less.cc: Likewise.
  6482. * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
  6483. * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
  6484. P1976R2 Fixed-size span construction from dynamic range
  6485. * include/std/span (__cpp_lib_span): Update value.
  6486. (span(It, size_type), span(It, End)): Make conditionally explicit. Add
  6487. assertion.
  6488. (span(R&&), span(const span<OType, OExtent>&)): Likewise and relax
  6489. constraints.
  6490. (span::first<Count>(), span::last<Count>()): Use explicit type in
  6491. return statement.
  6492. (as_bytes, as_writable_bytes): Likewise.
  6493. * include/std/version (__cpp_lib_span): Update value.
  6494. * testsuite/23_containers/span/1.cc: Check new value.
  6495. * testsuite/23_containers/span/2.cc: Check new value.
  6496. * testsuite/23_containers/span/explicit.cc: New test.
  6497. * include/std/span (span::__is_compatible_array): Simplify alias
  6498. template by using requires-clause.
  6499. (span::__is_compatible_ref): New alias template for constraining
  6500. constructors.
  6501. (span::__is_compatible_iterator, span::__is_compatible_range): Remove.
  6502. (span(It, size_type), span(It, End)): Use __is_compatible_ref.
  6503. (span(T(&)[N], span(array<T, N>&), span(const array<T, N>&)): Remove
  6504. redundant parentheses.
  6505. (span(R&&)): Add missing constraints.
  6506. * include/std/span (span): Reorder members and rename template
  6507. parameters to match declarations in the C++2a working paper.
  6508. P2116R0 Remove tuple-like protocol support from fixed-extent span
  6509. * include/std/span (get, tuple_size, tuple_element): Remove.
  6510. * testsuite/23_containers/span/everything.cc: Remove checks for
  6511. tuple-like API.
  6512. * testsuite/23_containers/span/get_neg.cc: Remove.
  6513. * testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove.
  6514. * testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove.
  6515. * testsuite/23_containers/span/tuple_size_neg.cc: Remove.
  6516. 2020-02-17 Patrick Palka <ppalka@redhat.com>
  6517. P2106R0 Alternative wording for GB315 and GB316
  6518. * include/bits/ranges_algo.h (in_fun_result): New.
  6519. (for_each_result, for_each_n_result): Change into an alias of
  6520. in_fun_result.
  6521. (in_in_result): New.
  6522. (mismatch_result): Change into an alias of in_in_result.
  6523. (copy_if_result): Change into an alias of in_out_result.
  6524. (swap_ranges_result): Change into an alias of in_in_result.
  6525. (unary_transform_result): Change into an alias of in_out_result.
  6526. (in_in_out_result): New.
  6527. (binary_transform_result): Change into an alias of in_in_out_result.
  6528. (replace_copy_result, replace_copy_if_result, remove_copy_if_result,
  6529. remove_copy_result, unique_copy_result, reverse_copy_result,
  6530. rotate_copy_result, partial_sort_copy_result): Change into an alias of
  6531. in_out_result.
  6532. (in_out_out_result): New.
  6533. (partition_copy_result, merge_result): Change into an alias of
  6534. in_out_out_result.
  6535. (set_union_result, set_intersection_result): Change into an alias of
  6536. in_in_out_result.
  6537. (set_difference_result): Change into an alias of in_out_result.
  6538. (set_symmetric_difference): Change into an alias of in_in_out_result.
  6539. (min_max_result): New.
  6540. (minmax_result, minmax_element_result): Change into an alias of
  6541. min_max_result.
  6542. (in_found_result): New.
  6543. (next_permutation_result, prev_permutation_result): Change into an alias
  6544. of in_found_result.
  6545. (__next_permutation_fn::operator(), __prev_permutation_fn::operator()):
  6546. Adjust following changes to next_permutation_result and
  6547. prev_permutation_result.
  6548. * include/bits/ranges_algobase.h (in_out_result): New.
  6549. (copy_result, move_result, move_backward_result, copy_backward_result,
  6550. copy_n_result): Change into an alias of in_out_result.
  6551. * include/bits/ranges_uninitialized.h (uninitialized_copy_result,
  6552. uninitialized_copy_n_result, uninitialized_move_result,
  6553. uninitialized_move_n_result): Likewise.
  6554. * testsuite/25_algorithms/next_permutation/constrained.cc: Adjust uses of
  6555. structured bindings.
  6556. * testsuite/25_algorithms/prev_permutation/constrained.cc: Likewise.
  6557. P1243R4 Rangify new algorithms
  6558. * include/bits/ranges_algo.h (for_each_n_result, __for_each_n_fn,
  6559. for_each_n, __sample_fn, sample, __clamp_fn, clamp): New.
  6560. * testsuite/25_algorithms/clamp/constrained.cc: New test.
  6561. * testsuite/25_algorithms/for_each/constrained.cc: Augment test.
  6562. * testsuite/25_algorithms/sample/constrained.cc: New test.
  6563. 2020-02-17 Jonathan Wakely <jwakely@redhat.com>
  6564. P1964R2 Wording for boolean-testable
  6565. * include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
  6566. (__adjacent_find_fn): Cast result of predicate to bool.
  6567. * include/std/concepts (__boolean): Remove.
  6568. (__detail::__boolean_testable_impl, __detail::__boolean_testable): Add
  6569. new helper concepts.
  6570. (__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with)
  6571. (predicate): Use __boolean_testable instead of boolean.
  6572. * libsupc++/compare (__detail::__partially_ordered, _Synth3way):
  6573. Likewise.
  6574. P1970R2 Consistency for size() functions: Add ranges::ssize
  6575. * include/bits/range_access.h (_SSize, ssize): Define for C++20.
  6576. * testsuite/std/ranges/access/ssize.cc: New test.
  6577. P1956R1 On the names of low-level bit manipulation functions
  6578. * include/bits/hashtable_policy.h: Update comment.
  6579. * include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename.
  6580. (ispow2, ceil2, floor2, log2p1): Likewise.
  6581. (__cpp_lib_int_pow2): Add feature test macro.
  6582. * include/std/charconv (__to_chars_len_2): Adjust use of __log2p1.
  6583. * include/std/memory (assume_aligned): Adjust use of ispow2.
  6584. * include/std/version (__cpp_lib_int_pow2): Add.
  6585. * libsupc++/new_opa.cc: Adjust use of __ispow2.
  6586. * src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1.
  6587. * testsuite/17_intro/freestanding.cc: Adjust use of ispow2.
  6588. * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ...
  6589. * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here.
  6590. * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ...
  6591. * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here.
  6592. * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ...
  6593. * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here.
  6594. * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ...
  6595. * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here.
  6596. * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ...
  6597. * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here.
  6598. * include/std/charconv: Add comment.
  6599. PR libstdc++/92546 (partial)
  6600. * include/bits/random.h (uniform_random_bit_generator): Move definition
  6601. to <bits/uniform_int_dist.h>.
  6602. * include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead
  6603. of <bits/random.h>.
  6604. * include/bits/ranges_algobase.h: Do not include <cmath>.
  6605. * include/bits/uniform_int_dist.h (uniform_random_bit_generator):
  6606. Move here.
  6607. * include/std/ranges: Do not include <limits>.
  6608. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
  6609. PR libstdc++/92546 (partial)
  6610. * include/Makefile.am: Add new header.
  6611. * include/Makefile.in: Regenerate.
  6612. * include/bits/int_limits.h: New header.
  6613. * include/bits/parse_numbers.h (__select_int::_Select_int): Replace
  6614. numeric_limits with __detail::__int_limits.
  6615. * include/std/bit (__rotl, __rotr, __countl_zero, __countl_one)
  6616. (__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1):
  6617. Likewise.
  6618. * include/std/charconv (__to_chars_8, __from_chars_binary)
  6619. (__from_chars_alpha_to_num, from_chars): Likewise.
  6620. * include/std/memory_resource (polymorphic_allocator::allocate)
  6621. (polymorphic_allocator::allocate_object): Likewise.
  6622. * include/std/string_view (basic_string_view::_S_compare): Likewise.
  6623. * include/std/utility (in_range): Likewise.
  6624. * testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for
  6625. extra error about incomplete type __int_limits<bool>.
  6626. * testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>.
  6627. * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
  6628. * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
  6629. * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
  6630. * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
  6631. * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise.
  6632. * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise.
  6633. * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
  6634. * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
  6635. * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
  6636. * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
  6637. * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
  6638. * python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update
  6639. value for partial_ordering::unordered.
  6640. * include/bits/iterator_concepts.h (indirectly_copyable_storable): Add
  6641. const-qualified expression variations.
  6642. * include/std/concepts (copyable): Likewise.
  6643. * include/std/type_traits (__is_standard_integer): New helper trait.
  6644. * include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
  6645. (cmp_less_equal, cmp_greater_equal, in_range): Define for C++20.
  6646. * include/std/version (__cpp_lib_integer_comparison_functions): Define.
  6647. * testsuite/20_util/integer_comparisons/1.cc: New test.
  6648. * testsuite/20_util/integer_comparisons/2.cc: New test.
  6649. * testsuite/20_util/integer_comparisons/equal.cc: New test.
  6650. * testsuite/20_util/integer_comparisons/equal_neg.cc: New test.
  6651. * testsuite/20_util/integer_comparisons/greater_equal.cc: New test.
  6652. * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test.
  6653. * testsuite/20_util/integer_comparisons/greater_neg.cc: New test.
  6654. * testsuite/20_util/integer_comparisons/in_range.cc: New test.
  6655. * testsuite/20_util/integer_comparisons/in_range_neg.cc: New test.
  6656. * testsuite/20_util/integer_comparisons/less.cc: New test.
  6657. * testsuite/20_util/integer_comparisons/less_equal.cc: New test.
  6658. * testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test.
  6659. * testsuite/20_util/integer_comparisons/less_neg.cc: New test.
  6660. * testsuite/20_util/integer_comparisons/not_equal.cc: New test.
  6661. * testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test.
  6662. 2020-02-16 Patrick Palka <ppalka@redhat.com>
  6663. * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
  6664. Move code after an early exit constexpr if to under an else branch.
  6665. * include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise.
  6666. 2020-02-15 Patrick Palka <ppalka@redhat.com>
  6667. * include/bits/ranges_algo.h: Adjust whitespace and formatting.
  6668. * include/bits/ranges_algobase.h: Likewise.
  6669. * include/bits/ranges_uninitialized.h: Likewise.
  6670. * include/bits/ranges_algo.h: (adjacent_find, all_of, any_of,
  6671. binary_search, copy_if, count, count_if, equal_range, find, find_end,
  6672. find_first_of, find_if, find_if_not, for_each, generate, generate_n,
  6673. includes, inplace_merge, is_heap, is_heap_until, is_partitioned,
  6674. is_permutation, is_sorted, is_sorted_until, lexicographical_compare,
  6675. lower_bound, make_heap, max, max_element, merge, min, min_element,
  6676. minmax, minmax_element, mismatch, next_permutation, none_of,
  6677. nth_element, partial_sort, partial_sort_copy, partition, partition_copy,
  6678. partition_point, pop_heap, prev_permutation, push_heap, remove,
  6679. remove_copy, remove_copy_if, remove_if, replace, replace_copy,
  6680. replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy,
  6681. search, search_n, set_difference, set_intersection,
  6682. set_symmetric_difference, set_union, shuffle, sort, sort_heap,
  6683. stable_partition, stable_sort, swap_ranges, transform, unique,
  6684. unique_copy, upper_bound): Convert into function objects.
  6685. * include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n,
  6686. fill, move_backward, copy_backward): Likewise.
  6687. * include/bits/ranges_uninitialized.h (uninitialized_default_construct,
  6688. uninitialized_default_construct_n, uninitialized_value_construct,
  6689. uninitialized_value_construct_n, uninitialized_copy,
  6690. uninitialized_copy_n, uninitialized_move, uninitialized_move_n,
  6691. uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at,
  6692. destroy, destroy_n): Likewise.
  6693. * include/bits/ranges_algo.h (ranges::__find_end): Fold into ...
  6694. (ranges::find_end): ... here.
  6695. (ranges::__lexicographical_compare): Fold into ...
  6696. (ranges::lexicographical_compare): ... here.
  6697. * include/bits/ranges_algobase.h (ranges::__equal): Fold into ...
  6698. (ranges::equal): ... here.
  6699. 2020-02-15 Jonathan Wakely <jwakely@redhat.com>
  6700. * include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
  6701. * include/std/deque: Likewise.
  6702. * include/std/forward_list: Likewise.
  6703. * include/std/list: Likewise.
  6704. * include/std/string: Likewise.
  6705. * include/std/vector: Likewise.
  6706. * include/std/version: Likewise.
  6707. * testsuite/23_containers/deque/erasure.cc: Test for new value.
  6708. * testsuite/23_containers/forward_list/erasure.cc: Likewise.
  6709. * testsuite/23_containers/list/erasure.cc: Likewise.
  6710. * testsuite/23_containers/map/erasure.cc: Likewise.
  6711. * testsuite/23_containers/set/erasure.cc: Likewise.
  6712. * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
  6713. * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
  6714. * testsuite/23_containers/vector/erasure.cc: Likewise.
  6715. 2020-02-15 Jonathan Wakely <jwakely@redhat.com>
  6716. * include/bits/random.h (uniform_random_bit_generator): Require min()
  6717. and max() to be constant expressions and min() to be less than max().
  6718. * testsuite/26_numerics/random/concept.cc: Check additional cases.
  6719. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
  6720. 2020-02-13 Patrick Palka <ppalka@redhat.com>
  6721. * include/Makefile.am: Add <bits/ranges_uninitialized.h>.
  6722. * include/Makefile.in: Regenerate.
  6723. * include/bits/ranges_uninitialized.h: New header.
  6724. * include/std/memory: Include it.
  6725. * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New
  6726. test.
  6727. * .../uninitialized_copy/constrained.cc: New test.
  6728. * .../uninitialized_default_construct/constrained.cc: New test.
  6729. * .../uninitialized_fill/constrained.cc: New test.
  6730. * .../uninitialized_move/constrained.cc: New test.
  6731. * .../uninitialized_value_construct/constrained.cc: New test.
  6732. * include/Makefile.am: Add bits/ranges_algobase.h
  6733. * include/Makefile.in: Regenerate.
  6734. * bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor
  6735. existing #includes.
  6736. (__detail::__is_normal_iterator, __detail::is_reverse_iterator,
  6737. __detail::__is_move_iterator, copy_result, move_result,
  6738. __equal, equal, copy_result, move_result, move_backward_result,
  6739. copy_backward_result, __copy_or_move_backward, __copy_or_move, copy,
  6740. move, copy_backward, move_backward, copy_n_result, copy_n, fill_n,
  6741. fill): Split out into ...
  6742. * bits/range_algobase.h: ... this new header.
  6743. 2020-02-12 Patrick Palka <ppalka@redhat.com>
  6744. LWG 3389 and LWG 3390
  6745. * include/bits/stl_iterator.h (move_move_iterator): Use std::move when
  6746. constructing the move_iterator with __i.
  6747. (counted_iterator::counted_iterator): Use std::move when initializing
  6748. M_current with __i.
  6749. * testsuite/24_iterators/counted_iterator/lwg3389.cc: New test.
  6750. * testsuite/24_iterators/move_iterator/lwg3390.cc: New test.
  6751. 2020-02-12 Sandra Loosemore <sandra@codesourcery.com>
  6752. PR libstdc++/79193
  6753. PR libstdc++/88999
  6754. * configure: Regenerated.
  6755. 2020-02-12 François Dumont <fdumont@gcc.gnu.org>
  6756. * include/bits/hashtable.h
  6757. (_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add
  6758. missing std namespace qualification to forward call.
  6759. 2020-02-09 Jonathan Wakely <jwakely@redhat.com>
  6760. * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
  6761. comment.
  6762. * testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
  6763. * include/std/ranges: Fix non-ASCII characters in comment.
  6764. * include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
  6765. equality comparison to be valid and return bool.
  6766. (__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
  6767. * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
  6768. type with ambiguous conversion to fundamental types.
  6769. * testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
  6770. 2020-02-07 Jonathan Wakely <jwakely@redhat.com>
  6771. * include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
  6772. Use remove_cvref_t.
  6773. (readable_traits): Rename to indirectly_readable_traits.
  6774. (readable): Rename to indirectly_readable.
  6775. (writable): Rename to indirectly_writable.
  6776. (__detail::__iter_exchange_move): Do not use remove_reference_t.
  6777. (indirectly_swappable): Adjust requires expression parameter types.
  6778. expression.
  6779. * include/bits/ranges_algo.h (ranges::transform, ranges::replace)
  6780. (ranges::replace_if, ranges::generate_n, ranges::generate)
  6781. (ranges::remove): Use new name for writable.
  6782. * include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
  6783. Use new name for readable.
  6784. * include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
  6785. new name for readable_traits.
  6786. * testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
  6787. * testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
  6788. new definition of indirectly_readable.
  6789. * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
  6790. to take parameters of common_iterator, instead of the common_iterator
  6791. type itself. Fix argument for __common_iter_has_arrow constraint.
  6792. (iterator_traits<common_iterator<I, S>>::pointer): Adjust.
  6793. 2020-02-07 Jonathan Wakely <jwakely@redhat.com>
  6794. * include/std/ranges (iota_view): Add braces to prevent -Wempty-body
  6795. warning.
  6796. (basic_istream_view::_Iterator::operator++()): Add missing return.
  6797. 2020-02-07 Patrick Palka <ppalka@redhat.com>
  6798. * include/bits/ranges_algo.h: Remove extraneous &&.
  6799. * include/std/ranges (ranges::__detail::__stream_extractable,
  6800. ranges::basic_istream_view, ranges::istream_view): Define.
  6801. * testsuite/std/ranges/istream_view: New test.
  6802. Implement C++20 range adaptors
  6803. * include/std/ranges: Include <bits/refwrap.h> and <tuple>.
  6804. (subrange::_S_store_size): Mark as const instead of constexpr to
  6805. avoid what seems to be a bug in GCC.
  6806. (__detail::__box): Give it defaulted copy and move constructors.
  6807. (ranges::views::_Single::operator()): Mark constexpr.
  6808. (ranges::views::_Iota::operator()): Mark constexpr.
  6809. (__detail::Empty): Define.
  6810. (ranges::views::__closure::_RangeAdaptor,
  6811. ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
  6812. ranges::views::all, ranges::__detail::find_if,
  6813. ranges::__detail::find_if_not, ranges::__detail::mismatch,
  6814. ranges::detail::min, filter_view, ranges::views::filter, transform_view,
  6815. ranges::views::transform, take_view, ranges::views::take,
  6816. take_while_view, ranges::views::take_while, drop_view,
  6817. ranges::views::drop, join_view, ranges::views::join,
  6818. __detail::require_constant, __detail::tiny_range, split_view,
  6819. ranges::views::split, ranges::views::_Counted, ranges::views::counted,
  6820. common_view, ranges::views::common, reverse_view,
  6821. ranges::views::reverse,
  6822. ranges::views::__detail::__is_reversible_subrange,
  6823. ranges::views::__detail::__is_reverse_view, reverse_view,
  6824. ranges::views::reverse, __detail::__has_tuple_element, elements_view,
  6825. ranges::views::elements, ranges::views::keys, ranges::views::values):
  6826. Define.
  6827. (views): Alias for ranges::views.
  6828. (tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
  6829. tuple_element<1, ranges::subrange>): New partial specializations.
  6830. * testsuite/std/ranges/adaptors/all.cc: New test.
  6831. * testsuite/std/ranges/adaptors/common.cc: Likewise.
  6832. * testsuite/std/ranges/adaptors/counted.cc: Likewise.
  6833. * testsuite/std/ranges/adaptors/drop.cc: Likewise.
  6834. * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
  6835. * testsuite/std/ranges/adaptors/elements.cc: Likewise.
  6836. * testsuite/std/ranges/adaptors/filter.cc: Likewise.
  6837. * testsuite/std/ranges/adaptors/join.cc: Likewise.
  6838. * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
  6839. * testsuite/std/ranges/adaptors/split.cc: Likewise.
  6840. * testsuite/std/ranges/adaptors/take.cc: Likewise.
  6841. * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
  6842. * testsuite/std/ranges/adaptors/transform.cc: Likewise.
  6843. 2020-02-07 Jonathan Wakely <jwakely@redhat.com>
  6844. * libsupc++/compare (__cmp_cat::type): Define typedef for underlying
  6845. type of enumerations and comparison category types.
  6846. (__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
  6847. (__cmp_cat::_Ncmp::unordered): Change value to 2.
  6848. (partial_ordering::_M_value, weak_ordering::_M_value)
  6849. (strong_ordering::_M_value): Change type to __cmp_cat::type.
  6850. (partial_ordering::_M_is_ordered): Remove data member.
  6851. (partial_ordering): Use second bit of _M_value for unordered. Adjust
  6852. comparison operators.
  6853. (weak_ordering::operator partial_ordering): Simplify to remove
  6854. branches.
  6855. (operator<=>(unspecified, weak_ordering)): Likewise.
  6856. (strong_ordering::operator partial_ordering): Likewise.
  6857. (strong_ordering::operator weak_ordering): Likewise.
  6858. (operator<=>(unspecified, strong_ordering)): Likewise.
  6859. * testsuite/18_support/comparisons/categories/partialord.cc: New test.
  6860. * testsuite/18_support/comparisons/categories/strongord.cc: New test.
  6861. * testsuite/18_support/comparisons/categories/weakord.cc: New test.
  6862. * include/std/ranges (iota_view::_Iterator): Fix typo in name of
  6863. __cpp_lib_three_way_comparison macro and use deduced return type for
  6864. operator<=>.
  6865. * testsuite/std/ranges/iota/iterator.cc: New test.
  6866. 2020-02-07 Patrick Palka <ppalka@redhat.com>
  6867. Jonathan Wakely <jwakely@redhat.com>
  6868. Implement C++20 constrained algorithms
  6869. * include/Makefile.am: Add new header.
  6870. * include/Makefile.in: Regenerate.
  6871. * include/std/algorithm: Include <bits/ranges_algo.h>.
  6872. * include/bits/ranges_algo.h: New file.
  6873. * testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
  6874. * testsuite/25_algorithms/all_of/constrained.cc: New test.
  6875. * testsuite/25_algorithms/any_of/constrained.cc: New test.
  6876. * testsuite/25_algorithms/binary_search/constrained.cc: New test.
  6877. * testsuite/25_algorithms/copy/constrained.cc: New test.
  6878. * testsuite/25_algorithms/copy_backward/constrained.cc: New test.
  6879. * testsuite/25_algorithms/copy_if/constrained.cc: New test.
  6880. * testsuite/25_algorithms/copy_n/constrained.cc: New test.
  6881. * testsuite/25_algorithms/count/constrained.cc: New test.
  6882. * testsuite/25_algorithms/count_if/constrained.cc: New test.
  6883. * testsuite/25_algorithms/equal/constrained.cc: New test.
  6884. * testsuite/25_algorithms/equal_range/constrained.cc: New test.
  6885. * testsuite/25_algorithms/fill/constrained.cc: New test.
  6886. * testsuite/25_algorithms/fill_n/constrained.cc: New test.
  6887. * testsuite/25_algorithms/find/constrained.cc: New test.
  6888. * testsuite/25_algorithms/find_end/constrained.cc: New test.
  6889. * testsuite/25_algorithms/find_first_of/constrained.cc: New test.
  6890. * testsuite/25_algorithms/find_if/constrained.cc: New test.
  6891. * testsuite/25_algorithms/find_if_not/constrained.cc: New test.
  6892. * testsuite/25_algorithms/for_each/constrained.cc: New test.
  6893. * testsuite/25_algorithms/generate/constrained.cc: New test.
  6894. * testsuite/25_algorithms/generate_n/constrained.cc: New test.
  6895. * testsuite/25_algorithms/heap/constrained.cc: New test.
  6896. * testsuite/25_algorithms/includes/constrained.cc: New test.
  6897. * testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
  6898. * testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
  6899. * testsuite/25_algorithms/is_permutation/constrained.cc: New test.
  6900. * testsuite/25_algorithms/is_sorted/constrained.cc: New test.
  6901. * testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
  6902. * testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
  6903. test.
  6904. * testsuite/25_algorithms/lower_bound/constrained.cc: New test.
  6905. * testsuite/25_algorithms/max/constrained.cc: New test.
  6906. * testsuite/25_algorithms/max_element/constrained.cc: New test.
  6907. * testsuite/25_algorithms/merge/constrained.cc: New test.
  6908. * testsuite/25_algorithms/min/constrained.cc: New test.
  6909. * testsuite/25_algorithms/min_element/constrained.cc: New test.
  6910. * testsuite/25_algorithms/minmax/constrained.cc: New test.
  6911. * testsuite/25_algorithms/minmax_element/constrained.cc: New test.
  6912. * testsuite/25_algorithms/mismatch/constrained.cc: New test.
  6913. * testsuite/25_algorithms/move/constrained.cc: New test.
  6914. * testsuite/25_algorithms/move_backward/constrained.cc: New test.
  6915. * testsuite/25_algorithms/next_permutation/constrained.cc: New test.
  6916. * testsuite/25_algorithms/none_of/constrained.cc: New test.
  6917. * testsuite/25_algorithms/nth_element/constrained.cc: New test.
  6918. * testsuite/25_algorithms/partial_sort/constrained.cc: New test.
  6919. * testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
  6920. * testsuite/25_algorithms/partition/constrained.cc: New test.
  6921. * testsuite/25_algorithms/partition_copy/constrained.cc: New test.
  6922. * testsuite/25_algorithms/partition_point/constrained.cc: New test.
  6923. * testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
  6924. * testsuite/25_algorithms/remove/constrained.cc: New test.
  6925. * testsuite/25_algorithms/remove_copy/constrained.cc: New test.
  6926. * testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
  6927. * testsuite/25_algorithms/remove_if/constrained.cc: New test.
  6928. * testsuite/25_algorithms/replace/constrained.cc: New test.
  6929. * testsuite/25_algorithms/replace_copy/constrained.cc: New test.
  6930. * testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
  6931. * testsuite/25_algorithms/replace_if/constrained.cc: New test.
  6932. * testsuite/25_algorithms/reverse/constrained.cc: New test.
  6933. * testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
  6934. * testsuite/25_algorithms/rotate/constrained.cc: New test.
  6935. * testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
  6936. * testsuite/25_algorithms/search/constrained.cc: New test.
  6937. * testsuite/25_algorithms/search_n/constrained.cc: New test.
  6938. * testsuite/25_algorithms/set_difference/constrained.cc: New test.
  6939. * testsuite/25_algorithms/set_intersection/constrained.cc: New test.
  6940. * testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
  6941. test.
  6942. * testsuite/25_algorithms/set_union/constrained.cc: New test.
  6943. * testsuite/25_algorithms/shuffle/constrained.cc: New test.
  6944. * testsuite/25_algorithms/sort/constrained.cc: New test.
  6945. * testsuite/25_algorithms/stable_partition/constrained.cc: New test.
  6946. * testsuite/25_algorithms/stable_sort/constrained.cc: New test.
  6947. * testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
  6948. * testsuite/25_algorithms/transform/constrained.cc: New test.
  6949. * testsuite/25_algorithms/unique/constrained.cc: New test.
  6950. * testsuite/25_algorithms/unique_copy/constrained.cc: New test.
  6951. * testsuite/25_algorithms/upper_bound/constrained.cc: New test.
  6952. 2020-02-06 Jonathan Wakely <jwakely@redhat.com>
  6953. * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
  6954. number in comment. Fix indentation.
  6955. * include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
  6956. redundant _GLIBCXX20_CONSTEXPR.
  6957. * include/std/ranges (viewable_range): Replace decay_t with
  6958. remove_cvref_t (LWG 3375).
  6959. 2020-02-05 Jonathan Wakely <jwakely@redhat.com>
  6960. * include/bits/iterator_concepts.h (iter_reference_t)
  6961. (iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
  6962. Remove workarounds for PR c++/67704.
  6963. * testsuite/24_iterators/aliases.cc: New test.
  6964. 2020-02-05 Patrick Palka <ppalka@redhat.com>
  6965. * include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
  6966. when initializing _M_current.
  6967. (move_iterator::base): Split into two overloads differing in
  6968. ref-qualifiers as in P1207R4 for C++20.
  6969. 2020-02-04 Jonathan Wakely <jwakely@redhat.com>
  6970. * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
  6971. use.
  6972. PR libstdc++/93562
  6973. * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
  6974. (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
  6975. * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
  6976. 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
  6977. * configure: Regenerate.
  6978. 2020-01-31 Patrick Palka <ppalka@redhat.com>
  6979. * testsuite/24_iterators/range_operations/distance.cc: Do not assume
  6980. test_range::end() returns the same type as test_range::begin().
  6981. * testsuite/24_iterators/range_operations/next.cc: Likewise.
  6982. * testsuite/24_iterators/range_operations/prev.cc: Likewise.
  6983. * testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
  6984. Always return a sentinel<I>.
  6985. 2020-01-29 Jonathan Wakely <jwakely@redhat.com>
  6986. PR libstdc++/92895
  6987. * include/std/stop_token (stop_token::stop_possible()): Call new
  6988. _M_stop_possible() function.
  6989. (stop_token::stop_requested()): Do not use stop_possible().
  6990. (stop_token::binary_semaphore): New class, as temporary stand-in for
  6991. std::binary_semaphore.
  6992. (stop_token::_Stop_cb::_M_callback): Add noexcept to type.
  6993. (stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
  6994. New data members for symchronization with stop_callback destruction.
  6995. (stop_token::_Stop_cb::_Stop_cb): Make non-template.
  6996. (stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
  6997. Remove.
  6998. (stop_token::_Stop_cb::_M_run): New member function.
  6999. (stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
  7000. Remove.
  7001. (stop_token::_Stop_state::_M_owners): New data member to track
  7002. reference count for ownership.
  7003. (stop_token::_Stop_state::_M_value): New data member combining a
  7004. spinlock, the stop requested flag, and the reference count for
  7005. associated stop_source objects.
  7006. (stop_token::_Stop_state::_M_requester): New data member for
  7007. synchronization with stop_callback destruction.
  7008. (stop_token::_Stop_state::_M_stop_possible()): New member function.
  7009. (stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
  7010. of _M_value.
  7011. (stop_token::_Stop_state::_M_add_owner)
  7012. (stop_token::_Stop_state::_M_release_ownership)
  7013. (stop_token::_Stop_state::_M_add_ssrc)
  7014. (stop_token::_Stop_state::_M_sub_ssrc): New member functions for
  7015. updating reference counts.
  7016. (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
  7017. (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
  7018. (stop_token::_Stop_state::_M_try_lock)
  7019. (stop_token::_Stop_state::_M_try_lock_and_stop)
  7020. (stop_token::_Stop_state::_M_do_try_lock): New member functions for
  7021. managing spinlock.
  7022. (stop_token::_Stop_state::_M_request_stop): Use atomic operations to
  7023. read and update state. Release lock while running callbacks. Use new
  7024. data members to synchronize with callback destruction.
  7025. (stop_token::_Stop_state::_M_remove_callback): Likewise.
  7026. (stop_token::_Stop_state::_M_register_callback): Use atomic operations
  7027. to read and update state.
  7028. (stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
  7029. replacing shared_ptr.
  7030. (stop_source::stop_source(const stop_source&)): Update reference count.
  7031. (stop_source::operator=(const stop_source&)): Likewise.
  7032. (stop_source::~stop_source()): Likewise.
  7033. (stop_source::stop_source(stop_source&&)): Define as defaulted.
  7034. (stop_source::operator=(stop_source&&)): Establish postcondition on
  7035. parameter.
  7036. (stop_callback): Enforce preconditions on template parameter. Replace
  7037. base class with data member of new _Cb_impl type.
  7038. (stop_callback::stop_callback(const stop_token&, Cb&&))
  7039. (stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
  7040. (stop_callback::_Cb_impl): New type wrapping _Callback member and
  7041. defining the _S_execute member function.
  7042. * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
  7043. test.
  7044. * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
  7045. * testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
  7046. * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
  7047. New test.
  7048. * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
  7049. test.
  7050. * testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
  7051. * testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
  7052. * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
  7053. test.
  7054. * libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
  7055. three_way_comparable_with.
  7056. (__detail::__3way_cmp_with): Remove workaround for fixed bug.
  7057. (compare_three_way::operator()): Remove redundant constraint from
  7058. requires-clause.
  7059. (__detail::_Synth3way::operator()): Use three_way_comparable_with
  7060. instead of workaround.
  7061. * testsuite/18_support/comparisons/object/93479.cc: Prune extra
  7062. output due to simplified constraints on compare_three_way::operator().
  7063. PR libstdc++/93479
  7064. * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
  7065. * testsuite/18_support/comparisons/object/93479.cc: New test.
  7066. * testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
  7067. returns the same type as test_range::begin(). Add comments.
  7068. * testsuite/std/ranges/access/rbegin.cc: Likewise.
  7069. * testsuite/std/ranges/access/rend.cc: Likewise.
  7070. * testsuite/std/ranges/range.cc: Do not assume the sentinel for
  7071. test_range is the same as its iterator type.
  7072. * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
  7073. operator- overloads to satisfy sized_sentinel_for when the iterator
  7074. satisfies random_access_iterator.
  7075. 2020-01-28 Jonathan Wakely <jwakely@redhat.com>
  7076. PR libstdc++/93470
  7077. * include/bits/refwrap.h (reference_wrapper::operator()): Restrict
  7078. static assertion to object types.
  7079. PR libstdc++/93325
  7080. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
  7081. clock_gettime instead of explicit glibc version check.
  7082. * configure: Regenerate.
  7083. 2020-01-28 Martin Liska <mliska@suse.cz>
  7084. PR libstdc++/93478
  7085. * include/std/atomic: Fix typo.
  7086. * include/std/optional: Likewise.
  7087. 2020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
  7088. * configure: Regenerate.
  7089. 2020-01-27 Jonathan Wakely <jwakely@redhat.com>
  7090. PR libstdc++/93426
  7091. * include/std/span (span): Fix deduction guide.
  7092. * testsuite/23_containers/span/deduction.cc: New test.
  7093. 2020-01-24 Jonathan Wakely <jwakely@redhat.com>
  7094. * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
  7095. (__cmp_cat::_Ord::equivalent): Add enumerator.
  7096. (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
  7097. and greater.
  7098. (partial_ordering, weak_ordering, strong_ordering): Remove
  7099. constructors taking __cmp_cat::_Eq parameters. Use renamed
  7100. enumerators.
  7101. 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
  7102. * acinclude.m4: Handle `--with-toolexeclibdir='.
  7103. * Makefile.in: Regenerate.
  7104. * aclocal.m4: Regenerate.
  7105. * configure: Regenerate.
  7106. * doc/Makefile.in: Regenerate.
  7107. * include/Makefile.in: Regenerate.
  7108. * libsupc++/Makefile.in: Regenerate.
  7109. * po/Makefile.in: Regenerate.
  7110. * python/Makefile.in: Regenerate.
  7111. * src/Makefile.in: Regenerate.
  7112. * src/c++11/Makefile.in: Regenerate.
  7113. * src/c++17/Makefile.in: Regenerate.
  7114. * src/c++98/Makefile.in: Regenerate.
  7115. * src/filesystem/Makefile.in: Regenerate.
  7116. * testsuite/Makefile.in: Regenerate.
  7117. 2020-01-23 Alexandre Oliva <oliva@adacore.com>
  7118. * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
  7119. * configure: Rebuild.
  7120. * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
  7121. 2020-01-23 Jonathan Wakely <jwakely@redhat.com>
  7122. PR libstdc++/91947
  7123. * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
  7124. rule.
  7125. * include/Makefile.in: Regenerate.
  7126. 2020-01-20 Jonathan Wakely <jwakely@redhat.com>
  7127. * doc/xml/faq.xml: Fix grammar.
  7128. * doc/xml/manual/appendix_contributing.xml: Improve instructions.
  7129. * doc/xml/manual/spine.xml: Update copyright years.
  7130. * doc/html/*: Regenerate.
  7131. 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
  7132. * doc/xml/faq.xml: Update for SVN -> Git transition.
  7133. * doc/xml/manual/appendix_contributing.xml: Likewise.
  7134. * doc/xml/manual/status_cxx1998.xml: Likewise.
  7135. * doc/xml/manual/status_cxx2011.xml: Likewise.
  7136. * doc/xml/manual/status_cxx2014.xml: Likewise.
  7137. * doc/xml/manual/status_cxx2017.xml: Likewise.
  7138. * doc/xml/manual/status_cxx2020.xml: Likewise.
  7139. * doc/xml/manual/status_cxxtr1.xml: Likewise.
  7140. * doc/xml/manual/status_cxxtr24733.xml: Likewise.
  7141. 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
  7142. * include/Makefile.am: Add coroutine to the std set.
  7143. * include/Makefile.in: Regenerated.
  7144. * include/std/coroutine: New file.
  7145. 2020-01-17 Jonathan Wakely <jwakely@redhat.com>
  7146. PR libstdc++/92376
  7147. * include/bits/c++config: Only do PSTL config when the header is
  7148. present, to fix freestanding.
  7149. * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
  7150. functions if they were detected by configure.
  7151. 2020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
  7152. Matthew Bauer <mjbauer95@gmail.com>
  7153. Jonathan Wakely <jwakely@redhat.com>
  7154. PR bootstrap/64271 (partial)
  7155. * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
  7156. to unsigned short.
  7157. (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
  7158. (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
  7159. definitions with NetBSD upstream.
  7160. (ctype_base::blank): Use _CTYPE_BL.
  7161. * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
  7162. Declaration.
  7163. (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
  7164. (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
  7165. parameters to unsigned char.
  7166. * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
  7167. 2020-01-16 François Dumont <fdumont@gcc.gnu.org>
  7168. PR libstdc++/91263
  7169. * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
  7170. * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
  7171. (_Equality_base): Remove.
  7172. (_Equality<>::_M_equal): Review implementation. Use
  7173. std::is_permutation.
  7174. * testsuite/23_containers/unordered_multiset/operators/1.cc
  7175. (Hash, Equal, test02, test03): New.
  7176. * testsuite/23_containers/unordered_set/operators/1.cc
  7177. (Hash, Equal, test02, test03): New.
  7178. 2020-01-15 Jonathan Wakely <jwakely@redhat.com>
  7179. PR libstdc++/93267
  7180. * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
  7181. Move here from <bits/range_access.h> and define using __int128 when
  7182. available.
  7183. (__is_integer_like, __is_signed_integer_like): Move here from
  7184. <bits/range_access.h>.
  7185. (weakly_incrementable): Use __is_signed_integer_like.
  7186. * include/bits/range_access.h (__max_diff_type, __max_size_type)
  7187. (__is_integer_like, __is_signed_integer_like): Move to
  7188. <bits/iterator_concepts.h>.
  7189. (__make_unsigned_like_t): Move here from <ranges>.
  7190. * include/std/ranges (__make_unsigned_like_t): Move to
  7191. <bits/range_access.h>.
  7192. (iota_view): Replace using-directive with using-declarations.
  7193. * testsuite/std/ranges/iota/93267.cc: New test.
  7194. * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
  7195. 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
  7196. PR libstdc++/93244
  7197. * include/bits/fs_path.h (path::generic_string<C,A>)
  7198. [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
  7199. * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
  7200. root-dir is converted to forward slash in generic pathname.
  7201. * testsuite/27_io/filesystem/path/generic/utf.cc: New test.
  7202. * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
  7203. PR libstdc++/58605
  7204. * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
  7205. Define.
  7206. (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
  7207. (__atomic_float): Add default member initializer for C++20.
  7208. * include/std/atomic (atomic): Likewise.
  7209. (atomic::atomic()): Remove noexcept-specifier on default constructor.
  7210. * include/std/version (__cpp_lib_atomic_value_initialization): Define.
  7211. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
  7212. number.
  7213. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
  7214. * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
  7215. * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
  7216. * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
  7217. expected result for is_trivially_default_constructible.
  7218. * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
  7219. * testsuite/29_atomics/atomic_float/value_init.cc: New test.
  7220. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
  7221. * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
  7222. * testsuite/29_atomics/atomic_integral/cons/value_init.cc
  7223. * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
  7224. expected results for is_trivially_default_constructible.
  7225. * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
  7226. new test generator.
  7227. 2020-01-10 Jonathan Wakely <jwakely@redhat.com>
  7228. * testsuite/util/testsuite_iterators.h: Improve comment.
  7229. * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
  7230. initialization syntax.
  7231. PR libstdc++/92285
  7232. * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
  7233. of base class independent of __cplusplus value.
  7234. [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
  7235. type defined in the base class
  7236. * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
  7237. * testsuite/24_iterators/istreambuf_iterator/requirements/
  7238. base_classes.cc: Adjust expected base class for C++98.
  7239. 2020-01-09 Olivier Hainque <hainque@adacore.com>
  7240. * doc/xml/manual/appendix_contributing.xml: Document _C2
  7241. as a reserved identifier, by VxWorks.
  7242. * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
  7243. * include/bits/stl_multimap.h: Likewise.
  7244. 2020-01-09 Jonathan Wakely <jwakely@redhat.com>
  7245. * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
  7246. (_ExtPtr_allocator::operator!=): Add missing const qualifiers.
  7247. * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
  7248. partial specialization to disambiguate the two constrained
  7249. specializations.
  7250. * include/experimental/type_traits (experimental::is_pod_v): Disable
  7251. -Wdeprecated-declarations warnings around reference to std::is_pod.
  7252. * include/std/type_traits (is_pod_v): Likewise.
  7253. * testsuite/18_support/max_align_t/requirements/2.cc: Also check
  7254. is_standard_layout and is_trivial. Do not check is_pod for C++20.
  7255. * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
  7256. Add -Wno-deprecated for C++20.
  7257. * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
  7258. * testsuite/20_util/is_pod/value.cc: Likewise.
  7259. * testsuite/experimental/type_traits/value.cc: Likewise.
  7260. 2020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
  7261. * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
  7262. * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
  7263. * testuite/20_util/is_pod/deprecated-2a.cc: New test.
  7264. 2020-01-09 Jonathan Wakely <jwakely@redhat.com>
  7265. PR libstdc++/93205
  7266. * include/bits/random.h (operator>>): Check stream operation succeeds.
  7267. * include/bits/random.tcc (operator<<): Remove redundant __ostream_type
  7268. typedefs.
  7269. (operator>>): Remove redundant __istream_type typedefs. Check stream
  7270. operations succeed.
  7271. (__extract_params): New function to fill a vector from a stream.
  7272. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
  7273. PR libstdc++/93208
  7274. * config/abi/pre/gnu.ver: Add new exports.
  7275. * include/std/memory_resource (memory_resource::~memory_resource()):
  7276. Do not define inline.
  7277. (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
  7278. * src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
  7279. Define.
  7280. (monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
  7281. * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
  7282. 2020-01-09 François Dumont <fdumont@gcc.gnu.org>
  7283. PR libstdc++/92124
  7284. * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
  7285. template alias.
  7286. (_Hashtable<>::__fwd_value_for): New.
  7287. (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
  7288. parameter.
  7289. (_Hashtable<>::_M_assign<>): Add _Ht template parameter.
  7290. (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
  7291. (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
  7292. with std::move.
  7293. (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
  7294. (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
  7295. Adapt.
  7296. (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
  7297. Adapt.
  7298. * testsuite/23_containers/unordered_set/92124.cc: New.
  7299. 2020-01-08 Jonathan Wakely <jwakely@redhat.com>
  7300. PR libstdc++/93201
  7301. * src/c++17/fs_ops.cc (do_remove_all): New function implementing more
  7302. detailed error reporting for remove_all. Check result of recursive
  7303. call before incrementing iterator.
  7304. (remove_all(const path&), remove_all(const path&, error_code&)): Use
  7305. do_remove_all.
  7306. * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
  7307. result of recursive call before incrementing iterator.
  7308. * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
  7309. are reported correctly.
  7310. * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
  7311. 2020-01-07 Thomas Rodgers <trodgers@redhat.com>
  7312. * include/std/condition_variable
  7313. (condition_variable_any::wait_on): Rename to match current draft
  7314. standard.
  7315. (condition_variable_any::wait_on_until): Likewise.
  7316. (condition_variable_any::wait_on_for): Likewise.
  7317. * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
  7318. Adjust tests to account for renamed methods.
  7319. 2020-01-07 François Dumont <fdumont@gcc.gnu.org>
  7320. PR libstdc++/92124
  7321. * include/bits/stl_tree.h
  7322. (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
  7323. std::move_if_noexcept by std::move.
  7324. * testsuite/23_containers/map/92124.cc: New.
  7325. * testsuite/23_containers/set/92124.cc: New.
  7326. 2020-01-06 Jonathan Wakely <jwakely@redhat.com>
  7327. * include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
  7328. (stop_source): Likewise (LWG 3362).
  7329. * testsuite/30_threads/stop_token/stop_source.cc: Test equality
  7330. comparisons.
  7331. * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
  7332. (lexicographical_compare_three_way): Do not depend on
  7333. __cpp_lib_concepts.
  7334. * include/std/version (__cpp_lib_three_way_comparison): Only define
  7335. when __cpp_lib_concepts is defined.
  7336. * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
  7337. 2020-01-03 Jonathan Wakely <jwakely@redhat.com>
  7338. * include/bits/stl_algobase.h (lexicographical_compare_three_way):
  7339. Only define four-argument overload when __cpp_lib_concepts is defined.
  7340. 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
  7341. * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
  7342. 2020-01-01 Jakub Jelinek <jakub@redhat.com>
  7343. Update copyright years.
  7344. Copyright (C) 2020 Free Software Foundation, Inc.
  7345. Copying and distribution of this file, with or without modification,
  7346. are permitted in any medium without royalty provided the copyright
  7347. notice and this notice are preserved.