ChangeLog-2018 269 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185
  1. 2018-12-23 François Dumont <fdumont@gcc.gnu.org>
  2. * libstdc++-v3/testsuite/util/testsuite_allocator.h
  3. (CustomPointerAlloc<>::allocate(size_t, pointer)): Replace by...
  4. (CustomPointerAlloc<>::allocate(size_t, const_void_pointer)): ...this.
  5. Respect pointer_traits on node deallocation in _ReuseOrAllocNode
  6. parenthesis operator.
  7. * include/bits/hashtable_policy.h
  8. (_Hashtable_alloc<>::_M_deallocate_node_ptr(__node_type*)): New.
  9. (_Hashtable_alloc<>::_M_deallocate_node(__node_type*)): Use latter.
  10. (_ReuseOrAllocNode<>::operator<_Arg>()(_Arg&&)): Likewise.
  11. 2018-12-22 Iain Sandoe <iain@sandoe.co.uk>
  12. * /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
  13. 2018-12-20 Jonathan Wakely <jwakely@redhat.com>
  14. * testsuite/27_io/filesystem/operations/proximate.cc: Fix test for
  15. MinGW.
  16. * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
  17. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
  18. * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test
  19. (missed from previous commit).
  20. 2018-12-19 Jonathan Wakely <jwakely@redhat.com>
  21. * doc/xml/manual/abi.xml: Add missing word.
  22. 2018-12-18 Jonathan Wakely <jwakely@redhat.com>
  23. * include/bits/fs_dir.h (operator<<): Overload for directory_entry,
  24. as per LWG 3171.
  25. * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test.
  26. * src/filesystem/std-dir.cc (filesystem::_Dir::advance): Move new
  27. path instead of copying.
  28. * src/filesystem/std-dir.cc (filesystem::_Dir::advance): Append
  29. string to lvalue to avoid creating temporary path.
  30. * include/bits/fs_path.h (path::compare(const string_type&))
  31. (path::compare(const value_type*)): Add noexcept and construct a
  32. string view to compare to instead of a path.
  33. (path::compare(basic_string_view<value_type>)): Add noexcept. Remove
  34. inline definition.
  35. * src/filesystem/std-path.cc (path::_Parser): Track last type read
  36. from input.
  37. (path::_Parser::next()): Return a final empty component when the
  38. input ends in a non-root directory separator.
  39. (path::_M_append(basic_string_view<value_type>)): Remove special cases
  40. for trailing non-root directory separator.
  41. (path::_M_concat(basic_string_view<value_type>)): Likewise.
  42. (path::compare(const path&)): Implement LWG 2936.
  43. (path::compare(basic_string_view<value_type>)): Define in terms of
  44. components returned by parser, consistent with LWG 2936.
  45. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: New.
  46. * testsuite/27_io/filesystem/path/compare/path.cc: Test more cases.
  47. * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
  48. * include/std/string_view [__cplusplus > 201703L]
  49. (basic_string_view::starts_with(basic_string_view)): Implement
  50. proposed resolution of LWG 3040 to avoid redundant length check.
  51. (basic_string_view::starts_with(_CharT)): Implement proposed
  52. resolution of LWG 3040 to check at most one character.
  53. (basic_string_view::ends_with(_CharT)): Likewise.
  54. 2018-12-17 Jonathan Wakely <jwakely@redhat.com>
  55. PR libstdc++/71044
  56. * src/filesystem/std-path.cc (path::_M_append): Fix off-by-one error
  57. that caused a component to be lost from the iteration sequence.
  58. (path::_M_concat): Likewise.
  59. * testsuite/27_io/filesystem/path/append/source.cc: Test appending
  60. long strings.
  61. * testsuite/27_io/filesystem/path/concat/strings.cc: Test
  62. concatenating long strings.
  63. * testsuite/27_io/filesystem/path/construct/string_view.cc: Test
  64. construction from long string.
  65. 2018-12-13 Jonathan Wakely <jwakely@redhat.com>
  66. * src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
  67. control whether interpret paths with two slashes as a root-name.
  68. (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
  69. root-directory when appending to a root-name.
  70. (path::_M_append(basic_string_view<value_type>))
  71. [SLASHSLASH_IS_ROOT_NAME]: Likewise.
  72. (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
  73. (path::_M_concat(basic_string_view<value_type>))
  74. [SLASHSLASH_IS_ROOT_NAME]: Likewise.
  75. (path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
  76. of /= to add a root-directory to the result.
  77. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
  78. expected result for Cygwin.
  79. PR libstdc++/71044
  80. * include/bits/fs_path.h (path::path(path&&)): Add noexcept when
  81. appropriate. Move _M_cmpts instead of reparsing the native pathname.
  82. (path::operator=(const path&)): Do not define as defaulted.
  83. (path::operator/=, path::append): Call _M_append.
  84. (path::concat): Call _M_concat.
  85. (path::path(string_type, _Type): Change type of first parameter to
  86. basic_string_view<value_type>.
  87. (path::_M_append(basic_string_view<value_type>)): New member function.
  88. (path::_M_concat(basic_string_view<value_type>)): New member function.
  89. (_S_convert(value_type*, __null_terminated)): Return string view.
  90. (_S_convert(const value_type*, __null_terminated)): Return string view.
  91. (_S_convert(value_type*, value_type*))
  92. (_S_convert(const value_type*, const value_type*)): Add overloads for
  93. pairs of pointers.
  94. (_S_convert(_InputIterator, __null_terminated)): Construct string_type
  95. explicitly, for cases where _S_convert returns a string view.
  96. (path::_S_is_dir_sep): Replace with non-member is_dir_sep.
  97. (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
  98. (path::_M_add_filename): Remove.
  99. (path::_M_type()): New member function to replace _M_type data member.
  100. (path::_List): Define new struct type instead of using std::vector.
  101. (path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
  102. first parameter to basic_string_view<value_type>.
  103. (path::operator+=(const path&)): Do not define inline.
  104. (path::operator+=(const string_type&)): Call _M_concat.
  105. (path::operator+=(const value_type*)): Likewise.
  106. (path::operator+=(value_type)): Likewise.
  107. (path::operator+=(basic_string_view<value_type>)): Likewise.
  108. (path::operator/=(const path&)): Do not define inline.
  109. (path::_M_append(path)): Remove.
  110. * python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
  111. understands the new path::_List type.
  112. * src/filesystem/std-path.cc (is_dir_sep): New function to replace
  113. path::_S_is_dir_sep.
  114. (path::_Parser): New helper class to parse strings as paths.
  115. (path::_List::_Impl): Define container type for path components.
  116. (path::_List): Define members.
  117. (path::operator=(const path&)): Define explicitly, to provide the
  118. strong exception safety guarantee.
  119. (path::operator/=(const path&)): Implement manually by processing
  120. each component of the argument, rather than using _M_split_cmpts
  121. to parse the entire string again.
  122. (path::_M_append(string_type)): Likewise.
  123. (path::operator+=(const path&)): Likewise.
  124. (path::_M_concat(string_type)): Likewise.
  125. (path::remove_filename()): Perform trim directly instead of calling
  126. _M_trim().
  127. (path::_M_split_cmpts()): Rewrite in terms of _Parser class.
  128. (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
  129. (path::_M_add_filename): Remove.
  130. * testsuite/27_io/filesystem/path/append/source.cc: Test appending a
  131. string view that aliases the path.
  132. testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
  133. a string view that aliases the path.
  134. * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
  135. preferred directory separators for normalized paths.
  136. * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
  137. * testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for
  138. mingw.
  139. * testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if
  140. the Filesystem TS support is not configured.
  141. * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
  142. 2018-12-12 Jonathan Wakely <jwakely@redhat.com>
  143. PR libstdc++/71044 (partial)
  144. * include/bits/fs_path.h (__path_iter_distance, __path_iter_advance):
  145. New friend functions to implement std::distance and std::advance more
  146. efficiently.
  147. (distance, advance): Add overloads for path::iterator.
  148. * testsuite/27_io/filesystem/path/itr/components.cc: Test new
  149. overload.
  150. PR libstdc++/80762
  151. * include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void.
  152. * include/experimental/bits/fs_path.h (path::_Path): Likewise.
  153. * testsuite/27_io/filesystem/path/construct/80762.cc: New test.
  154. * testsuite/experimental/filesystem/path/construct/80762.cc: New test.
  155. 2018-12-12 Jakub Jelinek <jakub@redhat.com>
  156. P0595R2 - is_constant_evaluated
  157. * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED):
  158. Define if __builtin_is_constant_evaluated is available.
  159. * include/std/type_traits (std::is_constant_evaluated): New constexpr
  160. inline function.
  161. * testsuite/20_util/is_constant_evaluated/1.cc: New test.
  162. * testsuite/20_util/is_constant_evaluated/noexcept.cc: New test.
  163. 2018-12-10 Gerald Pfeifer <gerald@pfeifer.com>
  164. * doc/xml/manual/documentation_hacking.xml: Update reference
  165. to epubcheck.
  166. 2018-12-10 Jonathan Wakely <jwakely@redhat.com>
  167. * testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix
  168. test to use TS, not C++17.
  169. 2018-12-06 Iain Sandoe <iain@sandoe.co.uk>
  170. * scripts/make_exports.pl (check names): Don’t try to export
  171. construction vtable symbols.
  172. 2018-12-06 Jonathan Wakely <jwakely@redhat.com>
  173. Iain Sandoe <iain@sandoe.co.uk>
  174. PR libstdc++/64883
  175. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
  176. always_inline on Darwin.
  177. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
  178. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
  179. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
  180. * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
  181. 2018-12-03 Edward Smith-Rowland <3dw4rd@verizon.net>
  182. PR libstdc++/88341 - Complex norm doesn't compile with C++11
  183. * include/std/complex (_S_do_it): Make C++20 constexpr.
  184. * testsuite/26_numerics/complex/value_operations/pr88341.cc: New test.
  185. 2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net>
  186. Implement P0457R2 String Prefix and Suffix Checking.
  187. * include/bits/basic_string.h: Add starts_with, ends_with members.
  188. * include/std/string_view: Ditto.
  189. * testsuite/21_strings/basic_string/operations/starts_with/
  190. char/1.cc: New test.
  191. * testsuite/21_strings/basic_string/operations/starts_with/
  192. wchar_t/1.cc: New test.
  193. * testsuite/21_strings/basic_string/operations/ends_with/
  194. char/1.cc: New test.
  195. * testsuite/21_strings/basic_string/operations/ends_with/
  196. wchar_t/1.cc: New test.
  197. * testsuite/21_strings/basic_string_view/operations/starts_with/
  198. char/1.cc: New test.
  199. * testsuite/21_strings/basic_string_view/operations/starts_with/
  200. wchar_t/1.cc: New test.
  201. * testsuite/21_strings/basic_string_view/operations/ends_with/
  202. char/1.cc: New test.
  203. * testsuite/21_strings/basic_string_view/operations/ends_with/
  204. wchar_t/1.cc: New test.
  205. 2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net>
  206. Pre-emptively support P0646R1 for std container erasure.
  207. * include/bits/erase_if.h: Accumulate and return number of erased nodes.
  208. * include/std/forward_list (): Return number of erased items.
  209. * include/std/list (): Ditto.
  210. * include/std/map (): Ditto.
  211. * include/std/set (): Ditto.
  212. * include/std/string (): Ditto.
  213. * include/std/unordered_map (): Ditto.
  214. * include/std/unordered_set (): Ditto.
  215. * include/std/vector (): Ditto.
  216. * include/std/deque (): Ditto.
  217. * testsuite/21_strings/basic_string/erasure.cc: Test number of erasures.
  218. * testsuite/23_containers/deque/erasure.cc: Ditto.
  219. * testsuite/23_containers/forward_list/erasure.cc: Ditto.
  220. * testsuite/23_containers/list/erasure.cc: Ditto.
  221. * testsuite/23_containers/map/erasure.cc: Ditto.
  222. * testsuite/23_containers/set/erasure.cc: Ditto.
  223. * testsuite/23_containers/unordered_map/erasure.cc: Ditto.
  224. * testsuite/23_containers/unordered_set/erasure.cc: Ditto.
  225. * testsuite/23_containers/vector/erasure.cc: Ditto.
  226. 2018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net>
  227. Only include bits/stl_algo.h for C++20.
  228. * include/std/deque: Only include bits/stl_algo.h for C++20.
  229. * include/std/string: Ditto.
  230. * include/std/vector: Ditto.
  231. 2018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net>
  232. Fix erasure goofs.
  233. * include/experimental/deque: Make inline.
  234. * include/std/deque: Include bits/stl_algo.h.
  235. (erase, erase_if): Make inline.
  236. * include/std/string: Include bits/stl_algo.h.
  237. * include/std/unordered_set: Add erase, erase_if!
  238. * include/std/vector: Include bits/stl_algo.h.
  239. * testsuite/21_strings/basic_string/erasure.cc:
  240. Add { dg-options "-std=gnu++2a" }.
  241. * testsuite/23_containers/deque/erasure.cc: Ditto.
  242. * testsuite/23_containers/forward_list/erasure.cc: Ditto.
  243. * testsuite/23_containers/list/erasure.cc: Ditto.
  244. * testsuite/23_containers/map/erasure.cc: Ditto.
  245. * testsuite/23_containers/set/erasure.cc: Ditto.
  246. * testsuite/23_containers/unordered_map/erasure.cc: Ditto.
  247. * testsuite/23_containers/unordered_set/erasure.cc: Ditto.
  248. * testsuite/23_containers/vector/erasure.cc: Ditto.
  249. 2018-11-29 Jonathan Wakely <jwakely@redhat.com>
  250. PR libstdc++/88119
  251. * include/ext/aligned_buffer.h (__aligned_membuf): Add comment.
  252. (__aligned_buffer): Use __alignof__ instead of std::alignment_of.
  253. * include/std/type_traits (alignment_of): Use alignof instead of
  254. __alignof__.
  255. * testsuite/20_util/alignment_of/value.cc: Fix test to check values
  256. match alignof not __alignof__, as required by the standard.
  257. PR libstdc++/86910
  258. PR libstdc++/87846
  259. * src/filesystem/ops.cc (experimental::create_directories): Report
  260. an error when the path resolves to an existing non-directory (P1164).
  261. * src/filesystem/std-ops.cc (create_directories): Likewise. Handle
  262. empty filenames due to trailing slashes.
  263. * testsuite/27_io/filesystem/operations/create_directories.cc: Test
  264. when some component of the path exists and is not a directory. Test
  265. trailing slashes.
  266. * testsuite/experimental/filesystem/operations/create_directories.cc:
  267. Likewise.
  268. 2018-11-28 Jonathan Wakely <jwakely@redhat.com>
  269. PR libstdc++/83306
  270. * src/filesystem/path.cc (filesystem_error::_M_gen_what()): Create
  271. string directly, instead of calling fs_err_concat.
  272. PR libstdc++/83511
  273. * include/std/string_view (basic_string_view::substr): Add default
  274. argument to first parameter.
  275. * include/experimental/string_view (basic_string_view::substr):
  276. Likewise.
  277. * testsuite/21_strings/basic_string_view/operations/substr/char/
  278. 83511.cc: New test.
  279. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
  280. 83511.cc: New test.
  281. * testsuite/experimental/string_view/operations/substr/char/83511.cc:
  282. New test.
  283. * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc:
  284. New test.
  285. 2018-11-28 Edward Smith-Rowland <3dw4rd@verizon.net>
  286. Implement uniform container erasure for C++20.
  287. * include/Makefile.am: Move erase_if.h.
  288. * include/Makefile.in: Move erase_if.h.
  289. * include/experimental/bits/erase_if.h: Move ...
  290. * include/bits/erase_if.h: ... here.
  291. * include/experimental/map: Move erase_if.h.
  292. * include/experimental/set: Move erase_if.h.
  293. * include/experimental/unordered_map: Move erase_if.h.
  294. * include/experimental/unordered_set: Move erase_if.h.
  295. * include/std/deque (erase_if, erase): New functions.
  296. * include/std/forward_list: Ditto.
  297. * include/std/list: Ditto.
  298. * include/std/map: Ditto.
  299. * include/std/set: Ditto.
  300. * include/std/string: Ditto.
  301. * include/std/unordered_map: Ditto.
  302. * include/std/unordered_set: Ditto.
  303. * include/std/vector: Ditto.
  304. * testsuite/21_strings/basic_string/erasure.cc: New test.
  305. * testsuite/23_containers/deque/erasure.cc: New test.
  306. * testsuite/23_containers/forward_list/erasure.cc: New test.
  307. * testsuite/23_containers/list/erasure.cc: New test.
  308. * testsuite/23_containers/map/erasure.cc: New test.
  309. * testsuite/23_containers/set/erasure.cc: New test.
  310. * testsuite/23_containers/unordered_map/erasure.cc: New test.
  311. * testsuite/23_containers/unordered_set/erasure.cc: New test.
  312. * testsuite/23_containers/vector/erasure.cc: New test.
  313. 2018-11-28 Jonathan Wakely <jwakely@redhat.com>
  314. * doc/xml/manual/intro.xml: Document LWG 3096 change.
  315. * src/filesystem/std-path.cc (path::lexically_relative(const path&)):
  316. Treat a final empty element equivalently to a final dot element.
  317. * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks
  318. for the examples in the DR.
  319. PR libstdc++/83306
  320. * include/bits/fs_path.h (filesystem_error): Move data members into
  321. pimpl class owned by shared_ptr. Remove inline definitions of member
  322. functions.
  323. * src/filesystem/std-path.cc (filesystem_error::_Impl): Define.
  324. (filesystem_error): Define member functions.
  325. * testsuite/27_io/filesystem/filesystem_error/cons.cc: New test.
  326. * testsuite/27_io/filesystem/filesystem_error/copy.cc: New test.
  327. * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
  328. * doc/html/*: Regenerate.
  329. 2018-11-27 Jonathan Wakely <jwakely@redhat.com>
  330. * testsuite/27_io/filesystem/operations/canonical.cc: Remove
  331. directory created by test.
  332. * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove
  333. symlink created by test.
  334. PR libstdc++/67843
  335. * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro
  336. that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY.
  337. * config.h.in: Regenerate.
  338. * configure: Regenerate.
  339. * configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY.
  340. * doc/xml/manual/configure.xml: Document new configure option.
  341. * include/bits/fs_dir.h (directory_iterator): Use __shared_ptr
  342. instead of shared_ptr.
  343. (recursive_directory_iterator): Likewise.
  344. (__shared_ptr<_Dir>): Add explicit instantiation declaration.
  345. (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
  346. * include/bits/shared_ptr_base.h (__allocate_shared, __make_shared):
  347. Add default template argument for _Lock_policy template parameter.
  348. * include/ext/concurrence.h (__default_lock_policy): Check macro
  349. _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current
  350. target supports the builtins for compare-and-swap.
  351. * src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit
  352. instantiation definition.
  353. (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
  354. (directory_iterator, recursive_directory_iterator): Use __make_shared
  355. instead of make_shared.
  356. 2018-11-27 François Dumont <fdumont@gcc.gnu.org>
  357. PR libstdc++/88199
  358. * include/bits/hashtable.h (_Hashtable<>::_M_assign_elements): New.
  359. (_Hashtable<>::operator=(const _Hashtable&)): Use latter.
  360. (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Likewise.
  361. * testsuite/23_containers/unordered_set/allocator/move_assign.cc
  362. (test03): New.
  363. 2018-11-26 Jonathan Wakely <jwakely@redhat.com>
  364. * testsuite/26_numerics/complex/requirements/more_constexpr.cc: Fix
  365. failure on targets without __float128.
  366. 2018-11-23 Edward Smith-Rowland <3dw4rd@verizon.net>
  367. Implement P0415 More constexpr for std::complex.
  368. * include/std/complex (conj(complex<Tp>), norm(complex<Tp>)): Constexpr;
  369. (real(Tp), imag(Tp)): Constexpr;
  370. (operator@=(Tp), operator@=(complex<Tp>)): Constexpr;
  371. (operator@(Tp,complex<Tp>), operator@(complex<Tp>,Tp)
  372. operator@(complex<Tp>,complex<Tp>)): Constexpr.
  373. * testsuite/26_numerics/complex/comparison_operators/
  374. more_constexpr.cc: New test.
  375. * testsuite/26_numerics/complex/operators/more_constexpr.cc: New test.
  376. * testsuite/26_numerics/complex/requirements/
  377. more_constexpr.cc: New test.
  378. * testsuite/26_numerics/complex/value_operations/
  379. more_constexpr.cc: New test.
  380. * testsuite/26_numerics/headers/complex/synopsis.cc:
  381. Add _GLIBCXX20_CONSTEXPR to applicable operators; Add missing proj().
  382. * testsuite/26_numerics/headers/complex/synopsis.cc:
  383. Add _GLIBCXX20_CONSTEXPR to relevant decls.
  384. 2018-11-23 Martin Sebor <msebor@redhat.com>
  385. Jonathan Wakely <jwakely@redhat.com>
  386. PR libstdc++/65229
  387. * python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle
  388. exception thrown for std::bitset<0>.
  389. * testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>.
  390. 2018-11-23 Jonathan Wakely <jwakely@redhat.com>
  391. PR libstdc++/87308 (partial)
  392. * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
  393. work around PR 88166.
  394. * testsuite/libstdc++-prettyprinters/cxx17.cc: Test std::any
  395. containing a local type.
  396. 2018-11-22 Marc Glisse <marc.glisse@inria.fr>
  397. PR libstdc++/87106
  398. * include/bits/stl_algobase.h: Include <type_traits>.
  399. (__niter_base): Add noexcept specification.
  400. * include/bits/stl_deque.h: Include <bits/stl_uninitialized.h>.
  401. (__is_trivially_relocatable): Specialize for deque.
  402. * include/bits/stl_iterator.h: Include <type_traits>.
  403. (__niter_base): Add noexcept specification.
  404. * include/bits/stl_uninitialized.h (__is_trivially_relocatable):
  405. Add parameter for meta-programming.
  406. (__relocate_a_1, __relocate_a): Add noexcept specification.
  407. * include/bits/stl_vector.h (__use_relocate): Test __relocate_a.
  408. 2018-11-22 Jonathan Wakely <jwakely@redhat.com>
  409. PR libstdc++/85930
  410. PR libstdc++/87520
  411. * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti)
  412. [__cpp_rtti]: Define even when RTTI is enabled. Use array of
  413. sizeof(type_info) so that type-punned reference binds to an object
  414. of the correct size as well as correct alignment.
  415. (_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for
  416. _S_ti() reference even when RTTI is enabled.
  417. (__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...))
  418. [__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag).
  419. 2018-11-21 Jakub Jelinek <jakub@redhat.com>
  420. PR c++/87386
  421. * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected
  422. line.
  423. * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
  424. * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
  425. * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
  426. * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
  427. * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
  428. * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
  429. 2018-11-21 Jonathan Wakely <jwakely@redhat.com>
  430. PR libstdc++/88111
  431. * include/std/memory_resource (pool_options): Add Doxygen comments.
  432. * src/c++17/memory_resource.cc (pool_sizes): Only use suitable values
  433. on targets with 16-bit or 20-bit size_t type.
  434. (munge_options): Make default values depend on width of size_t type.
  435. PR libstdc++/88113
  436. * src/c++17/memory_resource.cc (bitset::size_type): Use the smaller
  437. of uint32_t and size_t.
  438. (bitset::size(), bitset::free(), bitset::update_next_word())
  439. (bitset::max_blocks_per_chunk(), bitset::max_word_index()): Use
  440. size_type consistently instead of size_t.
  441. (chunk): Adjust static_assert checking sizeof(chunk).
  442. 2018-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
  443. Housekeeping for the effective targets of optional's tests.
  444. * testsuite/20_util/optional/77288.cc: Adjust.
  445. * testsuite/20_util/optional/84601.cc: Likewise.
  446. * testsuite/20_util/optional/assignment/1.cc: Likewise.
  447. * testsuite/20_util/optional/assignment/2.cc: Likewise.
  448. * testsuite/20_util/optional/assignment/3.cc: Likewise.
  449. * testsuite/20_util/optional/assignment/4.cc: Likewise.
  450. * testsuite/20_util/optional/assignment/5.cc: Likewise.
  451. * testsuite/20_util/optional/assignment/6.cc: Likewise.
  452. * testsuite/20_util/optional/assignment/7.cc: Likewise.
  453. * testsuite/20_util/optional/assignment/8.cc: Likewise.
  454. * testsuite/20_util/optional/cons/77727.cc: Likewise.
  455. * testsuite/20_util/optional/cons/copy.cc: Likewise.
  456. * testsuite/20_util/optional/cons/deduction.cc: Likewise.
  457. * testsuite/20_util/optional/cons/default.cc: Likewise.
  458. * testsuite/20_util/optional/cons/move.cc: Likewise.
  459. * testsuite/20_util/optional/cons/trivial.cc: Likewise.
  460. * testsuite/20_util/optional/cons/value.cc: Likewise.
  461. * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
  462. * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
  463. * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
  464. * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
  465. * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
  466. * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
  467. * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
  468. * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
  469. * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
  470. * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
  471. * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
  472. * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
  473. * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
  474. * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
  475. * testsuite/20_util/optional/in_place.cc: Likewise.
  476. * testsuite/20_util/optional/make_optional.cc: Likewise.
  477. * testsuite/20_util/optional/nullopt.cc: Likewise.
  478. * testsuite/20_util/optional/observers/1.cc: Likewise.
  479. * testsuite/20_util/optional/observers/2.cc: Likewise.
  480. * testsuite/20_util/optional/observers/3.cc: Likewise.
  481. * testsuite/20_util/optional/observers/4.cc: Likewise.
  482. * testsuite/20_util/optional/observers/5.cc: Likewise.
  483. * testsuite/20_util/optional/observers/6.cc: Likewise.
  484. * testsuite/20_util/optional/relops/1.cc: Likewise.
  485. * testsuite/20_util/optional/relops/2.cc: Likewise.
  486. * testsuite/20_util/optional/relops/3.cc: Likewise.
  487. * testsuite/20_util/optional/relops/4.cc: Likewise.
  488. * testsuite/20_util/optional/relops/5.cc: Likewise.
  489. * testsuite/20_util/optional/relops/6.cc: Likewise.
  490. * testsuite/20_util/optional/relops/7.cc: Likewise.
  491. * testsuite/20_util/optional/requirements.cc: Likewise.
  492. * testsuite/20_util/optional/swap/1.cc: Likewise.
  493. * testsuite/20_util/optional/swap/2.cc: Likewise.
  494. * testsuite/20_util/optional/typedefs.cc: Likewise.
  495. 2018-11-19 François Dumont <fdumont@gcc.gnu.org>
  496. * include/ext/throw_allocator.h
  497. (annotate_base::insert(void*, size_t)): Use insert result to check for
  498. double insert attempt.
  499. (annotate_base::insert_construct(void*)): Likewise.
  500. (annotate_base::check_allocated(void*, size_t)): Return found iterator.
  501. (annotate_base::erase(void*, size_t)): Use latter method returned
  502. iterator.
  503. (annotate_base::check_constructed(void*, size_t)): Return found iterator.
  504. (annotate_base::erase_construct(void*)): Use latter method returned
  505. iterator.
  506. 2018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com>
  507. PR libstdc++/87855
  508. Also implement P0602R4 (variant and optional
  509. should propagate copy/move triviality) for std::optional.
  510. * include/std/optional (_Optional_payload): Change
  511. the main constraints to check constructibility in
  512. addition to assignability.
  513. (operator=): Make constexpr.
  514. (_M_reset): Likewise.
  515. (_M_construct): Likewise.
  516. (operator->): Likewise.
  517. * testsuite/20_util/optional/assignment/8.cc: Adjust.
  518. * testsuite/20_util/optional/assignment/9.cc: New.
  519. 2018-11-19 Jonathan Wakely <jwakely@redhat.com>
  520. PR libstdc++/88084 - Implement LWG 2777
  521. * include/std/string_view (basic_string_view::copy): Use traits to
  522. copy.
  523. * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
  524. New test.
  525. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
  526. New test.
  527. 2018-11-18 Michele Pezzutti <mpezz@tiscali.it>
  528. Edward Smith-Rowland <3dw4rd@verizon.net>
  529. PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000
  530. for high orders.
  531. * include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations
  532. of the asymptotic series (nu is the Bessel order).
  533. * testsuite/tr1/5_numerical_facilities/special_functions/
  534. 09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000.
  535. * testsuite/tr1/5_numerical_facilities/special_functions/
  536. 11_cyl_neumann/check_value.cc: Ditto.
  537. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto.
  538. * testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto.
  539. 2018-11-17 Jonathan Wakely <jwakely@redhat.com>
  540. Implement std::pmr::synchronized_pool_resource
  541. * config/abi/pre/gnu.ver: Add new symbols.
  542. * include/std/memory_resource [_GLIBCXX_HAS_GTHREADS]
  543. (__cpp_lib_memory_resource): Define to expected value, 201603.
  544. (synchronized_pool_resource): New class.
  545. [!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1.
  546. * include/std/shared_mutex (__glibcxx_rwlock_rdlock)
  547. (__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock)
  548. (__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock)
  549. (__glibcxx_rwlock_destroy, __glibcxx_rwlock_init)
  550. (__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define
  551. weak symbols for POSIX rwlock functions.
  552. (__shared_mutex_pthread): Use weak symbols.
  553. * include/std/version (__cpp_lib_memory_resource): Define.
  554. * src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS]
  555. (synchronized_pool_resource::_TPools): New class.
  556. (destroy_TPools): New function for pthread_key_create destructor.
  557. (synchronized_pool_resource::synchronized_pool_resource)
  558. (synchronized_pool_resource::~synchronized_pool_resource)
  559. (synchronized_pool_resource::release)
  560. (synchronized_pool_resource::do_allocate)
  561. (synchronized_pool_resource::do_deallocate): Define public members.
  562. (synchronized_pool_resource::_M_thread_specific_pools)
  563. (synchronized_pool_resource::_M_alloc_tpools)
  564. (synchronized_pool_resource::_M_alloc_shared_tpools): Define private
  565. members.
  566. * testsuite/20_util/synchronized_pool_resource/allocate.cc: New test.
  567. * testsuite/20_util/synchronized_pool_resource/cons.cc: New test.
  568. * testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test.
  569. * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New
  570. test.
  571. * testsuite/20_util/synchronized_pool_resource/release.cc: New test.
  572. * testsuite/performance/20_util/memory_resource/pools.cc: Add
  573. multithreaded tests using pmr::synchronized_pool_resource.
  574. 2018-11-16 Renlin Li <renlin.li@arm.com>
  575. Tejas Belagod <tejas.belagod@arm.com>
  576. testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc.
  577. (check_v3_target): Use the check_v3_target_prop_cached.
  578. 2018-11-15 Jonathan Wakely <jwakely@redhat.com>
  579. * scripts/check_performance: Allow tests to choose a -std flag.
  580. * src/c++17/memory_resource.cc (bitset::get_first_unset()): Use local
  581. variables of the right types. Call update_next_word() unconditionally.
  582. * testsuite/20_util/unsynchronized_pool_resource/cons.cc: New test.
  583. * testsuite/performance/20_util/memory_resource/pools.cc: New test.
  584. * testsuite/util/testsuite_performance.h (time_counter): Allow
  585. timer to be restarted.
  586. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix
  587. test for 32-bit targets. Test additional allocation sizes.
  588. 2018-11-14 Jonathan Wakely <jwakely@redhat.com>
  589. * scripts/create_testsuite_files: Add special_functions to the list
  590. of directories to search. Add comment referring to conformance.exp.
  591. * testsuite/libstdc++-dg/conformance.exp: Add comment referring
  592. to create_testsuite_files.
  593. 2018-11-13 Jonathan Wakely <jwakely@redhat.com>
  594. * src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one
  595. error when block_size is equal to one of the values in the array.
  596. * src/c++17/memory_resource.cc (_Pool::deallocate): Restore
  597. attributes to parameters that are only used in assertions.
  598. * src/c++17/memory_resource.cc (bitset::find_first_unset()): Remove
  599. unused function.
  600. (bitset::get_first_unset()): Remove loop, if there's are unset bits
  601. then _M_next_word refers to the first one and there's no need to loop.
  602. (_Pool::_Pool(size_t, size_t), _Pool::block_size()): Remove dead code.
  603. * src/c++17/memory_resource.cc (munge_options): Round up value of
  604. largest_required_pool_block to multiple of smallest pool size. Round
  605. excessively large values down to largest pool size.
  606. (select_num_pools): Increase number of pools by one unless it exactly
  607. matches requested largest_required_pool_block.
  608. (__pool_resource::_M_alloc_pools()): Make largest pool size equal
  609. largest_required_pool_block.
  610. * testsuite/20_util/unsynchronized_pool_resource/options.cc: Check
  611. that pool_options::largest_required_pool_block is set appropriately.
  612. * src/c++17/memory_resource.cc (big_block): Improve comments.
  613. (big_block::all_ones): Remove.
  614. (big_block::big_block(size_t, size_t)): Use alloc_size.
  615. (big_block::size()): Add comment, replace all_ones with equivalent
  616. expression.
  617. (big_block::align()): Shift value of correct type.
  618. (big_block::alloc_size(size_t)): New function to round up size.
  619. (__pool_resource::allocate(size_t, size_t)): Add comment.
  620. (__pool_resource::deallocate(void*, size_t, size_t)): Likewise. Fix
  621. incorrect assertion by using big_block::alloc_size(size_t).
  622. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Add
  623. more tests for unpooled allocations.
  624. * src/c++17/memory_resource.cc (bitset::full()): Handle edge case
  625. for _M_next_word maximum value.
  626. (bitset::get_first_unset(), bitset::set(size_type)): Use
  627. update_next_word() to update _M_next_word.
  628. (bitset::update_next_word()): New function, avoiding wraparound of
  629. unsigned _M_next_word member.
  630. (bitset::max_word_index()): New function.
  631. (chunk::chunk(void*, uint32_t, void*, size_t)): Add assertion.
  632. (chunk::max_bytes_per_chunk()): New function.
  633. (pool::replenish(memory_resource*, const pool_options&)): Prevent
  634. _M_blocks_per_chunk from exceeding max_blocks_per_chunk or from
  635. causing chunk::max_bytes_per_chunk() to be exceeded.
  636. * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
  637. New test.
  638. 2018-11-12 Jason Merrill <jason@redhat.com>
  639. * libsupc++/new (std::destroying_delete_t): New.
  640. 2018-11-12 Jonathan Wakely <jwakely@redhat.com>
  641. PR libstdc++/87963
  642. * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from
  643. unsigned to uint32_t.
  644. (chunk): Fix static assertion for 64-bit targets that aren't LP64.
  645. (bigblock::all_ones): Fix undefined shift.
  646. 2018-11-11 Hans-Peter Nilsson <hp@axis.com>
  647. PR libstdc++-v3/54005
  648. * include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
  649. __atomic_base<_PTp*>::is_lock_free()): Call __atomic_is_lock_free
  650. with the type-derived _S_alignment instead of __alignof the object.
  651. * include/std/atomic (atomic<T>::is_lock_free()): Likewise.
  652. 2018-11-11 Jonathan Wakely <jwakely@redhat.com>
  653. Implement P0318R1 unwrap_ref_decay and unwrap_reference
  654. * include/std/type_traits (unwrap_reference, unwrap_reference_t)
  655. (unwrap_ref_decay, unwrap_ref_decay_t): New traits and aliases.
  656. * testsuite/20_util/unwrap_reference/1.cc: New test.
  657. * testsuite/20_util/unwrap_reference/2.cc: New test.
  658. Implement P1007R3 std::assume_aligned
  659. * include/std/memory (assume_aligned): Implement for C++17.
  660. * testsuite/20_util/assume_aligned/1.cc: New test.
  661. * testsuite/20_util/assume_aligned/2_neg.cc: New test.
  662. * testsuite/20_util/assume_aligned/3.cc: New test.
  663. 2018-11-09 Jonathan Wakely <jwakely@redhat.com>
  664. PR libstdc++/87787
  665. * include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
  666. memmove when there's nothing to copy (and pointers could be null).
  667. 2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
  668. * configure: Regenerated.
  669. 2018-11-07 Jonathan Wakely <jwakely@redhat.com>
  670. * config/abi/pre/gnu.ver: Fix patterns for size_t parameters.
  671. 2018-11-06 Jonathan Wakely <jwakely@redhat.com>
  672. Implement std::pmr::unsynchronized_pool_resource
  673. * config/abi/pre/gnu.ver: Add new symbols.
  674. * include/std/memory_resource (std::pmr::__pool_resource): New class.
  675. (std::pmr::unsynchronized_pool_resource): New class.
  676. * src/c++17/Makefile.am: Add -fimplicit-templates to flags for
  677. memory_resource.cc
  678. * src/c++17/Makefile.in: Regenerate.
  679. * src/c++17/memory_resource.cc (bitset, chunk, big_block): New
  680. internal classes.
  681. (__pool_resource::_Pool): Define new class.
  682. (munge_options, pool_index, select_num_pools): New internal functions.
  683. (__pool_resource::__pool_resource, __pool_resource::~__pool_resource)
  684. (__pool_resource::allocate, __pool_resource::deallocate)
  685. (__pool_resource::_M_alloc_pools): Define member functions.
  686. (unsynchronized_pool_resource::unsynchronized_pool_resource)
  687. (unsynchronized_pool_resource::~unsynchronized_pool_resource)
  688. (unsynchronized_pool_resource::release)
  689. (unsynchronized_pool_resource::_M_find_pool)
  690. (unsynchronized_pool_resource::do_allocate)
  691. (unsynchronized_pool_resource::do_deallocate): Define member
  692. functions.
  693. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: New
  694. test.
  695. * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: New
  696. test.
  697. * testsuite/20_util/unsynchronized_pool_resource/options.cc: New
  698. test.
  699. * testsuite/20_util/unsynchronized_pool_resource/release.cc: New
  700. test.
  701. 2018-11-06 John Bytheway <jbytheway@gmail.com>
  702. PR libstdc++/87872
  703. * include/debug/safe_sequence.tcc
  704. (_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self.
  705. 2018-10-31 Joseph Myers <joseph@codesourcery.com>
  706. PR bootstrap/82856
  707. * Makefile.am: Include multilib.am.
  708. * configure.ac: Remove AC_PREREQ.
  709. * Makefile.in, aclocal.m4, configure, doc/Makefile.in,
  710. include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
  711. python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
  712. src/c++17/Makefile.in, src/c++98/Makefile.in,
  713. src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
  714. 2018-10-31 Jonathan Wakely <jwakely@redhat.com>
  715. * testsuite/20_util/pair/87822.cc: Test deeper nesting.
  716. PR libstdc++/87822
  717. * include/bits/stl_pair.h (__pair_base): Change to class template.
  718. (pair): Make base class type depend on template parameters.
  719. * testsuite/20_util/pair/87822.cc: New test.
  720. 2018-10-30 Marek Polacek <polacek@redhat.com>
  721. Implement P0892R2, explicit(bool).
  722. * testsuite/20_util/any/cons/explicit.cc: Adjust dg-error.
  723. * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
  724. * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
  725. 2018-10-30 Jonathan Wakely <jwakely@redhat.com>
  726. PR libstdc++/87809
  727. * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use
  728. trait in exception-specification instead of possibly invalid
  729. expression.
  730. * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
  731. Likewise.
  732. * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise.
  733. * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise.
  734. * testsuite/23_containers/forward_list/cons/87809.cc: New test.
  735. * testsuite/23_containers/list/cons/87809.cc: New test.
  736. * testsuite/23_containers/vector/bool/cons/87809.cc: New test.
  737. * testsuite/23_containers/vector/cons/87809.cc: New test.
  738. PR libstdc++/87784
  739. * include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there
  740. are no unused bits in the last block, append a new block with the
  741. right value so the bit doesn't need to be set. Only increment size
  742. after setting the new bit, not before.
  743. * testsuite/tr2/dynamic_bitset/pr87784.cc: New test.
  744. 2018-10-29 David Malcolm <dmalcolm@redhat.com>
  745. * testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove
  746. "expected namespace-name before" error.
  747. * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
  748. 2018-10-28 François Dumont <fdumont@gcc.gnu.org>
  749. * testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
  750. 'std' from regex pattern for versioned namespace compatibility.
  751. * testsuite/23_containers/vector/48101_neg.cc: Likewise.
  752. * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
  753. 2018-10-25 Jonathan Wakely <jwakely@redhat.com>
  754. PR libstdc++/87749
  755. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  756. (basic_string::operator=(basic_string&&)): For short strings copy the
  757. buffer inline. Only fall back to using assign(const basic_string&) to
  758. do a deep copy when reallocation is needed.
  759. * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
  760. New test.
  761. * testsuite/21_strings/basic_string/modifiers/assign/char/
  762. move_assign_optim.cc: New test.
  763. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
  764. New test.
  765. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
  766. move_assign_optim.cc: New test.
  767. 2018-10-25 Marc Glisse <marc.glisse@inria.fr>
  768. PR libstdc++/87106
  769. * include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
  770. destroy): Add noexcept specification.
  771. * include/bits/allocator.h (construct, destroy): Likewise.
  772. * include/ext/alloc_traits.h (construct, destroy): Likewise.
  773. * include/ext/malloc_allocator.h (construct, destroy): Likewise.
  774. * include/ext/new_allocator.h (construct, destroy): Likewise.
  775. * include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
  776. __relocate_a_1): New functions.
  777. (__is_trivially_relocatable): New class.
  778. * include/bits/stl_vector.h (__use_relocate): New static member.
  779. * include/bits/vector.tcc (reserve, _M_realloc_insert,
  780. _M_default_append): Use __relocate_a.
  781. (reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
  782. _M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
  783. after _Destroy.
  784. * testsuite/23_containers/vector/modifiers/push_back/49836.cc:
  785. Replace CopyConsOnlyType with DelAnyAssign.
  786. 2018-10-24 François Dumont <fdumont@gcc.gnu.org>
  787. * include/debug/safe_unordered_container.h
  788. (_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
  789. parameter type from local end variable.
  790. (_Safe_unordered_container<>::_M_invalidate_all): Likewise.
  791. * include/debug/unordered_map
  792. (unordered_map<>::begin()): Use C++11 direct initialization.
  793. (unordered_map<>::end()): Likewise.
  794. (unordered_map<>::cbegin()): Likewise.
  795. (unordered_map<>::cend()): Likewise.
  796. (unordered_map<>::begin(size_type)): Likewise.
  797. (unordered_map<>::end(size_type)): Likewise.
  798. (unordered_map<>::cbegin(size_type)): Likewise.
  799. (unordered_map<>::cend(size_type)): Likewise.
  800. (unordered_map<>::emplace<>(_Args&&...)): Likewise.
  801. (unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  802. (unordered_map<>::insert(const value_type&)): Likewise.
  803. (unordered_map<>::insert(value_type&&)): Likewise.
  804. (unordered_map<>::insert<>(_Pair&&)): Likewise.
  805. (unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
  806. (unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
  807. (unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
  808. (unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
  809. (unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
  810. (unordered_map<>::try_emplace<>(const_iterator, const key_type&,
  811. _Args&&...)): Likewise.
  812. (unordered_map<>::try_emplace<>(const_iterator, key_type&&,
  813. _Args&&...)): Likewise.
  814. (unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
  815. (unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
  816. (unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
  817. _Obj&&)): Likewise.
  818. (unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
  819. _Obj&&)): Likewise.
  820. (unordered_map<>::insert(note_type&&)): Likewise.
  821. (unordered_map<>::find(const key_type&)): Likewise.
  822. (unordered_map<>::equal_range(const key_type&)): Likewise.
  823. (unordered_map<>::_M_extract): New.
  824. (unordered_map<>::extract(const_iterator)): Use latter.
  825. (unordered_map<>::extract(const key_type&)): Likewise.
  826. (unordered_map<>::_M_erase): New.
  827. (unordered_map<>::erase(const key_type&)): Use latter.
  828. (unordered_map<>::erase(const_iterator)): Likewise.
  829. (unordered_map<>::erase(iterator)): Likewise.
  830. (unordered_map<>::_M_invalidate): New.
  831. (unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
  832. (unordered_multimap<>::begin()): Use C++11 direct initialization.
  833. (unordered_multimap<>::end()): Likewise.
  834. (unordered_multimap<>::cbegin()): Likewise.
  835. (unordered_multimap<>::cend()): Likewise.
  836. (unordered_multimap<>::begin(size_type)): Likewise.
  837. (unordered_multimap<>::end(size_type)): Likewise.
  838. (unordered_multimap<>::cbegin(size_type)): Likewise.
  839. (unordered_multimap<>::cend(size_type)): Likewise.
  840. (unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
  841. (unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  842. (unordered_multimap<>::insert(const value_type&)): Likewise.
  843. (unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
  844. (unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
  845. (unordered_multimap<>::insert<>(_Pair&&)): Likewise.
  846. (unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
  847. (unordered_multimap<>::insert(note_type&&)): Likewise.
  848. (unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
  849. (unordered_multimap<>::find(const key_type&)): Likewise.
  850. (unordered_multimap<>::equal_range(const key_type&)): Likewise.
  851. (unordered_multimap<>::_M_extract): New.
  852. (unordered_multimap<>::extract(const_iterator)): Use latter.
  853. (unordered_multimap<>::extract(const key_type&)): Likewise.
  854. (unordered_multimap<>::_M_erase): New.
  855. (unordered_multimap<>::erase(const_iterator)): Likewise.
  856. (unordered_multimap<>::erase(iterator)): Likewise.
  857. (unordered_multimap<>::_M_invalidate): New.
  858. (unordered_multimap<>::erase(const key_type&)): Use latter.
  859. (unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
  860. * include/debug/unordered_set
  861. (unordered_set<>::begin()): Use C++11 direct initialization.
  862. (unordered_set<>::end()): Likewise.
  863. (unordered_set<>::cbegin()): Likewise.
  864. (unordered_set<>::cend()): Likewise.
  865. (unordered_set<>::begin(size_type)): Likewise.
  866. (unordered_set<>::end(size_type)): Likewise.
  867. (unordered_set<>::cbegin(size_type)): Likewise.
  868. (unordered_set<>::cend(size_type)): Likewise.
  869. (unordered_set<>::emplace<>(_Args&&...)): Likewise.
  870. (unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  871. (unordered_set<>::insert(const value_type&)): Likewise.
  872. (unordered_set<>::insert(value_type&&)): Likewise.
  873. (unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
  874. (unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
  875. (unordered_set<>::insert(note_type&&)): Likewise.
  876. (unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
  877. (unordered_set<>::find(const key_type&)): Likewise.
  878. (unordered_set<>::equal_range(const key_type&)): Likewise.
  879. (unordered_set<>::_M_extract): New.
  880. (unordered_set<>::extract(const_iterator)): Use latter.
  881. (unordered_set<>::extract(const key_type&)): Likewise.
  882. (unordered_set<>::_M_erase): New.
  883. (unordered_set<>::erase(const key_type&)): Use latter.
  884. (unordered_set<>::erase(const_iterator)): Likewise.
  885. (unordered_set<>::erase(iterator)): Likewise.
  886. (unordered_set<>::_M_invalidate): New.
  887. (unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
  888. (unordered_multiset<>::begin()): Use C++11 direct initialization.
  889. (unordered_multiset<>::end()): Likewise.
  890. (unordered_multiset<>::cbegin()): Likewise.
  891. (unordered_multiset<>::cend()): Likewise.
  892. (unordered_multiset<>::begin(size_type)): Likewise.
  893. (unordered_multiset<>::end(size_type)): Likewise.
  894. (unordered_multiset<>::cbegin(size_type)): Likewise.
  895. (unordered_multiset<>::cend(size_type)): Likewise.
  896. (unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
  897. (unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  898. (unordered_multiset<>::insert(const value_type&)): Likewise.
  899. (unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
  900. (unordered_multiset<>::insert(value_type&&)): Likewise.
  901. (unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
  902. (unordered_multiset<>::insert(node_type&&)): Likewise.
  903. (unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
  904. (unordered_multiset<>::find(const key_type&)): Likewise.
  905. (unordered_multiset<>::equal_range(const key_type&)): Likewise.
  906. (unordered_multiset<>::_M_extract): New.
  907. (unordered_multiset<>::extract(const_iterator)): Use latter.
  908. (unordered_multiset<>::extract(const key_type&)): Likewise.
  909. (unordered_multiset<>::_M_erase): New.
  910. (unordered_multiset<>::erase(const_iterator)): Likewise.
  911. (unordered_multiset<>::erase(iterator)): Likewise.
  912. (unordered_multiset<>::_M_invalidate): New.
  913. (unordered_multiset<>::erase(const key_type&)): Use latter.
  914. (unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
  915. * include/c_global/cstddef: Add versioned namespace.
  916. 2018-10-23 Jonathan Wakely <jwakely@redhat.com>
  917. PR libstdc++/87704
  918. * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
  919. not delegate to default constructor.
  920. (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
  921. * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
  922. 2018-10-20 François Dumont <fdumont@gcc.gnu.org>
  923. * testsuite/util/testsuite_containers.h
  924. (forward_members_unordered<>::forward_members_unordered
  925. (const value_type&)): Add local_iterator pre and post increment checks.
  926. * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.
  927. 2018-10-19 Jonathan Wakely <jwakely@redhat.com>
  928. * testsuite/23_containers/array/requirements/explicit_instantiation/
  929. 3.cc: Skip test when compiled with a -std=c++NN strict mode.
  930. * testsuite/23_containers/deque/requirements/explicit_instantiation/
  931. 3.cc: Likewise.
  932. * testsuite/23_containers/forward_list/requirements/
  933. explicit_instantiation/3.cc: Likewise.
  934. * testsuite/23_containers/list/requirements/explicit_instantiation/
  935. 3.cc: Likewise.
  936. * testsuite/23_containers/map/requirements/explicit_instantiation/
  937. 3.cc: Likewise.
  938. * testsuite/23_containers/multimap/requirements/explicit_instantiation/
  939. 3.cc: Likewise.
  940. * testsuite/23_containers/multiset/requirements/explicit_instantiation/
  941. 3.cc: Likewise.
  942. * testsuite/23_containers/set/requirements/explicit_instantiation/
  943. 3.cc: Likewise.
  944. * testsuite/23_containers/unordered_map/requirements/
  945. explicit_instantiation/3.cc: Likewise.
  946. * testsuite/23_containers/unordered_multimap/requirements/
  947. explicit_instantiation/3.cc: Likewise.
  948. * testsuite/23_containers/unordered_multiset/requirements/
  949. explicit_instantiation/3.cc: Likewise.
  950. * testsuite/23_containers/unordered_set/requirements/
  951. explicit_instantiation/3.cc: Likewise.
  952. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
  953. 3.cc: Likewise.
  954. * testsuite/23_containers/vector/requirements/explicit_instantiation/
  955. 3.cc: Likewise.
  956. * testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
  957. printed when __STRICT_ANSI__ is defined.
  958. * testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
  959. * testsuite/23_containers/list/48101_neg.cc: Likewise.
  960. * testsuite/23_containers/multiset/48101_neg.cc: Likewise.
  961. * testsuite/23_containers/set/48101_neg.cc: Likewise.
  962. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
  963. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
  964. * testsuite/23_containers/vector/48101_neg.cc: Likewise.
  965. * testsuite/23_containers/forward_list/requirements/
  966. explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
  967. extension.
  968. * testsuite/23_containers/list/requirements/explicit_instantiation/
  969. 5.cc [__STRICT_ANSI__]: Likewise.
  970. * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
  971. [__STRICT_ANSI__]: Likewise.
  972. * testsuite/23_containers/multimap/requirements/explicit_instantiation/
  973. 5.cc [__STRICT_ANSI__]: Likewise.
  974. * testsuite/23_containers/multiset/requirements/explicit_instantiation/
  975. 5.cc [__STRICT_ANSI__]: Likewise.
  976. * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
  977. [__STRICT_ANSI__]: Likewise.
  978. * testsuite/23_containers/unordered_map/requirements/debug_container.cc
  979. [__STRICT_ANSI__]: Likewise.
  980. * testsuite/23_containers/unordered_map/requirements/
  981. explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
  982. * testsuite/23_containers/unordered_multimap/requirements/
  983. explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
  984. * testsuite/23_containers/unordered_multiset/requirements/
  985. explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
  986. * testsuite/23_containers/unordered_set/requirements/
  987. explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
  988. * testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
  989. value type for the container.
  990. * testsuite/23_containers/forward_list/cons/14.cc: Likewise.
  991. * testsuite/23_containers/map/56613.cc: Likewise.
  992. * testsuite/23_containers/unordered_map/55043.cc: Likewise.
  993. * testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
  994. * testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
  995. Likewise.
  996. * testsuite/23_containers/unordered_map/allocator/minimal.cc:
  997. Likewise.
  998. * testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
  999. * testsuite/23_containers/unordered_map/allocator/move_assign.cc:
  1000. Likewise.
  1001. * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
  1002. Likewise.
  1003. * testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
  1004. * testsuite/23_containers/unordered_map/requirements/exception/
  1005. basic.cc: Likewise.
  1006. * testsuite/23_containers/unordered_map/requirements/exception/
  1007. generation_prohibited.cc: Likewise.
  1008. * testsuite/23_containers/unordered_map/requirements/exception/
  1009. propagation_consistent.cc: Likewise.
  1010. * testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
  1011. * testsuite/23_containers/unordered_multimap/allocator/copy.cc:
  1012. Likewise.
  1013. * testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
  1014. Likewise.
  1015. * testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
  1016. Likewise.
  1017. * testsuite/23_containers/unordered_multimap/allocator/move.cc:
  1018. Likewise.
  1019. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
  1020. Likewise.
  1021. * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
  1022. Likewise.
  1023. * testsuite/23_containers/unordered_multimap/requirements/exception/
  1024. basic.cc: Likewise.
  1025. * testsuite/23_containers/unordered_multimap/requirements/exception/
  1026. generation_prohibited.cc: Likewise.
  1027. * testsuite/23_containers/unordered_multimap/requirements/exception/
  1028. propagation_consistent.cc: Likewise.
  1029. * testsuite/23_containers/unordered_multimap/requirements/
  1030. explicit_instantiation/5.cc: Likewise.
  1031. * testsuite/ext/malloc_allocator/sanity.cc: Likewise.
  1032. * ext/special_functions/airy_ai/check_nan.cc: Skip test for
  1033. non-standard extension when a strict -std=c++NN dialect is used.
  1034. * ext/special_functions/airy_ai/check_value.cc: Likewise.
  1035. * ext/special_functions/airy_ai/compile.cc: Likewise.
  1036. * ext/special_functions/airy_bi/check_nan.cc: Likewise.
  1037. * ext/special_functions/airy_bi/check_value.cc: Likewise.
  1038. * ext/special_functions/airy_bi/compile.cc: Likewise.
  1039. * ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
  1040. * ext/special_functions/conf_hyperg/check_value.cc: Likewise.
  1041. * ext/special_functions/conf_hyperg/compile.cc: Likewise.
  1042. * ext/special_functions/hyperg/check_nan.cc: Likewise.
  1043. * ext/special_functions/hyperg/check_value.cc: Likewise.
  1044. * ext/special_functions/hyperg/compile.cc: Likewise.
  1045. * testsuite/23_containers/list/requirements/explicit_instantiation/
  1046. 5_c++0x.cc: Remove redundant test that is functionally identical to
  1047. the 5.cc test.
  1048. * testsuite/23_containers/map/requirements/explicit_instantiation/
  1049. 5_c++0x.cc: Likewise.
  1050. * testsuite/23_containers/multimap/requirements/explicit_instantiation/
  1051. 5_c++0x.cc: Likewise.
  1052. * testsuite/23_containers/multiset/requirements/explicit_instantiation/
  1053. 5_c++0x.cc: Likewise.
  1054. * testsuite/23_containers/set/requirements/explicit_instantiation/
  1055. 5_c++0x.cc: Likewise.
  1056. * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
  1057. _GLIBCXX_STD_A to refer to normal mode algorithms.
  1058. * testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
  1059. * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
  1060. whitespace.
  1061. * include/debug/map.h (map::erase(iterator)): Add abi-tag so that
  1062. C++11 version mangles differently from incompatible C++98 version.
  1063. * include/debug/multimap.h (multimap::erase(iterator)): Likewise.
  1064. * include/debug/multiset.h (multiset::erase(iterator))
  1065. (multiset::erase(const_iterator, const_iterator)): Likewise.
  1066. * include/debug/set.h (set::erase(iterator))
  1067. (multiset::erase(const_iterator, const_iterator)): Likewise.
  1068. 2018-10-18 Jonathan Wakely <jwakely@redhat.com>
  1069. * testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
  1070. failure when compiled without optimisation.
  1071. * testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
  1072. errors caused by C++17 std::pmr alias templates.
  1073. PR libstdc++/87642
  1074. * config/locale/gnu/monetary_members.cc
  1075. (moneypunct<char, true>::_M_initialize_moneypunct): Use
  1076. __narrow_multibyte_chars to convert multibyte thousands separators
  1077. to a single char.
  1078. * config/locale/gnu/numeric_members.cc
  1079. (numpunct<char>::_M_initialize_numpunct): Likewise.
  1080. (__narrow_multibyte_chars): New function.
  1081. PR libstdc++/87641
  1082. * include/bits/valarray_array.h (__valarray_sum): Use first element
  1083. to initialize accumulator instead of value-initializing it.
  1084. (__valarray_product<_Tp>): Move to ...
  1085. * src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
  1086. element to initialize accumulator.
  1087. (__valarray_product(const valarray<size_t>&)): Remove const_cast made
  1088. unnecessary by LWG 389.
  1089. * testsuite/26_numerics/valarray/87641.cc: New test.
  1090. 2018-10-18 François Dumont <fdumont@gcc.gnu.org>
  1091. Partial revert.
  1092. 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
  1093. * include/debug/list (list<>::cbegin()): Use C++11 direct
  1094. initialization.
  1095. (list<>::cend()): Likewise.
  1096. (list<>::erase(const_iterator, const_iterator)): Ensure consistent
  1097. iterator comparisons.
  1098. (list<>::splice(const_iterator, list&&, const_iterator,
  1099. const_iterator)): Likewise.
  1100. Partial revert.
  1101. 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
  1102. * include/debug/vector (vector<>::cbegin()): Use C++11 direct
  1103. initialization.
  1104. (vector<>::cend()): Likewise.
  1105. (vector<>::insert(const_iterator, const _Tp&)): Use consistent
  1106. iterator comparison.
  1107. (vector<>::erase(const_iterator)): Likewise.
  1108. (vector<>::erase(const_iterator, const_iterator)): Likewise.
  1109. 2018-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
  1110. PR libstdc++/87619
  1111. * include/std/variant (__select_index): Fix an off-by-one.
  1112. * testsuite/20_util/variant/87619.cc: New.
  1113. 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
  1114. * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
  1115. Fix default constructor to call correct function.
  1116. * testsuite/experimental/net/internet/address/v4/creation.cc: Do not
  1117. declare ip in global namespace, to avoid collision with struct ip
  1118. defined in <netinet/ip.h>.
  1119. * include/experimental/bits/net.h: Move versioned namespace macros
  1120. to correct location.
  1121. * include/experimental/buffer: Likewise.
  1122. * include/experimental/executor: Likewise.
  1123. * include/experimental/internet: Likewise.
  1124. * include/experimental/io_context: Likewise.
  1125. * include/experimental/netfwd: Likewise.
  1126. * include/experimental/socket: Likewise.
  1127. * include/experimental/timer: Likewise.
  1128. * config.h.in: Regenerate.
  1129. * configure: Regenerate.
  1130. * configure.ac: Check for headers used by Networking TS.
  1131. * include/experimental/executor: Include <condition_variable>
  1132. instead of <mutex>.
  1133. * include/experimental/internet: Use autoconf macros for available
  1134. headers. Include <sys/socket.h> for. Remove <cstring> and use
  1135. __builtin_memcpy and __builtin_strchr.
  1136. (resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
  1137. (address_v4::to_string, address_v6::to_string)
  1138. [!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
  1139. (basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
  1140. constructors report errors.
  1141. [!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
  1142. * include/experimental/io_context: Likewise.
  1143. * include/experimental/socket: Likewise.
  1144. [!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
  1145. not define nested types when relevant header not available.
  1146. (__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
  1147. an error.
  1148. (__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
  1149. (__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
  1150. (__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
  1151. Likewise.
  1152. (basic_socket::at_mark, basic_socket::shutdown)
  1153. (basic_socket::remote_endpoint, basic_socket::connect)
  1154. (basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
  1155. (basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
  1156. for <sys/ioctl.h> availability.
  1157. (basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
  1158. (basic_datagram_socket::receive, basic_datagram_socket::async_receive)
  1159. (basic_datagram_socket::receive_from)
  1160. (basic_datagram_socket::async_receive_from)
  1161. (basic_datagram_socket::send, basic_datagram_socket::async_send)
  1162. (basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
  1163. [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
  1164. (basic_stream_socket::receive, basic_stream_socket::async_receive)
  1165. (basic_stream_socket::send, basic_stream_socket::async_send)
  1166. [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
  1167. (basic_socket_acceptor::listen, basic_socket_acceptor::accept)
  1168. (basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
  1169. Likewise.
  1170. (basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
  1171. * testsuite/experimental/net/headers.cc: Remove dg-options.
  1172. * testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
  1173. with dg-do using effective target.
  1174. * testsuite/experimental/net/buffer/const.cc: Likewise.
  1175. * testsuite/experimental/net/buffer/creation.cc: Likewise.
  1176. * testsuite/experimental/net/buffer/mutable.cc: Likewise.
  1177. * testsuite/experimental/net/buffer/size.cc: Likewise.
  1178. * testsuite/experimental/net/buffer/traits.cc: Likewise.
  1179. * testsuite/experimental/net/execution_context/use_service.cc:
  1180. Likewise.
  1181. * testsuite/experimental/net/internet/address/v4/comparisons.cc:
  1182. Likewise.
  1183. * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
  1184. * testsuite/experimental/net/internet/address/v4/creation.cc:
  1185. Likewise.
  1186. * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
  1187. * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
  1188. * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
  1189. Likewise.
  1190. * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
  1191. Likewise.
  1192. * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
  1193. * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
  1194. * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
  1195. * include/experimental/socket (basic_socket::at_mark): Add missing
  1196. return.
  1197. * acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
  1198. (GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
  1199. Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
  1200. * config.h.in: Regenerate.
  1201. * configure: Regenerate.
  1202. * configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
  1203. GLIBCXX_CHECK_RANDOM_TR1.
  1204. crossconfig.m4: Likewise.
  1205. * include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
  1206. instead of _GLIBCXX_USE_RANDOM_TR1.
  1207. * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
  1208. 2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1209. * testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
  1210. * testsuite/experimental/net/internet/address/v4/comparisons.cc:
  1211. Add dg-add-options net_ts.
  1212. * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
  1213. * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
  1214. * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
  1215. * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
  1216. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
  1217. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
  1218. 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
  1219. * testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
  1220. diagnostic to account for quotes around 'constexpr'.
  1221. * testsuite/23_containers/deque/capacity/max_size.cc: Define static
  1222. variable.
  1223. * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
  1224. PR libstdc++/87618
  1225. * config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
  1226. * testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
  1227. optimisation to check constructor definition can be linked to.
  1228. * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
  1229. 2018-10-15 Jonathan Wakely <jwakely@redhat.com>
  1230. * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
  1231. account for change to glibc it_IT localedata (glibc bz#10797).
  1232. PR libstdc++/87587
  1233. * src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
  1234. 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
  1235. * include/debug/vector (vector<>::cbegin()): Use C++11 direct
  1236. initialization.
  1237. (vector<>::cend()): Likewise.
  1238. (vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
  1239. consistent iterator comparison.
  1240. (vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
  1241. (vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
  1242. Likewise.
  1243. (vector<>::erase(const_iterator)): Likewise.
  1244. (vector<>::erase(const_iterator, const_iterator)): Likewise.
  1245. 2018-10-12 Jonathan Wakely <jwakely@redhat.com>
  1246. Initial commit of Networking TS implementation.
  1247. * include/Makefile.am: Add new headers.
  1248. * include/Makefile.in: Regenerate.
  1249. * include/experimental/bits/net.h: New header for common
  1250. implementation details of Networking TS.
  1251. * include/experimental/buffer: New header.
  1252. * include/experimental/executor: New header.
  1253. * include/experimental/internet: New header.
  1254. * include/experimental/io_context: New header.
  1255. * include/experimental/net: New header.
  1256. * include/experimental/netfwd: New header.
  1257. * include/experimental/socket: New header.
  1258. * include/experimental/timer: New header.
  1259. * testsuite/experimental/net/buffer/arithmetic.cc: New test.
  1260. * testsuite/experimental/net/buffer/const.cc: New test.
  1261. * testsuite/experimental/net/buffer/creation.cc: New test.
  1262. * testsuite/experimental/net/buffer/mutable.cc: New test.
  1263. * testsuite/experimental/net/buffer/size.cc: New test.
  1264. * testsuite/experimental/net/buffer/traits.cc: New test.
  1265. * testsuite/experimental/net/execution_context/use_service.cc: New
  1266. test.
  1267. * testsuite/experimental/net/headers.cc: New test.
  1268. * testsuite/experimental/net/internet/address/v4/comparisons.cc: New
  1269. test.
  1270. * testsuite/experimental/net/internet/address/v4/cons.cc: New test.
  1271. * testsuite/experimental/net/internet/address/v4/creation.cc: New
  1272. test.
  1273. * testsuite/experimental/net/internet/address/v4/members.cc: New
  1274. test.
  1275. * testsuite/experimental/net/internet/resolver/base.cc: New test.
  1276. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
  1277. test.
  1278. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
  1279. test.
  1280. * testsuite/experimental/net/timer/waitable/cons.cc: New test.
  1281. * testsuite/experimental/net/timer/waitable/dest.cc: New test.
  1282. * testsuite/experimental/net/timer/waitable/ops.cc: New test.
  1283. PR libstdc++/77691
  1284. * include/experimental/memory_resource (__resource_adaptor_imp): Do
  1285. not allocate sizes smaller than alignment when relying on guaranteed
  1286. alignment.
  1287. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  1288. Adjust expected number of bytes allocated for alignof(max_align_t).
  1289. 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
  1290. * include/debug/forward_list
  1291. (forward_list<>::before_begin()): Use C++11 direct initialization.
  1292. (forward_list<>::begin()): Likewise.
  1293. (forward_list<>::end()): Likewise.
  1294. (forward_list<>::cbefore_begin()): Likewise.
  1295. (forward_list<>::cbegin()): Likewise.
  1296. (forward_list<>::cend()): Likewise.
  1297. (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
  1298. (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
  1299. (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
  1300. (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
  1301. Likewise.
  1302. (forward_list<>::insert_after(const_iterator, initializer_list<>)):
  1303. Likewise.
  1304. (forward_list<>::erase_after(const_iterator)): Likewise.
  1305. (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
  1306. and ensure consistent iterator comparison.
  1307. * include/bits/forward_list.h
  1308. (_Fwd_list_iterator<>::operator==): Replace member function with inline
  1309. friend.
  1310. (_Fwd_list_iterator<>::operator!=): Likewise.
  1311. (_Fwd_list_const_iterator<>::operator==): Likewise.
  1312. (_Fwd_list_const_iterator<>::operator!=): Likewise.
  1313. (operator==(const _Fwd_list_iterator<>&,
  1314. const _Fwd_list_const_iterator<>&)): Remove.
  1315. (operator!=(const _Fwd_list_iterator<>&,
  1316. const _Fwd_list_const_iterator<>&)): Remove.
  1317. (forward_list<>::_Node): Take typedef from base type.
  1318. (forward_list<>::iterator): Likewise.
  1319. (forward_list<>::const_iterator): Likewise.
  1320. 2018-10-11 Jonathan Wakely <jwakely@redhat.com>
  1321. PR libstdc++/80538
  1322. * src/c++11/thread.cc (this_thread::__sleep_for)
  1323. [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
  1324. Loop while sleep call is interrupted and until steady_clock
  1325. shows requested duration has elapsed.
  1326. (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
  1327. avoiding the usleep call.
  1328. * testsuite/30_threads/this_thread/60421.cc: Test repeated
  1329. signal interruptions.
  1330. * include/bits/allocator.h
  1331. (operator==(const allocator<_Tp>&, const allocator<_Tp>))
  1332. (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
  1333. with inline friends.
  1334. * include/ext/debug_allocator.h (operator==, operator!=): Replace
  1335. with inline friend functions that compare to rebound allocators.
  1336. * include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
  1337. * include/ext/new_allocator.h (operator==, operator!=): Likewise.
  1338. * testsuite/ext/debug_allocator/eq.cc: New test.
  1339. * testsuite/ext/ext_pointer/alloc_eq.cc: New test.
  1340. * testsuite/ext/malloc_allocator/eq.cc: New test.
  1341. * testsuite/ext/new_allocator/eq.cc: New test.
  1342. 2018-10-10 Jonathan Wakely <jwakely@redhat.com>
  1343. PR libstdc++/87544
  1344. * include/bits/stl_vector.h (vector::_S_max_size): Limit size to
  1345. PTRDIFF_MAX / sizeof(value_type).
  1346. * include/ext/malloc_allocator.h (malloc_allocator::max_size):
  1347. Likewise.
  1348. * include/ext/new_allocator.h (new_allocator::max_size): Likewise.
  1349. * testsuite/23_containers/vector/allocator/minimal.cc: Adjust
  1350. expected value for max_size().
  1351. * testsuite/23_containers/vector/capacity/87544.cc: New test.
  1352. 2018-10-09 François Dumont <fdumont@gcc.gnu.org>
  1353. * include/bits/stl_list.h
  1354. (_List_operator<>::operator==): Replace member function with inline
  1355. friend.
  1356. (_List_operator<>::operator!=): Likewise.
  1357. (_List_const_operator<>::operator==): Likewise.
  1358. (_List_const_operator<>::operator!=): Likewise.
  1359. (operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
  1360. Remove.
  1361. (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
  1362. Remove.
  1363. 2018-10-09 Jonathan Wakely <jwakely@redhat.com>
  1364. * include/bits/stringfwd.h (string, wstring, u16string, u32string):
  1365. Define typedefs outside of __cxx11 inline namespace.
  1366. * python/libstdcxx/v6/printers.py (register_type_printers): Also
  1367. register printers for typedefs in new location.
  1368. 2018-10-08 Jonathan Wakely <jwakely@redhat.com>
  1369. PR libstdc++/87538
  1370. * testsuite/experimental/functional/87538.cc: New test.
  1371. PR libstdc++/87538
  1372. * include/std/functional (_Not_fn::operator()): Check value of
  1373. __is_nothrow_invocable as well.
  1374. * testsuite/20_util/function_objects/not_fn/87538.cc: New test.
  1375. 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
  1376. * include/debug/list (list<>::cbegin()): Use C++11 direct
  1377. initialization.
  1378. (list<>::cend()): Likewise.
  1379. (list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
  1380. (list<>::insert(const_iterator, initializer_list<>)): Likewise.
  1381. (list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
  1382. (list<>::erase(const_iterator, const_iterator)): Ensure consistent
  1383. iterator comparisons.
  1384. (list<>::splice(const_iterator, list&&, const_iterator,
  1385. const_iterator)): Likewise.
  1386. 2018-10-05 François Dumont <fdumont@gcc.gnu.org>
  1387. * include/bits/stl_tree.h
  1388. (_Rb_tree_iterator<>::operator==): Make inline friend.
  1389. (_Rb_tree_iterator<>::operator!=): Likewise.
  1390. (_Rb_tree_const_iterator<>::operator==): Likewise.
  1391. (_Rb_tree_const_iterator<>::operator!=): Likewise.
  1392. (operator==(const _Rb_tree_iterator<>&,
  1393. const _Rb_tree_const_iterator&)): Remove.
  1394. (operator!=(const _Rb_tree_iterator<>&,
  1395. const _Rb_tree_const_iterator&)): Remove.
  1396. (operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
  1397. (operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
  1398. (operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
  1399. deprecate.
  1400. (operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
  1401. (operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
  1402. (operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
  1403. * include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
  1404. Compare __victim with _Base::cend().
  1405. * include/debug/multimap.h
  1406. (multimap<>::erase(const_iterator, const_iterator)): Likewise.
  1407. * include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
  1408. Compare __victim with _Base::cend().
  1409. * include/debug/multiset.h
  1410. (multiset<>::erase(const_iterator, const_iterator)): Likewise.
  1411. 2018-10-03 Jonathan Wakely <jwakely@redhat.com>
  1412. PR libstdc++/59439
  1413. * src/c++98/locale.cc (locale::locale(const locale&)): Bypass
  1414. reference count updates for the classic locale.
  1415. (locale::~locale()): Likewise.
  1416. (locale::operator=(const locale&)): Likewise.
  1417. * src/c++98/locale_init.cc (locale::locale()): Likewise.
  1418. (locale::global(const locale&)): Likewise.
  1419. 2018-10-03 François Dumont <fdumont@gcc.gnu.org>
  1420. * include/debug/map.h
  1421. (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
  1422. (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  1423. (map<>::insert(value_type&&)): Likewise.
  1424. (map<>::insert<>(_Pair&&)): Likewise.
  1425. (map<>::insert<>(const_iterator, _Pair&&)): Likewise.
  1426. (map<>::try_emplace): Likewise.
  1427. (map<>::insert_or_assign): Likewise.
  1428. (map<>::insert(node_type&&)): Likewise.
  1429. (map<>::insert(const_iterator, node_type&&)): Likewise.
  1430. (map<>::erase(const_iterator)): Likewise.
  1431. (map<>::erase(const_iterator, const_iterator)): Likewise.
  1432. * include/debug/multimap.h
  1433. (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
  1434. (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  1435. (multimap<>::insert<>(_Pair&&)): Likewise.
  1436. (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
  1437. (multimap<>::insert(node_type&&)): Likewise.
  1438. (multimap<>::insert(const_iterator, node_type&&)): Likewise.
  1439. (multimap<>::erase(const_iterator)): Likewise.
  1440. (multimap<>::erase(const_iterator, const_iterator)): Likewise.
  1441. * include/debug/set.h
  1442. (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
  1443. (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  1444. (set<>::insert(value_type&&)): Likewise.
  1445. (set<>::insert<>(const_iterator, value_type&&)): Likewise.
  1446. (set<>::insert(const_iterator, node_type&&)): Likewise.
  1447. (set<>::erase(const_iterator)): Likewise.
  1448. (set<>::erase(const_iterator, const_iterator)): Likewise.
  1449. * include/debug/multiset.h
  1450. (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
  1451. (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
  1452. (multiset<>::insert<>(value_type&&)): Likewise.
  1453. (multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
  1454. (multiset<>::insert(node_type&&)): Likewise.
  1455. (multiset<>::insert(const_iterator, node_type&&)): Likewise.
  1456. (multiset<>::erase(const_iterator)): Likewise.
  1457. (multiset<>::erase(const_iterator, const_iterator)): Likewise.
  1458. 2018-10-02 Marc Glisse <marc.glisse@inria.fr>
  1459. PR libstdc++/87258
  1460. * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
  1461. Rebuild _M_start with an explicit 0 offset.
  1462. 2018-10-02 Jonathan Wakely <jwakely@redhat.com>
  1463. * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
  1464. directly instead of get, as caller ensures correct index is used.
  1465. (holds_alternative, get, get_if): Remove redundant inline specifiers.
  1466. (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
  1467. 2018-10-02 Joseph Myers <joseph@codesourcery.com>
  1468. * testsuite/lib/libstdc++.exp (libstdc++_init): Use
  1469. -fno-show-column in default cxxflags.
  1470. 2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  1471. * config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
  1472. 2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
  1473. * doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
  1474. Custom Memory Allocation".
  1475. 2018-10-01 Jonathan Wakely <jwakely@redhat.com>
  1476. * doc/html/*: Regenerate.
  1477. 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
  1478. * doc/xml/manual/messages.xml: Switch link to www.oracle.com
  1479. to https.
  1480. 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
  1481. * doc/xml/manual/policy_data_structures_biblio.xml: Update
  1482. link to Microsoft Component Model Object Technologies.
  1483. 2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
  1484. * doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
  1485. site now uses https. Also omit the unnecessary trailing slash.
  1486. * doc/xml/gnu/gpl-3.0.xml: Ditto.
  1487. 2018-09-28 François Dumont <fdumont@gcc.gnu.org>
  1488. * include/debug/functions.h
  1489. (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
  1490. const _InputIter&, __true_type)): Use empty() rather than begin() ==
  1491. end().
  1492. 2018-09-25 Mike Crowe <mac@mcrowe.com>
  1493. * include/std/condition_variable (condition_variable::wait_for): Use
  1494. steady clock in overload that uses a predicate.
  1495. 2018-09-25 Jonathan Wakely <jwakely@redhat.com>
  1496. PR libstdc++/87431
  1497. * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
  1498. Avoid runtime test when all alternatives are scalars and so cannot
  1499. throw during initialization.
  1500. 2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
  1501. * doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
  1502. to https.
  1503. 2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
  1504. * doc/xml/manual/policy_data_structures_biblio.xml: Update link
  1505. to "Priority Queues and the STL".
  1506. 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
  1507. * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
  1508. https.
  1509. 2018-09-21 François Dumont <fdumont@gcc.gnu.org>
  1510. PR libstdc++/87135
  1511. * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
  1512. Use __builtin_floor to compute _M_next_resize.
  1513. * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
  1514. * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
  1515. Adapt.
  1516. 2018-09-21 Jonathan Wakely <jwakely@redhat.com>
  1517. * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
  1518. * testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
  1519. long double unconditionally, but use lower tolerance when
  1520. sizeof(long double) == sizeof(double).
  1521. 2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
  1522. * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
  1523. on arm*.
  1524. 2018-09-19 Jonathan Wakely <jwakely@redhat.com>
  1525. * include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
  1526. Remove __glibcxx_assert statements and use map::find instead of
  1527. map::operator[].
  1528. 2018-09-18 François Dumont <fdumont@gcc.gnu.org>
  1529. PR libstdc++/87135
  1530. * src/c++11/hashtable_c++0x.cc:
  1531. (_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
  1532. requested size, but not necessarily greater.
  1533. (_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
  1534. strictly greater than next resize threshold.
  1535. * testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
  1536. to validate that there is no rehash as long as number of insertion is
  1537. lower or equal to the reserved number of elements.
  1538. 2018-09-18 Jonathan Wakely <jwakely@redhat.com>
  1539. * include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
  1540. checking invocable condition.
  1541. (unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
  1542. here, where types must be complete. Pass pointer to deleter as an
  1543. rvalue.
  1544. * testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
  1545. 2018-09-13 Jonathan Wakely <jwakely@redhat.com>
  1546. * include/std/variant (variant) [__clang__]: Limit workaround to
  1547. Clang 7 and older.
  1548. 2018-09-11 Jonathan Wakely <jwakely@redhat.com>
  1549. PR libstdc++/87278
  1550. * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
  1551. remove_const.
  1552. * testsuite/20_util/shared_ptr/creation/87278.cc: New test.
  1553. Implement LWG 2905 changes to constrain unique_ptr constructors
  1554. * include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
  1555. check deleter type.
  1556. (unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
  1557. constructible constraint.
  1558. (unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
  1559. deleters of reference type and add move constructible constraint.
  1560. (unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
  1561. Disable for deleters of non-reference type. Define as deleted.
  1562. (unique_ptr<T[], D>): Likewise.
  1563. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
  1564. directives with unstable line numbers with dg-prune-output.
  1565. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
  1566. * testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
  1567. * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
  1568. Make deleter types invocable.
  1569. 2018-09-05 Jonathan Wakely <jwakely@redhat.com>
  1570. * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
  1571. 2018-09-03 Jonathan Wakely <jwakely@redhat.com>
  1572. PR libstdc++/78179
  1573. * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
  1574. that runs the long double part of hypot.cc.
  1575. * testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
  1576. tests unless TEST_HYPOT_LONG_DOUBLE is defined.
  1577. * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
  1578. Return raw pointer not allocator's pointer type.
  1579. (vector::_Temporary_value::_M_val): Use _M_ptr.
  1580. PR libstdc++/87194
  1581. * include/bits/stl_map.h
  1582. (map::map(initializer_list<value_type>, const Compare&, const Alloc&))
  1583. (map::map(initializer_list<value_type>, const Alloc&))
  1584. (map::map(InputIterator, InputIterator, const Alloc&))
  1585. (map::map(InputIterator, InputIterator))
  1586. (map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
  1587. (map::insert(InputIterator, InputIterator)):
  1588. Call _M_insert_range_unique instead of _M_insert_unique.
  1589. * include/bits/stl_multimap.h
  1590. (multimap::multimap(initializer_list<value_type>, const C&, const A&))
  1591. (multimap::multimap(initializer_list<value_type>, const A&))
  1592. (multimap::multimap(InputIterator, InputIterator, const A&))
  1593. (multimap::multimap(InputIterator, InputIterator))
  1594. (multimap::multimap(InputIterator, InputIterator, const C&, const A&))
  1595. (multimap::insert(InputIterator, InputIterator)): Call
  1596. _M_insert_range_equal instead of _M_insert_equal.
  1597. * include/bits/stl_multiset.h
  1598. (multiset::multiset(InputIterator, InputIterator))
  1599. (multiset::multiset(InputIterator, InputIterator, const C&, const A&))
  1600. (multiset::multiset(initializer_list<value_type>, const C&, const A&))
  1601. (multiset::multiset(initializer_list<value_type>, const A&))
  1602. (multiset::multiset(InputIterator, InputIterator, const A&))
  1603. (multiset::insert(InputIterator, InputIterator)): Call
  1604. _M_insert_range_equal instead of _M_insert_equal.
  1605. * include/bits/stl_set.h
  1606. (set::set(InputIterator, InputIterator))
  1607. (set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
  1608. (set::set(initializer_list<value_type>, const Compare&, const Alloc&))
  1609. (set::set(initializer_list<value_type>, const Alloc&))
  1610. (set::set(InputIterator, InputIterator, const Alloc&))
  1611. (set::insert(InputIterator, InputIterator)):
  1612. Call _M_insert_range_unique instead of _M_insert_unique.
  1613. * include/bits/stl_tree.h
  1614. [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
  1615. template for SFINAE constraints.
  1616. [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
  1617. constrained overloads that either insert or emplace, depending on
  1618. iterator's value_type.
  1619. [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
  1620. [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
  1621. (_Rb_tree::_M_insert_range_equal): New functions replacing range
  1622. versions of _M_insert_unique and _M_insert_equal.
  1623. (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
  1624. (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
  1625. * testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
  1626. * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
  1627. * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
  1628. * testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
  1629. PR libstdc++/78595
  1630. * include/bits/stl_map.h (map::insert(_Pair&&))
  1631. (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
  1632. * include/bits/stl_multimap.h (multimap::insert(_Pair&&))
  1633. (multimap::insert(const_iterator, _Pair&&)): Likewise.
  1634. * include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
  1635. (unordered_map::insert(const_iterator, _Pair&&))
  1636. (unordered_multimap::insert(_Pair&&))
  1637. (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
  1638. * testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
  1639. * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
  1640. * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
  1641. * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
  1642. test.
  1643. 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
  1644. * include/debug/safe_iterator.h
  1645. (_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
  1646. (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
  1647. New.
  1648. (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
  1649. ::_OtherSelf): New.
  1650. (_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
  1651. (_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
  1652. (_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
  1653. (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
  1654. ::operator+(difference_type)): Use latters, inline as friend.
  1655. (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
  1656. ::operator-(difference_type)): Likewise.
  1657. (operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1658. Likewise.
  1659. (operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1660. Likewise.
  1661. (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
  1662. (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1663. Likewise.
  1664. (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
  1665. (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1666. Likewise.
  1667. (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
  1668. (operator+(difference_type, const _Safe_iterator<>&)): Likewise.
  1669. (operator-(const _Safe_iterator<>&, difference_type)): Likewise.
  1670. * include/debug/safe_iterator.tcc
  1671. (_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
  1672. copy.
  1673. * include/debug/safe_local_iterator.h
  1674. (_Safe_local_iterator<_It, _Seq>::_Self): New.
  1675. (_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
  1676. (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
  1677. (operator==(const _Safe_local_iterator<>&,
  1678. const _Safe_local_iterator<>&)): Use latter, inline as friend.
  1679. (operator!=(const _Safe_local_iterator<>&,
  1680. const _Safe_local_iterator<>&)): Likewise.
  1681. * testsuite/util/testsuite_containers.h: Include utility.
  1682. (struct forward_members_unordered<_Tp, bool>): Remove 2nd template
  1683. parameter.
  1684. (forward_members_unordered<>::forward_members_unordered(value_type&)):
  1685. Add using namespace std::rel_ops.
  1686. Add iterator_concept_checks on local_iterator and const_local_iterator.
  1687. Add asserts on comparison between const_local_iterator and
  1688. local_iterator.
  1689. (struct forward_members_unordered<_Tp, false>): Remove partial
  1690. specialization.
  1691. * testsuite/23_containers/forward_list/types/1.cc: New.
  1692. * testsuite/23_containers/list/types/1.cc: New.
  1693. 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
  1694. * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
  1695. references.
  1696. 2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
  1697. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
  1698. Add dg-require-fileio.
  1699. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
  1700. Likewise.
  1701. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
  1702. Likewise.
  1703. * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
  1704. Likewise.
  1705. * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
  1706. Likewise.
  1707. * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
  1708. Likewise.
  1709. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
  1710. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
  1711. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
  1712. * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
  1713. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
  1714. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
  1715. Likewise.
  1716. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
  1717. Likewise.
  1718. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
  1719. Likewise.
  1720. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
  1721. Likewise.
  1722. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
  1723. Likewise.
  1724. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
  1725. Likewise.
  1726. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
  1727. Likewise.
  1728. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
  1729. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
  1730. * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
  1731. * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
  1732. * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
  1733. Likewise.
  1734. * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
  1735. Likewise.
  1736. * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
  1737. * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
  1738. * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
  1739. * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
  1740. * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
  1741. * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
  1742. * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
  1743. * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
  1744. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
  1745. Likewise.
  1746. * testsuite/27_io/objects/wchar_t/10.cc: Likewise.
  1747. * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
  1748. * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
  1749. * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
  1750. * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
  1751. * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
  1752. * testsuite/experimental/string_view/inserters/wchar_t/2.cc:
  1753. Likewise.
  1754. * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
  1755. 2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
  1756. * testsuite/experimental/propagate_const/observers/1.cc: Make
  1757. dependence on -fdelete-null-pointer-checks explicit.
  1758. 2018-08-30 Jonathan Wakely <jwakely@redhat.com>
  1759. * include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
  1760. targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
  1761. of the number of bits in the type.
  1762. * include/std/bit (__ceil2): Avoid undefined shifts.
  1763. * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
  1764. the most signifiant bit set.
  1765. * config/abi/pre/gnu.ver: Add missing exports for mingw.
  1766. * include/ext/pointer.h (_Pointer_adapter): Define operators for
  1767. pointer arithmetic using long long offsets.
  1768. * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
  1769. long long values.
  1770. 2018-08-29 Jonathan Wakely <jwakely@redhat.com>
  1771. PR libstdc++/31413
  1772. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
  1773. string for alternative format.
  1774. 2018-08-28 Jonathan Wakely <jwakely@redhat.com>
  1775. PR libstdc++/87116
  1776. * src/filesystem/std-path.cc (path::lexically_normal): When handling
  1777. a dot-dot filename, preserve an empty final component in the iteration
  1778. sequence.
  1779. [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
  1780. root-directory.
  1781. * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
  1782. for more than two adjacent dot-dot filenames.
  1783. [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
  1784. preferred-separator in expected normalized strings.
  1785. 2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
  1786. PR libstdc++/70694
  1787. * configure.host (OPT_LDFLAGS): Don't append
  1788. -fvisibility-inlines-hidden for newer Darwin.
  1789. 2018-08-24 Marc Glisse <marc.glisse@inria.fr>
  1790. PR libstdc++/86822
  1791. * libsupc++/new (operator new(size_t, nothrow_t), operator
  1792. new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
  1793. operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
  1794. 2018-08-24 Jonathan Wakely <jwakely@redhat.com>
  1795. * include/debug/deque (std::__debug::deque): Declare.
  1796. * include/debug/forward_list (std::__debug::forward_list): Declare.
  1797. * include/debug/list (std::__debug::list): Declare.
  1798. * include/debug/map (std::__debug::map): Declare.
  1799. * include/debug/set (std::__debug::set): Declare.
  1800. * include/debug/unordered_map (std::__debug::unordered_map): Declare.
  1801. * include/debug/unordered_set (std::__debug::unordered_set): Declare.
  1802. * include/debug/vector (std::__debug::vector): Declare.
  1803. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
  1804. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
  1805. test.
  1806. * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
  1807. * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
  1808. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
  1809. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
  1810. * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
  1811. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
  1812. test.
  1813. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
  1814. New test.
  1815. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
  1816. New test.
  1817. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
  1818. test.
  1819. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
  1820. Adjust dg-error lineno.
  1821. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
  1822. test.
  1823. 2018-08-23 Jonathan Wakely <jwakely@redhat.com>
  1824. * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
  1825. Only define when RTTI is enabled.
  1826. * include/debug/vector (__niter_base): Define for C++98.
  1827. * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
  1828. Fix C++98 test to not use C++11 features.
  1829. * testsuite/25_algorithms/fill_n/2.cc: Likewise.
  1830. * scripts/check_compile: Fix comments.
  1831. * include/debug/string (insert(__const_iterator, _InIter, _InIter)):
  1832. [!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
  1833. begin(), for C++98 compatibility.
  1834. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  1835. (basic_string::__const_iterator): Change access to protected.
  1836. [!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
  1837. as typedef for iterator.
  1838. * include/debug/string (__const_iterator): Use typedef from base.
  1839. (insert(const_iterator, _CharT))
  1840. (replace(const_iterator, const_iterator, const basic_string&))
  1841. (replace(const_iterator, const_iterator, const _CharT*, size_type))
  1842. (replace(const_iterator, const_iterator, const CharT*))
  1843. (replace(const_iterator, const_iterator, size_type, _CharT))
  1844. (replace(const_iterator, const_iterator, _InputIter, _InputIter))
  1845. (replace(const_iterator, const_iterator, initializer_list<_CharT>)):
  1846. Change const_iterator parameters to __const_iterator.
  1847. (insert(iterator, size_type, _CharT)): Add C++98 overload.
  1848. (insert(const_iterator, _InputIterator, _InputIterator)): Change
  1849. const_iterator parameter to __const_iterator.
  1850. [!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
  1851. of base's member function.
  1852. (insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
  1853. Likewise.
  1854. (insert(const_iterator, initializer_list<_CharT>))
  1855. [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
  1856. * testsuite/21_strings/basic_string/init-list.cc: Remove effective
  1857. target directive.
  1858. * testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
  1859. not use C++14 feature.
  1860. * testsuite/23_containers/list/68222_neg.cc: Likewise.
  1861. * testsuite/21_strings/basic_string/init-list.cc:
  1862. Require cxx11-abi.
  1863. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
  1864. Likewise.
  1865. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
  1866. Likewise.
  1867. * testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
  1868. C++98 mode.
  1869. * testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
  1870. * testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
  1871. * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
  1872. * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
  1873. * testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
  1874. 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
  1875. PR libstdc++/87061
  1876. * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
  1877. (experimental::pmr::match_results, experimental::pmr::cmatch)
  1878. (experimental::pmr::smatch, experimental::pmr::wcmatch)
  1879. (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
  1880. because COW strings don't support C++11 allocator model.
  1881. * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
  1882. (experimental::pmr::basic_string, experimental::pmr::string)
  1883. (experimental::pmr::u16string, experimental::pmr::u32string)
  1884. (experimental::pmr::wstring): Likewise.
  1885. * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
  1886. (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
  1887. * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
  1888. (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
  1889. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
  1890. cxx11-abi.
  1891. * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
  1892. PR libstdc++/78448
  1893. * include/bits/deque.tcc (deque::_M_range_initialize): Use
  1894. _S_check_init_len to check size.
  1895. (deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
  1896. error if size would exceed max_size().
  1897. * include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
  1898. (_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
  1899. size_t instead of size_type.
  1900. (deq(size_type, const allocator_type&)
  1901. (deq(size_type, const value_type&, const allocator_type&)
  1902. (deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
  1903. (deque::max_size): Call _S_max_size.
  1904. (deque::_S_check_init_len, deque::_S_max_size): New functions.
  1905. * include/bits/stl_vector.h (vector(size_type, const allocator_type&))
  1906. (vector(size_type, const value_type&, const allocator_type&))
  1907. (vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
  1908. _S_check_init_len to check size.
  1909. (vector::max_size): Call _S_max_size.
  1910. (vector::_M_check_len): Prevent max from being expanded as a
  1911. function-like macro.
  1912. (vector::_S_check_init_len, vector::_S_max_size): New functions.
  1913. * include/bits/vector.tcc (vector::_M_assign_aux): Use
  1914. _S_check_init_len to check size.
  1915. * testsuite/23_containers/deque/capacity/max_size.cc: New test.
  1916. * testsuite/23_containers/vector/capacity/max_size.cc: New test.
  1917. 2018-08-22 François Dumont <fdumont@gcc.gnu.org>
  1918. PR libstdc++/68222
  1919. * include/debug/safe_iterator.h
  1920. (_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
  1921. (_Safe_iterator<>::_Const_iterator): Remove.
  1922. (_Safe_iterator<>::_IsConstant): New.
  1923. (_Safe_iterator<>::_OtherIterator): New.
  1924. (_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
  1925. const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
  1926. __gnu_cxx::__enable_if condition.
  1927. (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
  1928. (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
  1929. (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
  1930. (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
  1931. (_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
  1932. (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
  1933. ::operator--()): ...here.
  1934. (_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
  1935. (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
  1936. ::operator--(int)): ...here.
  1937. (_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
  1938. (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
  1939. ::_M_decrementable()): ...here.
  1940. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
  1941. (_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
  1942. Move...
  1943. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
  1944. ::operator[](const difference_type&)): ...here.
  1945. (_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
  1946. Move...
  1947. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
  1948. ::operator+=(const difference_type&)): ...here.
  1949. (_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
  1950. Move...
  1951. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
  1952. ::operator+(const difference_type&)): ...here.
  1953. (_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
  1954. Move...
  1955. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
  1956. ::operator-=(const difference_type&)): ...here.
  1957. (_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
  1958. Move...
  1959. (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
  1960. ::operator-(const difference_type&)): ...here.
  1961. (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1962. Constraint to random access iterators.
  1963. (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1964. Likewise.
  1965. (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
  1966. (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  1967. Likewise.
  1968. (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
  1969. (operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
  1970. (__check_dereferenceable(const _Safe_iterator<>&)): Remove.
  1971. (__get_distance): Remove.
  1972. (__get_distance_from_begin): Remove.
  1973. (__get_distance_to_end): Remove.
  1974. (struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
  1975. specialization.
  1976. (__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
  1977. (__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
  1978. (__base(const _Safe_iterator<>&)): Constraint to random access iterator.
  1979. * include/debug/safe_iterator.tcc
  1980. (_Safe_iterator<>::_M_get_distance_from_begin()): New.
  1981. (_Safe_iterator<>::_M_get_distance_to_end()): New.
  1982. (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
  1983. (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
  1984. ::_M_valid_range): New.
  1985. * include/debug/safe_local_iterator.h
  1986. (_Safe_local_iterator<>::_Const_local_iterator): Remove.
  1987. (_Safe_local_iterator<>::_IsConstant): New.
  1988. (_Safe_local_iterator<>::_OtherIterator): New.
  1989. (_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
  1990. const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
  1991. in __gnu_cxx::__enable_if condition. If singular compare base iterator
  1992. with _MutIte rather than _It.
  1993. (_Safe_local_iterator<>::_S_constant): Make constexpr.
  1994. (_Safe_local_iterator<>::_M_get_distance_to): New.
  1995. (__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
  1996. (__get_distance(const _Safe_local_iterator<>&,
  1997. const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
  1998. (__valid_range(const _Safe_local_iterator<>&,
  1999. const _Safe_local_iterator<>&)): New.
  2000. * include/debug/safe_local_iterator.tcc
  2001. (_Safe_local_iterator<>::_M_get_distance_to): New.
  2002. * include/debug/deque (std::__debug::deque<>): Add
  2003. ::__gnu_debug::_Safe_iterator<> friend declaration.
  2004. * include/debug/forward_list (std::__debug::forward_list<>): Likewise.
  2005. * include/debug/list (std::__debug::list<>): Likewise.
  2006. * include/debug/map.h (std::__debug::map<>): Likewise.
  2007. * include/debug/multimap.h (std::__debug::multimap<>): Likewise.
  2008. * include/debug/set.h (std::__debug::set<>): Likewise.
  2009. * include/debug/multiset.h (std::__debug::multiset<>): Likewise.
  2010. * include/debug/string (std::__debug::basic_string<>): Likewise.
  2011. * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
  2012. and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
  2013. (std::__debug::unordered_multimap<>): Likewise.
  2014. * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
  2015. (std::__debug::unordered_multiset<>): Likewise.
  2016. * include/debug/formatter.h: Adapt.
  2017. * include/debug/helper_functions.h
  2018. (__gnu_debug::_Safe_local_iterator<>): Add declaration.
  2019. (__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
  2020. Pass parameter by copy.
  2021. (__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
  2022. (__get_distance<_Ite>(_Ite, _Ite): Likewise.
  2023. (__valid_range_aux<_Integral>): Pass _Integral by copy.
  2024. (__valid_range<_InputIterator>): Pass _InputIterator by copy.
  2025. (__valid_range<>(const _Safe_iterator<>&,
  2026. const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
  2027. Declare.
  2028. (__valid_range(const _Safe_local_iterator<>&,
  2029. const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
  2030. Declare.
  2031. (__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
  2032. Declare.
  2033. (__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
  2034. Declare.
  2035. (__can_advance): Adapt.
  2036. (struct __is_safe_random_iterator<>): Remove.
  2037. (struct _SIter_base<>): Remove.
  2038. * include/debug/functions.h: Include <bits/stl_iterator.h>.
  2039. (__check_dereferenceable): Remove.
  2040. (__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
  2041. (__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
  2042. (__foreign_iterator): Adapt.
  2043. * include/debug/stl_iterator.h
  2044. (__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
  2045. (__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
  2046. Constraint for random access iterators.
  2047. (__niter_base): Adapt.
  2048. * testsuite/util/testsuite_containers.h:
  2049. Include <bits/boost_concept_check.h>.
  2050. (iterator_concept_checks<_It, _Mutable, _Category>): New.
  2051. (citerator<_Cont>::forward_members::forward_members()): Instantiate
  2052. latter for container iterator and const_iterator.
  2053. * testsuite/23_containers/list/68222_neg.cc: New.
  2054. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
  2055. line number.
  2056. * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
  2057. (test01): Remove.
  2058. * testsuite/23_containers/vector/debug/debug_functions.cc (test01):
  2059. Remove.
  2060. 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
  2061. PR libstdc++/77854
  2062. * doc/xml/manual/status_cxx1998.xml: Document size_type and
  2063. difference_type for containers.
  2064. * doc/html/*: Regenerate.
  2065. 2018-08-21 François Dumont <fdumont@gcc.gnu.org>
  2066. P0646R1 Improving the Return Value of Erase-Like Algorithms I
  2067. * include/debug/forward_list (forward_list::__remove_return_type):
  2068. Define typedef as size_type or void, according to __cplusplus value.
  2069. (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
  2070. empty, according to __cplusplus value.
  2071. (_GLIBCXX20_ONLY): Define macro.
  2072. (forward_list::remove, forward_list::unique): Use typedef and macro
  2073. to change return type and add abi-tag for C++2a. Return number of
  2074. removed elements for C++2a.
  2075. (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
  2076. typedef to change return type for C++2a. Return number of removed
  2077. elements for C++2a.
  2078. * include/debug/list (list::__remove_return_type): Define typedef as
  2079. size_type or void, according to __cplusplus value.
  2080. (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
  2081. empty, according to __cplusplus value.
  2082. (_GLIBCXX20_ONLY): Define macro.
  2083. (list::remove, list::unique): Use typedef and macro to change return
  2084. type and add abi-tag for C++2a. Return number of removed elements for
  2085. C++2a.
  2086. (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
  2087. to change return type for C++2a. Return number of removed elements for
  2088. C++2a.
  2089. 2018-08-21 David Edelsohn <dje.gcc@gmail.com>
  2090. * testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
  2091. 2018-08-21 Jonathan Wakely <jwakely@redhat.com>
  2092. * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
  2093. redundant dg-do directive.
  2094. * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
  2095. * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
  2096. * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
  2097. * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
  2098. 2018-08-20 Jonathan Wakely <jwakely@redhat.com>
  2099. PR libstdc++/86963
  2100. * include/std/tuple (_Tuple_impl::operator=): Define as deleted.
  2101. (_Tuple_impl::_M_assign): New functions to perform assignment instead
  2102. of assignment operators.
  2103. (_Tuple_impl::_M_swap): Remove exception specification.
  2104. (_Tuple_impl<_Idx, _Head>): Likewise.
  2105. (_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
  2106. (__tuple_base): Remove.
  2107. (tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
  2108. (tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
  2109. (tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
  2110. using __is_nothrow_swappable.
  2111. (tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
  2112. * include/std/optional (_Optional_payload): Use variable templates
  2113. for conditions in default template arguments and exception
  2114. specifications.
  2115. (optional): Likewise. Adjust indentation.
  2116. (optional::__not_self, optional::__not_tag, optional::_Requires): New
  2117. SFINAE helpers.
  2118. (optional::optional): Use new helpers in constructor constraints.
  2119. * include/std/type_traits (__or_v, __and_v): New variable templates.
  2120. * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
  2121. dg-prune-output. Remove unused header.
  2122. 2018-08-18 François Dumont <fdumont@gcc.gnu.org>
  2123. * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
  2124. _GLIBCXX_DEBUG.
  2125. 2018-08-17 Jonathan Wakely <jwakely@redhat.com>
  2126. PR libstdc++/86963
  2127. * include/std/tuple (__tuple_base): New class template with deleted
  2128. copy assignment operator.
  2129. (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
  2130. implicit copy/move assignment operator will be deleted/suppressed.
  2131. (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
  2132. functions for SFINAE constraints on assignment operators.
  2133. (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
  2134. New helper functions for exception specifications.
  2135. (tuple::operator=(const tuple&), tuple::operator=(tuple&&))
  2136. (tuple<_T1, _T2>::operator=(const tuple&))
  2137. (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
  2138. __nonesuch_no_braces when the operator should be defined implicitly.
  2139. Use __nothrow_assignable for exception specifications.
  2140. (tuple::operator=(const tuple<_UElements...>&))
  2141. (tuple::operator=(tuple<_UElements...>&&))
  2142. (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
  2143. (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
  2144. (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
  2145. (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
  2146. __assignable and use __nothrow_assignable for exception
  2147. specifications.
  2148. * python/libstdcxx/v6/printers.py (is_specialization_of): Accept
  2149. gdb.Type as first argument, instead of a string.
  2150. (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
  2151. tuple for expected structure.
  2152. (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
  2153. * testsuite/20_util/tuple/dr2729.cc: New test.
  2154. * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
  2155. to dg-prune-output.
  2156. 2018-08-16 Jonathan Wakely <jwakely@redhat.com>
  2157. * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
  2158. about signed/unsigned comparison.
  2159. * include/std/ostream (basic_ostream::sentry::~sentry): Suppress
  2160. deprecation warnings for using uncaught_exception().
  2161. PR libstdc++/86447
  2162. * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
  2163. (logic_error::logic_error(logic_error&&))
  2164. (logic_error::operator=(logic_error&&))
  2165. (runtime_error::runtime_error(runtime_error&&))
  2166. (runtime_error::operator=(runtime_error&&)): Copy strings instead of
  2167. moving, to avoid allocating empty reps for moved-from strings.
  2168. 2018-08-15 Jonathan Wakely <jwakely@redhat.com>
  2169. * include/experimental/regex: Remove begin/end macros for namespace.
  2170. * include/experimental/string: Likewise.
  2171. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
  2172. New test.
  2173. * testsuite/experimental/polymorphic_allocator/
  2174. pmr_typedefs_forward_list.cc: New test.
  2175. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
  2176. New test.
  2177. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
  2178. New test.
  2179. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
  2180. New test.
  2181. * testsuite/experimental/polymorphic_allocator/
  2182. pmr_typedefs_multimap.cc: New test.
  2183. * testsuite/experimental/polymorphic_allocator/
  2184. pmr_typedefs_multiset.cc: New test.
  2185. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
  2186. New test.
  2187. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
  2188. New test.
  2189. * testsuite/experimental/polymorphic_allocator/
  2190. pmr_typedefs_unordered_map.cc: New test.
  2191. * testsuite/experimental/polymorphic_allocator/
  2192. pmr_typedefs_unordered_multimap.cc: New test.
  2193. * testsuite/experimental/polymorphic_allocator/
  2194. pmr_typedefs_unordered_multiset.cc: New test.
  2195. * testsuite/experimental/polymorphic_allocator/
  2196. pmr_typedefs_unordered_set.cc: New test.
  2197. * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
  2198. New test.
  2199. * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
  2200. calls to __uses_allocator_construct_impl and __use_alloc.
  2201. * include/experimental/memory_resource
  2202. (polymorphic_allocator::_M_construct): Remove.
  2203. (polymorphic_allocator::construct): Call __uses_allocator_construct.
  2204. Qualify calls to __use_alloc.
  2205. * include/std/memory_resource (polymorphic_allocator::construct): Fix
  2206. type in SFINAE constraint. Use constexpr if instead of tag dispatching
  2207. to _S_construct overloads.
  2208. (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
  2209. arguments to _S_construct_p.
  2210. (polymorphic_allocator::_S_construct): Remove.
  2211. (polymorphic_allocator::_S_construct_p): Return allocators by value
  2212. not by reference.
  2213. * include/std/scoped_allocator (scoped_allocator_adaptor::construct):
  2214. Qualify calls to __use_alloc.
  2215. * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
  2216. copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
  2217. * testsuite/experimental/polymorphic_allocator/1.cc: New test.
  2218. * testsuite/experimental/polymorphic_allocator/construct_pair.cc:
  2219. New test.
  2220. * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
  2221. (atomic_mem_res): Add unsynchronized definition for single-threaded.
  2222. 2018-08-14 Jonathan Wakely <jwakely@redhat.com>
  2223. PR libstdc++/86954
  2224. * include/bits/stl_tempbuf.h (return_temporary_buffer): Use
  2225. non-placement delete.
  2226. * include/std/chrono (__check_overflow): Simplify definition.
  2227. (_Checked_integral_constant): Remove.
  2228. PR libstdc++/86846
  2229. * src/c++17/default_resource.h: New file, defining default_res.
  2230. * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
  2231. (atomic_mem_res): Define alternative for atomic<memory_resource*>
  2232. using a mutex instead of atomics.
  2233. PR libstdc++/85343
  2234. * config/abi/pre/gnu.ver: Export new symbol.
  2235. * doc/xml/manual/abi.xml: Document new versions.
  2236. * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
  2237. (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
  2238. * include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
  2239. Declare new overload.
  2240. * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
  2241. and static member function.
  2242. (__throw_ios_failure(const char*, int)): Define.
  2243. * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
  2244. (__throw_ios_failure(const char*, int)): Define.
  2245. 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
  2246. * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
  2247. (_Rope_const_iterator::operator=(const _Rope_const_iterator&))
  2248. (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
  2249. copied/assigned rope iterators don't retain pointers to the iterator
  2250. they were copied/assigned from.
  2251. * testsuite/ext/rope/7.cc: New.
  2252. 2018-08-13 Jonathan Wakely <jwakely@redhat.com>
  2253. PR libstdc++/45093
  2254. * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
  2255. Combine definitions to avoid --detect-odr-violations warning.
  2256. * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
  2257. __is_pow2 to check for valid alignment. Avoid branching when rounding
  2258. size to multiple of alignment.
  2259. * include/Makefile.am: Install <bit> and <version> for freestanding.
  2260. * include/Makefile.in: Regenerate.
  2261. * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
  2262. Revert
  2263. 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
  2264. PR target/85904
  2265. * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
  2266. Newlib.
  2267. * configure: Regenerate.
  2268. 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
  2269. PR libstdc++/68210
  2270. * doc/xml/manual/intro.xml: Document LWG 206 change.
  2271. * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
  2272. * libsupc++/del_opa.cc: Likewise.
  2273. * libsupc++/del_opant.cc: Likewise.
  2274. * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
  2275. of free(ptr).
  2276. * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
  2277. * libsupc++/del_opsa.cc: Likewise.
  2278. * libsupc++/del_opva.cc: Likewise.
  2279. * libsupc++/del_opvant.cc: Likewise.
  2280. * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
  2281. instead of operator delete(ptr).
  2282. * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
  2283. * libsupc++/del_opvsa.cc: Likewise.
  2284. * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
  2285. * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
  2286. * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
  2287. with noexcept.
  2288. * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
  2289. malloc(sz).
  2290. * libsupc++/new_opvant.cc: Use nullptr and noexcept.
  2291. * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
  2292. operator new(sz, nothrow).
  2293. * testsuite/18_support/new_nothrow.cc: New test.
  2294. 2018-08-10 Martin Liska <mliska@suse.cz>
  2295. * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
  2296. predictor can handle that.
  2297. * libsupc++/new_opa.cc: Likewise.
  2298. * libsupc++/new_opnt.cc (new): Likewise.
  2299. 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
  2300. PR target/85904
  2301. * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
  2302. Newlib.
  2303. * configure: Regenerate.
  2304. 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
  2305. * include/std/deque (std::pmr::deque): Declare alias.
  2306. * include/std/forward_list (std::pmr::forward_list): Likewise.
  2307. * include/std/list (std::pmr::list): Likewise.
  2308. * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
  2309. * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
  2310. (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
  2311. * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
  2312. * include/std/string (std::pmr::basic_string, std::pmr::string)
  2313. (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
  2314. Likewise.
  2315. * include/std/unordered_map (std::pmr::unordered_map)
  2316. (std::pmr::unordered_multimap): Likewise.
  2317. * include/std/unordered_set (std::pmr::unordered_set)
  2318. (std::pmr::unordered_multiset): Likewise.
  2319. * include/std/vector (std::pmr::vector): Likewise.
  2320. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
  2321. * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
  2322. * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
  2323. * testsuite/23_containers/list/pmr_typedefs.cc: New test.
  2324. * testsuite/23_containers/map/pmr_typedefs.cc: New test.
  2325. * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
  2326. * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
  2327. * testsuite/23_containers/set/pmr_typedefs.cc: New test.
  2328. * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
  2329. * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
  2330. test.
  2331. * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
  2332. test.
  2333. * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
  2334. * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
  2335. * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
  2336. 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
  2337. * include/bits/stl_algo.h
  2338. (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
  2339. (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
  2340. (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
  2341. duplication...
  2342. (rotate(_Ite, _Ite, _Ite)): ...here.
  2343. (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
  2344. Simplify rotate call.
  2345. (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
  2346. Likewise.
  2347. (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
  2348. Likewise.
  2349. 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
  2350. * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
  2351. avoid clashing with an ::aligned_alloc function that was not detected
  2352. by configure.
  2353. * doc/xml/manual/using.xml: Fix markup for empty table entry.
  2354. * doc/html/*: Regenerate.
  2355. * doc/xml/manual/using.xml: Add missing header to table and fix typo.
  2356. * doc/html/*: Regenerate.
  2357. PR libstdc++/86597
  2358. * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
  2359. Clear error_code when cached type is used.
  2360. * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
  2361. 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
  2362. PR libstdc++/86874
  2363. * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
  2364. here instead of in _Move_assign_base.
  2365. (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
  2366. (_Copy_assign_base::operator=): Use _M_destructive_move when changing
  2367. the contained value to another alternative.
  2368. (_Move_assign_base::operator=): Likewise.
  2369. (_Move_assign_base::_M_destructive_move): Remove.
  2370. * testsuite/20_util/variant/86874.cc: New test.
  2371. PR libstdc++/86861
  2372. * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
  2373. Replace macro with inline function.
  2374. [__sun]: Increase alignment to meet memalign precondition.
  2375. [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
  2376. (aligned_alloc): Move check for valid alignment to operator new.
  2377. Remove redundant check for non-zero size, it's enforced by the caller.
  2378. (operator new): Move check for valid alignment here. Use
  2379. __builtin_expect on check for zero size.
  2380. * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
  2381. * include/std/memory_resource (monotonic_buffer_resource::release):
  2382. Call _M_release_buffers to free buffers.
  2383. (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
  2384. allocate a new buffer from upstream.
  2385. (monotonic_buffer_resource::_M_new_buffer): Declare.
  2386. (monotonic_buffer_resource::_M_release_buffers): Declare.
  2387. (monotonic_buffer_resource::_Chunk): Replace definition with
  2388. declaration as opaque type.
  2389. * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
  2390. Define.
  2391. (monotonic_buffer_resource::_M_new_buffer): Define.
  2392. (monotonic_buffer_resource::_M_release_buffers): Define.
  2393. 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
  2394. * include/bits/stl_iterator.h: Fix comment.
  2395. 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
  2396. * src/c++11/system_error.cc
  2397. (system_error_category::default_error_condition): Add workaround for
  2398. ENOTEMPTY and EEXIST having the same value on AIX.
  2399. * testsuite/19_diagnostics/error_category/system_category.cc: Add
  2400. extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
  2401. 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
  2402. * configure: Regenerate.
  2403. * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
  2404. * src/c++11/futex.cc: Use __glibcxx_assert instead of
  2405. _GLIBCXX_DEBUG_ASSERT.
  2406. 2018-08-01 Mike Crowe <mac@mcrowe.com>
  2407. * include/std/condition_variable (wait_for): Use steady_clock.
  2408. 2018-08-01 Mike Crowe <mac@mcrowe.com>
  2409. * include/std/condition_variable (wait_until): Only report timeout
  2410. if we really have timed out when measured against the
  2411. caller-supplied clock.
  2412. * testsuite/30_threads/condition_variable/members/2.cc: Add test
  2413. case to confirm above behaviour.
  2414. 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
  2415. PR libstdc++/60555
  2416. * src/c++11/system_error.cc
  2417. (system_error_category::default_error_condition): New override to
  2418. check for POSIX errno values.
  2419. * testsuite/19_diagnostics/error_category/generic_category.cc: New
  2420. * testsuite/19_diagnostics/error_category/system_category.cc: New
  2421. test.
  2422. 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
  2423. PR libstdc++/86751
  2424. * include/bits/stl_pair.h (__pair_base): New class with deleted copy
  2425. assignment operator.
  2426. (pair): Derive from __pair_base.
  2427. (pair::operator=): Remove deleted overload.
  2428. * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
  2429. so that new base class isn't shown in GDB.
  2430. * testsuite/20_util/pair/86751.cc: New test.
  2431. * testsuite/20_util/pair/ref_assign.cc: New test.
  2432. * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
  2433. (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
  2434. (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
  2435. instead of __has_builtin.
  2436. * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
  2437. (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
  2438. * include/std/version [!_GLIBCXX_HAS_GTHREADS]
  2439. (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
  2440. (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
  2441. [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
  2442. (__cpp_lib_has_unique_object_representations): Don't define when
  2443. builtin not available.
  2444. [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
  2445. Likewise.
  2446. [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
  2447. * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
  2448. from here.
  2449. * doc/xml/manual/test.xml: Improve documentation on writing tests for
  2450. newer standards.
  2451. * doc/xml/manual/using.xml: Document all headers for C++11 and later.
  2452. * doc/html/*: Regenerate.
  2453. * include/ext/pointer.h [__cplusplus >= 201103L]
  2454. (_Pointer_adapter::operator bool): Add explicit conversion operator
  2455. to replace safe bool idiom.
  2456. 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
  2457. PR libstdc++/86734
  2458. * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
  2459. _S_to_pointer (LWG 1052, LWG 2118).
  2460. (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
  2461. * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
  2462. * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
  2463. * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
  2464. workaround for aligned_alloc bug on AIX.
  2465. * testsuite/18_support/new_aligned.cc: New test.
  2466. 2018-07-26 Marek Polacek <polacek@redhat.com>
  2467. * testsuite/30_threads/condition_variable_any/cond.cc: New.
  2468. 2018-07-26 Marek Polacek <polacek@redhat.com>
  2469. * src/c++98/locale_init.cc: Fix #ifdef condition.
  2470. 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
  2471. * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
  2472. dg-require-cstdint directive.
  2473. * testsuite/20_util/allocator/overaligned.cc: Likewise.
  2474. * testsuite/20_util/any/cons/aligned.cc: Likewise.
  2475. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
  2476. * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
  2477. * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
  2478. Likewise.
  2479. * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
  2480. * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
  2481. * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
  2482. * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
  2483. * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
  2484. random_device effective-target.
  2485. * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
  2486. * testsuite/25_algorithms/sample/1.cc: Require cstdint.
  2487. * testsuite/25_algorithms/sample/2.cc: Likewise.
  2488. * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
  2489. and random_device.
  2490. * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
  2491. cstdint.
  2492. * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
  2493. Likewise.
  2494. * testsuite/26_numerics/random/discard_block_engine/requirements/
  2495. constexpr_data.cc: Likewise.
  2496. * testsuite/26_numerics/random/discard_block_engine/requirements/
  2497. constexpr_functions.cc: Likewise.
  2498. * testsuite/26_numerics/random/independent_bits_engine/requirements/
  2499. constexpr_functions.cc: Likewise.
  2500. * testsuite/26_numerics/random/linear_congruential_engine/requirements/
  2501. constexpr_data.cc: Likewise.
  2502. * testsuite/26_numerics/random/linear_congruential_engine/requirements/
  2503. constexpr_functions.cc: Likewise.
  2504. * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
  2505. constexpr_data.cc: Likewise.
  2506. * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
  2507. constexpr_functions.cc: Likewise.
  2508. * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
  2509. * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
  2510. * testsuite/26_numerics/random/shuffle_order_engine/requirements/
  2511. constexpr_data.cc: Add dg-require-cstdint directive.
  2512. * testsuite/26_numerics/random/shuffle_order_engine/requirements/
  2513. constexpr_functions.cc: Likewise.
  2514. * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
  2515. constexpr_data.cc: Likewise.
  2516. * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
  2517. constexpr_functions.cc: Likewise.
  2518. * testsuite/26_numerics/random/uniform_real_distribution/operators/
  2519. 64351.cc: Likewise.
  2520. * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
  2521. * testsuite/experimental/algorithm/sample-2.cc: Likewise.
  2522. * testsuite/experimental/algorithm/sample.cc: Likewise.
  2523. * testsuite/experimental/algorithm/search.cc: Likewise.
  2524. * testsuite/experimental/algorithm/shuffle.cc: Likewise.
  2525. * testsuite/experimental/any/cons/aligned.cc: Likewise.
  2526. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  2527. Likewise.
  2528. * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
  2529. * testsuite/experimental/random/randint.cc: Likewise.
  2530. * testsuite/experimental/source_location/1.cc: Likewise.
  2531. * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
  2532. * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
  2533. * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
  2534. * testsuite/ext/new_allocator/overaligned.cc: Likewise.
  2535. * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
  2536. * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
  2537. * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
  2538. * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
  2539. * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
  2540. * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
  2541. * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
  2542. * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
  2543. * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
  2544. * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
  2545. * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
  2546. * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
  2547. * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
  2548. * testsuite/ext/throw_allocator/check_new.cc: Likewise.
  2549. * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
  2550. * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
  2551. * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
  2552. * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
  2553. * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
  2554. * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
  2555. * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
  2556. * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
  2557. * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
  2558. Likewise.
  2559. * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
  2560. * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
  2561. * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
  2562. Likewise.
  2563. * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
  2564. Likewise.
  2565. * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
  2566. Likewise.
  2567. * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
  2568. * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
  2569. * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
  2570. * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
  2571. * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
  2572. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
  2573. Likewise.
  2574. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
  2575. Likewise.
  2576. * testsuite/30_threads/recursive_timed_mutex/dest/
  2577. destructor_locked.cc: Likewise.
  2578. * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
  2579. * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
  2580. * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
  2581. Likewise.
  2582. * testsuite/30_threads/recursive_timed_mutex/native_handle/
  2583. typesizes.cc: Likewise.
  2584. * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
  2585. Likewise.
  2586. * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
  2587. Likewise.
  2588. * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
  2589. Likewise.
  2590. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
  2591. Likewise.
  2592. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
  2593. Likewise.
  2594. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
  2595. Likewise.
  2596. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
  2597. Likewise.
  2598. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
  2599. Likewise.
  2600. * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
  2601. * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
  2602. * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
  2603. * testsuite/30_threads/scoped_lock/requirements/
  2604. explicit_instantiation.cc: Likewise.
  2605. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
  2606. * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
  2607. * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
  2608. * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
  2609. * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
  2610. * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
  2611. * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
  2612. * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
  2613. * testsuite/30_threads/shared_future/members/get.cc: Likewise.
  2614. * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
  2615. * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
  2616. * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
  2617. * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
  2618. * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
  2619. * testsuite/30_threads/shared_future/requirements/
  2620. explicit_instantiation.cc: Likewise.
  2621. * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
  2622. * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
  2623. * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
  2624. * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
  2625. * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
  2626. * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
  2627. * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
  2628. * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
  2629. * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
  2630. * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
  2631. * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
  2632. * testsuite/30_threads/shared_lock/requirements/
  2633. explicit_instantiation.cc: Likewise.
  2634. * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
  2635. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
  2636. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
  2637. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
  2638. * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
  2639. Likewise.
  2640. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
  2641. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
  2642. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
  2643. * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
  2644. * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
  2645. * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
  2646. * testsuite/30_threads/shared_timed_mutex/requirements/
  2647. standard_layout.cc: Likewise.
  2648. * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
  2649. * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
  2650. * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
  2651. * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
  2652. * testsuite/30_threads/this_thread/1.cc: Likewise.
  2653. * testsuite/30_threads/this_thread/2.cc: Likewise.
  2654. * testsuite/30_threads/this_thread/3.cc: Likewise.
  2655. * testsuite/30_threads/this_thread/4.cc: Likewise.
  2656. * testsuite/30_threads/this_thread/58038.cc: Likewise.
  2657. * testsuite/30_threads/thread/70503.cc: Likewise.
  2658. * testsuite/30_threads/thread/84532.cc: Likewise.
  2659. * testsuite/30_threads/thread/adl.cc: Likewise.
  2660. * testsuite/30_threads/thread/cons/1.cc: Likewise.
  2661. * testsuite/30_threads/thread/cons/2.cc: Likewise.
  2662. * testsuite/30_threads/thread/cons/3.cc: Likewise.
  2663. * testsuite/30_threads/thread/cons/4.cc: Likewise.
  2664. * testsuite/30_threads/thread/cons/49668.cc: Likewise.
  2665. * testsuite/30_threads/thread/cons/5.cc: Likewise.
  2666. * testsuite/30_threads/thread/cons/6.cc: Likewise.
  2667. * testsuite/30_threads/thread/cons/7.cc: Likewise.
  2668. * testsuite/30_threads/thread/cons/8.cc: Likewise.
  2669. * testsuite/30_threads/thread/cons/84535.cc: Likewise.
  2670. * testsuite/30_threads/thread/cons/9.cc: Likewise.
  2671. * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
  2672. * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
  2673. * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
  2674. * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
  2675. * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
  2676. * testsuite/30_threads/thread/id/operators.cc: Likewise.
  2677. * testsuite/30_threads/thread/members/1.cc: Likewise.
  2678. * testsuite/30_threads/thread/members/2.cc: Likewise.
  2679. * testsuite/30_threads/thread/members/3.cc: Likewise.
  2680. * testsuite/30_threads/thread/members/4.cc: Likewise.
  2681. * testsuite/30_threads/thread/members/5.cc: Likewise.
  2682. * testsuite/30_threads/thread/members/hardware_concurrency.cc:
  2683. Likewise.
  2684. * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
  2685. * testsuite/30_threads/thread/swap/1.cc: Likewise.
  2686. * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
  2687. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
  2688. * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
  2689. * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
  2690. * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
  2691. * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
  2692. * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
  2693. Likewise.
  2694. * testsuite/30_threads/timed_mutex/requirements/
  2695. standard_layout.cc: Likewise.
  2696. * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
  2697. * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
  2698. * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
  2699. * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
  2700. * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
  2701. * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
  2702. * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
  2703. * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
  2704. * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
  2705. * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
  2706. * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
  2707. * testsuite/30_threads/try_lock/1.cc: Likewise.
  2708. * testsuite/30_threads/try_lock/2.cc: Likewise.
  2709. * testsuite/30_threads/try_lock/3.cc: Likewise.
  2710. * testsuite/30_threads/try_lock/4.cc: Likewise.
  2711. * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
  2712. * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
  2713. * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
  2714. * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
  2715. * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
  2716. * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
  2717. * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
  2718. * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
  2719. * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
  2720. * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
  2721. * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
  2722. * testsuite/30_threads/unique_lock/requirements/
  2723. explicit_instantiation.cc: Likewise.
  2724. * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
  2725. * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
  2726. directive.
  2727. * testsuite/30_threads/async/49668.cc: Likewise.
  2728. * testsuite/30_threads/async/54297.cc: Likewise.
  2729. * testsuite/30_threads/async/84532.cc: Likewise.
  2730. * testsuite/30_threads/async/any.cc: Likewise.
  2731. * testsuite/30_threads/async/async.cc: Likewise.
  2732. * testsuite/30_threads/async/except.cc: Likewise.
  2733. * testsuite/30_threads/async/forced_unwind.cc: Likewise.
  2734. * testsuite/30_threads/async/launch.cc: Likewise.
  2735. * testsuite/30_threads/async/lwg2021.cc: Likewise.
  2736. * testsuite/30_threads/async/sync.cc: Likewise.
  2737. * testsuite/30_threads/call_once/39909.cc: Likewise.
  2738. * testsuite/30_threads/call_once/49668.cc: Likewise.
  2739. * testsuite/30_threads/call_once/60497.cc: Likewise.
  2740. * testsuite/30_threads/call_once/call_once1.cc: Likewise.
  2741. * testsuite/30_threads/call_once/constexpr.cc: Likewise.
  2742. * testsuite/30_threads/call_once/dr2442.cc: Likewise.
  2743. * testsuite/30_threads/call_once/once_flag.cc: Likewise.
  2744. * testsuite/30_threads/condition_variable/54185.cc: Likewise.
  2745. * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
  2746. * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
  2747. Likewise.
  2748. * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
  2749. * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
  2750. * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
  2751. * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
  2752. * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
  2753. * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
  2754. * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
  2755. Likewise.
  2756. * testsuite/30_threads/condition_variable/requirements/
  2757. standard_layout.cc: Likewise.
  2758. * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
  2759. * Likewise.
  2760. * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
  2761. * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
  2762. * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
  2763. * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
  2764. Likewise.
  2765. * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
  2766. Likewise.
  2767. * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
  2768. * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
  2769. * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
  2770. * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
  2771. * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
  2772. * testsuite/30_threads/future/cons/default.cc: Likewise.
  2773. * testsuite/30_threads/future/cons/move.cc: Likewise.
  2774. * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
  2775. * testsuite/30_threads/future/members/45133.cc: Likewise.
  2776. * testsuite/30_threads/future/members/get.cc: Likewise.
  2777. * testsuite/30_threads/future/members/get2.cc: Likewise.
  2778. * testsuite/30_threads/future/members/share.cc: Likewise.
  2779. * testsuite/30_threads/future/members/valid.cc: Likewise.
  2780. * testsuite/30_threads/future/members/wait.cc: Likewise.
  2781. * testsuite/30_threads/future/members/wait_for.cc: Likewise.
  2782. * testsuite/30_threads/future/members/wait_until.cc: Likewise.
  2783. * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
  2784. Likewise.
  2785. * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
  2786. Likewise.
  2787. * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
  2788. * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
  2789. * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
  2790. * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
  2791. * testsuite/30_threads/lock/1.cc: Likewise.
  2792. * testsuite/30_threads/lock/2.cc: Likewise.
  2793. * testsuite/30_threads/lock/3.cc: Likewise.
  2794. * testsuite/30_threads/lock/4.cc: Likewise.
  2795. * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
  2796. * testsuite/30_threads/lock_guard/requirements/
  2797. explicit_instantiation.cc: Likewise.
  2798. * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
  2799. * testsuite/30_threads/mutex/cons/1.cc: Likewise.
  2800. * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
  2801. * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
  2802. * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
  2803. * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
  2804. * testsuite/30_threads/mutex/lock/1.cc: Likewise.
  2805. * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
  2806. * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
  2807. * testsuite/30_threads/mutex/requirements/standard_layout.cc::
  2808. Likewise.
  2809. * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
  2810. * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
  2811. * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
  2812. * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
  2813. * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
  2814. * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
  2815. * testsuite/30_threads/packaged_task/49668.cc: Likewise.
  2816. * testsuite/30_threads/packaged_task/60564.cc: Likewise.
  2817. * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
  2818. * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
  2819. * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
  2820. * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
  2821. * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
  2822. * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
  2823. * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
  2824. * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
  2825. * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
  2826. * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
  2827. * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
  2828. * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
  2829. Likewise.
  2830. * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
  2831. * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
  2832. * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
  2833. * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
  2834. * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
  2835. * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
  2836. * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
  2837. * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
  2838. * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
  2839. * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
  2840. * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
  2841. * testsuite/30_threads/packaged_task/requirements/
  2842. explicit_instantiation.cc: Likewise.
  2843. * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
  2844. * testsuite/30_threads/promise/60966.cc: Likewise.
  2845. * testsuite/30_threads/promise/69106.cc: Likewise.
  2846. * testsuite/30_threads/promise/cons/1.cc: Likewise.
  2847. * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
  2848. * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
  2849. * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
  2850. * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
  2851. * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
  2852. * testsuite/30_threads/promise/cons/move.cc: Likewise.
  2853. * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
  2854. * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
  2855. * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
  2856. * testsuite/30_threads/promise/members/get_future.cc: Likewise.
  2857. * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
  2858. * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
  2859. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
  2860. * testsuite/30_threads/promise/members/set_value.cc: Likewise.
  2861. * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
  2862. * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
  2863. * testsuite/30_threads/promise/members/swap.cc: Likewise.
  2864. * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
  2865. * Likewise.
  2866. * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
  2867. * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
  2868. from namespace std.
  2869. * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
  2870. * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
  2871. * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
  2872. * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
  2873. * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
  2874. * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
  2875. * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
  2876. * testsuite/20_util/duration/cons/1.cc: Likewise.
  2877. * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
  2878. * testsuite/20_util/duration/cons/2.cc: Likewise.
  2879. * testsuite/20_util/duration/cons/54025.cc: Likewise.
  2880. * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
  2881. * testsuite/20_util/duration/requirements/explicit_instantiation/
  2882. explicit_instantiation.cc: Likewise.
  2883. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
  2884. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
  2885. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
  2886. * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
  2887. * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
  2888. * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
  2889. * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
  2890. * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
  2891. * testsuite/20_util/ratio/operations/45866.cc: Likewise.
  2892. * testsuite/20_util/ratio/operations/47913.cc: Likewise.
  2893. * testsuite/20_util/ratio/operations/53840.cc: Likewise.
  2894. * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
  2895. * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
  2896. * testsuite/20_util/system_clock/1.cc: Likewise.
  2897. * testsuite/20_util/time_point/1.cc: Likewise.
  2898. * testsuite/20_util/time_point/2.cc: Likewise.
  2899. * testsuite/20_util/time_point/3.cc: Likewise.
  2900. * testsuite/20_util/time_point/requirements/explicit_instantiation/
  2901. explicit_instantiation.cc: Likewise.
  2902. * testsuite/21_strings/basic_string/requirements/
  2903. explicit_instantiation/char16_t/1.cc: Likewise.
  2904. * testsuite/21_strings/basic_string/requirements/
  2905. explicit_instantiation/char32_t/1.cc: Likewise.
  2906. * testsuite/21_strings/basic_string_view/requirements/
  2907. explicit_instantiation/char16_t/1.cc: Likewise.
  2908. * testsuite/21_strings/basic_string_view/requirements/
  2909. explicit_instantiation/char32_t/1.cc: Likewise.
  2910. * testsuite/21_strings/char_traits/requirements/
  2911. explicit_instantiation/char16_t/1.cc: Likewise.
  2912. * testsuite/21_strings/char_traits/requirements/
  2913. explicit_instantiation/char32_t/1.cc: Likewise.
  2914. * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
  2915. * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
  2916. * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
  2917. * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
  2918. Likewise.
  2919. * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
  2920. Likewise.
  2921. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
  2922. Likewise.
  2923. * testsuite/22_locale/codecvt/utf8.cc: Likewise.
  2924. * testsuite/23_containers/vector/bool/72847.cc: Likewise.
  2925. * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
  2926. Likewise.
  2927. * testsuite/experimental/string_view/requirements/
  2928. explicit_instantiation/char16_t/1.cc: Likewise.
  2929. * testsuite/experimental/string_view/requirements/
  2930. explicit_instantiation/char32_t/1.cc: Likewise.
  2931. * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
  2932. 1.cc: Likewise.
  2933. * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
  2934. 1.cc: Likewise.
  2935. * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2936. (random_condition, throw_value_random, throw_allocator_random)
  2937. (std::hash<throw_value_random>): Do not define when <tr1/random> is
  2938. not usable.
  2939. * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
  2940. define transactional memory support when <stdint.h> is not usable.
  2941. * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
  2942. implementation that doesn't depend on <stdint.h> types.
  2943. * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
  2944. std::size_t when std::uintptr_t is not usable.
  2945. [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
  2946. (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
  2947. Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
  2948. * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2949. (hash<u16string>, hash<u32string>): Remove dependency on
  2950. _GLIBCXX_USE_C99_STDINT_TR1.
  2951. * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2952. (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
  2953. _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
  2954. __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
  2955. * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2956. (codecvt<char16_t, char, mbstate_t>)
  2957. (codecvt<char32_t, char, mbstate_t>)
  2958. (codecvt_byname<char16_t, char, mbstate_t>)
  2959. (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
  2960. on _GLIBCXX_USE_C99_STDINT_TR1.
  2961. * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2962. (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
  2963. * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2964. (char_traits<char16_t>, char_traits<char32_t>)
  2965. (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
  2966. on _GLIBCXX_USE_C99_STDINT_TR1.
  2967. * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
  2968. (u16string_view, u32string_view, hash<u16string_view>)
  2969. (hash<u32string_view>, operator""sv(const char16_t, size_t))
  2970. (operator""sv(const char32_t, size_t)): Likewise.
  2971. * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2972. (hash<__u16vstring>, hash<__u32vstring>): Likewise.
  2973. * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2974. (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
  2975. (__u32sso_string, __u32rc_string): Likewise.
  2976. * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
  2977. (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
  2978. * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
  2979. (u16string_view, u32string_view, hash<u16string_view>)
  2980. (hash<u32string_view>, operator""sv(const char16_t, size_t))
  2981. (operator""sv(const char32_t, size_t)): Likewise.
  2982. * src/c++11/codecvt.cc: Likewise.
  2983. * src/c++98/locale_init.cc: Likewise.
  2984. * src/c++98/localename.cc: Likewise.
  2985. * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2986. (__atomic_futex_unsigned_base): Remove dependency on
  2987. _GLIBCXX_USE_C99_STDINT_TR1 macro.
  2988. * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
  2989. (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
  2990. * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
  2991. (uintmax_t): Define using predefined macros.
  2992. * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
  2993. (time_point, system_clock, high_resolution_clock, steady_clock): Remove
  2994. dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
  2995. (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
  2996. [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
  2997. long long when <stdint.h> is not usable.
  2998. * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
  2999. (condition_variable, condition_variable_any): Remove dependency on
  3000. _GLIBCXX_USE_C99_STDINT_TR1.
  3001. * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
  3002. (packaged_task, async): Likewise.
  3003. * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
  3004. (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
  3005. (once_flag, call_once): Likewise.
  3006. * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
  3007. * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
  3008. (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
  3009. * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
  3010. (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
  3011. (this_thread::sleep_until): Likewise.
  3012. * src/c++11/chrono.cc: Remove dependency on
  3013. _GLIBCXX_USE_C99_STDINT_TR1 macro.
  3014. * src/c++11/condition_variable.cc: Likewise.
  3015. * src/c++11/futex.cc: Likewise.
  3016. * src/c++11/future.cc: Likewise.
  3017. * src/c++11/mutex.cc: Likewise.
  3018. * src/c++11/thread.cc: Likewise.
  3019. * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
  3020. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
  3021. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
  3022. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
  3023. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
  3024. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
  3025. 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  3026. PR libstdc++/77691
  3027. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  3028. xfail execution on 32-bit Solaris/x86.
  3029. 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
  3030. * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
  3031. (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
  3032. (vector::_M_move_assign): Reorder the swaps.
  3033. 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
  3034. PR libstdc++/86676
  3035. * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
  3036. same alignment for post-release allocation.
  3037. 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
  3038. PR libstdc++/86676
  3039. * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
  3040. buffer being misaligned and so returned pointer not being at start.
  3041. * include/experimental/memory_resource: Include <cstddef> header.
  3042. * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
  3043. * src/Makefile.am: Add comment.
  3044. * src/c++17/Makefile.in: Regenerate.
  3045. * include/Makefile.am: Add new <bits/unique_lock.h> header.
  3046. * include/Makefile.in: Regenerate.
  3047. * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
  3048. (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
  3049. (unique_lock): Move definition to ...
  3050. * include/bits/unique_lock.h: New header.
  3051. [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
  3052. [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
  3053. (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
  3054. (unique_lock::try_lock_for): Define only when <chrono> is usable.
  3055. * include/std/condition_variable: Include <bits/unique_lock.h>.
  3056. * include/std/mutex: Likewise.
  3057. 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
  3058. * config/abi/pre/gnu.ver: Export new symbols.
  3059. * configure: Regenerate.
  3060. * include/Makefile.am: Add new <memory_resource> header.
  3061. * include/Makefile.in: Regenerate.
  3062. * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
  3063. * include/std/memory_resource: New header.
  3064. (memory_resource, polymorphic_allocator, new_delete_resource)
  3065. (null_memory_resource, set_default_resource, get_default_resource)
  3066. (pool_options, monotonic_buffer_resource): Define.
  3067. * src/Makefile.am: Add c++17 directory.
  3068. * src/Makefile.in: Regenerate.
  3069. * src/c++11/Makefile.am: Fix comment.
  3070. * src/c++17/Makefile.am: Add makefile for new sub-directory.
  3071. * src/c++17/Makefile.in: Generate.
  3072. * src/c++17/memory_resource.cc: New.
  3073. (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
  3074. (default_res, new_delete_resource, null_memory_resource)
  3075. (set_default_resource, get_default_resource): Define.
  3076. * testsuite/20_util/memory_resource/1.cc: New test.
  3077. * testsuite/20_util/memory_resource/2.cc: New test.
  3078. * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
  3079. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
  3080. * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
  3081. * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
  3082. * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
  3083. New test.
  3084. * testsuite/20_util/polymorphic_allocator/1.cc: New test.
  3085. * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
  3086. * testsuite/20_util/polymorphic_allocator/select.cc: New test.
  3087. * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
  3088. Define concrete memory resource for testing.
  3089. (__gnu_test::default_resource_mgr): Define RAII helper for changing
  3090. default resource.
  3091. PR libstdc++/86658
  3092. * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
  3093. parameter by reference, to avoid copying invalid iterators.
  3094. * testsuite/25_algorithms/copy/86658.cc: New test.
  3095. * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
  3096. local variables for number of digits instead of type aliases.
  3097. (__log2p1): Remove redundant branch also checked in __countl_zero.
  3098. * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
  3099. conditions. Add comments.
  3100. * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
  3101. * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
  3102. * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
  3103. * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
  3104. (__uses_allocator_helper): Check conditions directly instead of
  3105. using __is_erased_or_convertible.
  3106. * include/experimental/memory_resource: Adjust comments and
  3107. whitespace.
  3108. (__resource_adaptor_imp): Add second template parameter for type of
  3109. memory resource base class.
  3110. (memory_resource): Define default constructor, destructor, copy
  3111. constructor and copy assignment operator as defaulted.
  3112. PR libstdc++/70966
  3113. * include/experimental/memory_resource (__get_default_resource): Use
  3114. placement new to create an object with dynamic storage duration.
  3115. 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
  3116. PR libstdc++/70940
  3117. * include/experimental/memory_resource
  3118. (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
  3119. (__resource_adaptor_common::__guaranteed_alignment): New helper to
  3120. give maximum alignment an allocator guarantees. Specialize for known
  3121. allocators using new and malloc.
  3122. (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
  3123. (__resource_adaptor_imp::do_deallocate): Likewise.
  3124. * testsuite/experimental/memory_resource/new_delete_resource.cc:
  3125. Check that new and delete are called with expected sizes.
  3126. 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
  3127. PR libstdc++/86595
  3128. * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
  3129. noexcept.
  3130. 2018-07-20 Fangrui Song <maskray@google.com>
  3131. * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
  3132. _GLIBCXX_VISIBILITY(default).
  3133. 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
  3134. PR libstdc++/86603
  3135. * include/std/version: Move __cpp_lib_list_remove_return_type macro.
  3136. 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
  3137. * include/std/type_traits (__is_member_object_pointer_helper): Use
  3138. __not_<is_function<_Tp>>::type instead of integral_constant.
  3139. (__is_member_function_pointer_helper): Likewise for
  3140. is_function<_Tp>::type.
  3141. (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
  3142. (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
  3143. (is_trivially_constructible): Remove redundant use of
  3144. is_constructible.
  3145. (__is_trivially_copy_assignable_impl): Remove redundant use of
  3146. is_copy_assignable.
  3147. (__is_trivially_move_assignable_impl): Remove redundant use of
  3148. is_move_assignable.
  3149. (is_trivially_destructible): Use __bool_constant.
  3150. * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
  3151. tests for scalar types.
  3152. 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
  3153. * include/bits/stl_algobase.h (__copy_move_a): Used
  3154. __is_trivially_copyable.
  3155. (__copy_move_backward_a): Likewise.
  3156. * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
  3157. New test.
  3158. 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
  3159. PR libstdc++/86450
  3160. * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
  3161. (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
  3162. * configure: Regenerate.
  3163. * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
  3164. * doc/Makefile.in: Regenerate.
  3165. * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
  3166. * include/Makefile.in: Regenerate.
  3167. * libsupc++/Makefile.in: Regenerate.
  3168. * po/Makefile.in: Regenerate.
  3169. * python/Makefile.in: Regenerate.
  3170. * src/Makefile.in: Regenerate.
  3171. * src/c++11/Makefile.in: Regenerate.
  3172. * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
  3173. from -Wabi=2 that don't affect exported symbols.
  3174. * src/c++98/Makefile.in: Regenerate.
  3175. * src/filesystem/Makefile.in: Regenerate.
  3176. * testsuite/Makefile.in: Regenerate.
  3177. * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
  3178. (_Async_state_common::_M_join): Simplify use of std::call_once and
  3179. corresponding explicit instantiation.
  3180. (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
  3181. (__bind_simple): Remove definitions and explicit instantiation that
  3182. are not required by exported symbols.
  3183. 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
  3184. * scripts/create_testsuite_files: Fix typo in comment.
  3185. PR libstdc++/86537
  3186. * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
  3187. non-standard partial specialization.
  3188. * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
  3189. (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
  3190. * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
  3191. 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
  3192. * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
  3193. * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
  3194. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
  3195. 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
  3196. * include/debug/functions.h (__gnu_debug::__check_string): Move...
  3197. * include/debug/string (__gnu_debug::__check_string): ... here.
  3198. (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
  3199. (__glibcxx_check_string_n_constructor): New.
  3200. (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
  3201. Use latter.
  3202. (__glibcxx_check_string_constructor): New.
  3203. (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
  3204. Use latter.
  3205. * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
  3206. * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
  3207. 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
  3208. PR libstdc++/84928 use std::move in <numeric> algorithms
  3209. * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
  3210. conditionally move, according to __cplusplus value.
  3211. (accumulate, inner_product, partial_sum, adjacent_difference): Use
  3212. _GLIBCXX_MOVE_IF_20.
  3213. * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
  3214. * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
  3215. * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
  3216. * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
  3217. * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
  3218. P0935R0 Eradicating unnecessarily explicit default constructors
  3219. * config/abi/pre/gnu.ver: Tighten existing patterns and export new
  3220. default constructor symbols.
  3221. * include/std/sstream (basic_stringbuf, basic_istringstream)
  3222. (basic_ostringstream, basic_stringstream): Remove default arguments
  3223. from explicit constructors taking ios_base::openmode and add separate
  3224. non-explicit default constructors.
  3225. * testsuite/27_io/basic_istringstream/cons/default.cc: New.
  3226. * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
  3227. * testsuite/27_io/basic_stringstream/cons/default.cc: New.
  3228. * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
  3229. * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
  3230. * include/std/variant (__accepted_index): Use void_t.
  3231. 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
  3232. PR libstdc++/85831
  3233. * config/abi/pre/gnu.ver: Export move constructors and move
  3234. assignment operators for std::logic_error and std::runtime_error.
  3235. * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
  3236. _GLIBCXX_USE_NOEXCEPT.
  3237. (logic_error, runtime_error): Declare move constructors and move
  3238. assignment operators. When not declared already, define copy
  3239. constructors and copy assignment operators as explicit-defaulted.
  3240. (domain_error, invalid_argument, length_error, out_of_range)
  3241. (overflow_error, underflow_error): Define move constructors and move
  3242. assignment operators as explicitly-defaulted.
  3243. * libsupc++/exception.h (exception): Likewise.
  3244. * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
  3245. move constructors and move assignment operators as defaulted.
  3246. * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
  3247. assignment operators are defined.
  3248. * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
  3249. COW strings.
  3250. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  3251. Likewise.
  3252. * testsuite/21_strings/basic_string/requirements/
  3253. explicit_instantiation/debug.cc: Likewise.
  3254. PR libstdc++/58265
  3255. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  3256. (basic_string::assign(basic_string&&)): Add conditional noexcept
  3257. depending on the allocator's is_always_equal property (LWG 2063).
  3258. * testsuite/21_strings/basic_string/modifiers/assign/char/
  3259. move_assign.cc: Check for non-throwing exception specification.
  3260. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
  3261. move_assign.cc: Likewise.
  3262. PR libstdc++/58265
  3263. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  3264. [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
  3265. Add GLIBCXX_NOEXCEPT.
  3266. (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
  3267. to depend on the allocator's is_always_equal property (LWG 2063).
  3268. (basic_string::swap(basic_string&)): Likewise.
  3269. * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
  3270. (basic_string::swap(basic_string&)): Likewise.
  3271. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
  3272. Check is_nothrow_move_assignable.
  3273. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
  3274. Check is_nothrow_move_assignable.
  3275. * testsuite/21_strings/basic_string/cons/char/
  3276. noexcept_move_construct.cc: Likewise.
  3277. * testsuite/21_strings/basic_string/cons/wchar_t/
  3278. noexcept_move_construct.cc: Likewise.
  3279. 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
  3280. P0646R1 Improving the Return Value of Erase-Like Algorithms I
  3281. * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
  3282. Define.
  3283. (forward_list::__remove_return_type): Define typedef as size_type or
  3284. void, according to __cplusplus value.
  3285. (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
  3286. empty, according to __cplusplus value.
  3287. (forward_list::remove, forward_list::unique): Use typedef and macro
  3288. to change return type and add abi-tag for C++2a.
  3289. (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
  3290. typedef to change return type for C++2a.
  3291. * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
  3292. (forward_list::remove, forward_list::remove_if<Pred>)
  3293. (forward_list::unique<BinPred>): Return number of removed elements
  3294. for C++2a.
  3295. * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
  3296. (list::remove, list::unique, list::remove_if<Predicate>)
  3297. (list::unique<BinaryPredicate>): Return number of removed elements
  3298. for C++2a.
  3299. * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
  3300. (list::__remove_return_type): Define typedef as size_type or
  3301. void, according to __cplusplus value.
  3302. (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
  3303. empty, according to __cplusplus value.
  3304. (list::remove, list::unique): Use typedef and macro to change return
  3305. type and add abi-tag for C++2a.
  3306. (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
  3307. typedef to change return type for C++2a.
  3308. * include/std/version (__cpp_lib_list_remove_return_type): Define.
  3309. * testsuite/23_containers/forward_list/operations/
  3310. remove_cxx20_return.cc: New.
  3311. * testsuite/23_containers/forward_list/operations/
  3312. unique_cxx20_return.cc: New.
  3313. P0458R2 Checking for Existence of an Element in Associative Containers
  3314. * include/bits/stl_map.h (map::contains): Add for C++2a.
  3315. * include/bits/stl_multimap.h (multimap::contains): Likewise.
  3316. * include/bits/stl_multiset.h (multiset::contains): Likewise.
  3317. * include/bits/stl_set.h (set::contains): Likewise.
  3318. * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
  3319. (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
  3320. (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
  3321. (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
  3322. * include/bits/unordered_map.h (unordered_map::contains)
  3323. (unordered_multimap::contains): Add for C++2a.
  3324. * include/bits/unordered_set.h (unordered_set::contains)
  3325. (unordered_multiset::contains): Likewise.
  3326. * testsuite/23_containers/map/operations/contains.cc: New.
  3327. * testsuite/23_containers/multimap/operations/contains.cc: New.
  3328. * testsuite/23_containers/multiset/operations/contains.cc: New.
  3329. * testsuite/23_containers/set/operations/contains.cc: New.
  3330. * testsuite/23_containers/unordered_map/operations/contains.cc: New.
  3331. * testsuite/23_containers/unordered_multimap/operations/contains.cc:
  3332. New.
  3333. * testsuite/23_containers/unordered_multiset/operations/contains.cc:
  3334. New.
  3335. * testsuite/23_containers/unordered_set/operations/contains.cc: New.
  3336. 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
  3337. PR libstdc++/86272
  3338. * include/debug/string
  3339. (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
  3340. Use __glibcxx_check_insert_range.
  3341. * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
  3342. __gnu_debug::string when _GLIBCXX_DEBUG.
  3343. * 21_strings/basic_string/init-list.cc: Likewise.
  3344. * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
  3345. * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
  3346. * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
  3347. * 21_strings/basic_string/types/1.cc: Likewise.
  3348. 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
  3349. * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
  3350. target for std::random_device.
  3351. * testsuite/26_numerics/random/random_device/cons/default.cc:
  3352. Likewise.
  3353. * testsuite/experimental/algorithm/sample-2.cc: Likewise.
  3354. * testsuite/experimental/algorithm/shuffle.cc: Likewise.
  3355. * testsuite/experimental/random/randint.cc: Likewise.
  3356. * testsuite/lib/libstdc++.exp
  3357. (check_effective_target_random_device): New proc.
  3358. 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
  3359. Jakub Jelinek <jakub@redhat.com>
  3360. * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
  3361. 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
  3362. PR libstdc++/86398
  3363. * include/std/type_traits (is_trivially_constructible): Check
  3364. is_constructible before __is_trivially_constructible.
  3365. * testsuite/20_util/is_trivially_constructible/value.cc: Add more
  3366. tests, including negative cases.
  3367. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
  3368. zero for dg-error lineno.
  3369. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
  3370. Likewise.
  3371. * include/std/bit (__rotl, __rotr): Avoid branch.
  3372. (_If_is_unsigned_integer): Use remove_cv_t.
  3373. * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
  3374. 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
  3375. P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
  3376. * include/Makefile.am: Add new header.
  3377. * include/Makefile.in: Regenerate.
  3378. * include/precompiled/stdc++.h: Include new header.
  3379. * include/std/bit: New header.
  3380. (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
  3381. (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
  3382. Define for C++14.
  3383. [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
  3384. (countr_one, popcount): Define for C++2a. Also overload for std::byte.
  3385. (ispow2, ceil2, floor2, log2p1): Define for C++2a.
  3386. [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
  3387. std::byte.
  3388. * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
  3389. * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
  3390. * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
  3391. * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
  3392. * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
  3393. * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
  3394. * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
  3395. * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
  3396. * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
  3397. * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
  3398. * include/bits/alloc_traits.h: Remove redundant preprocessor
  3399. condition.
  3400. 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
  3401. * include/bits/stl_algobase.h (__niter_wrap): New.
  3402. (__copy_move_a2(_II, _II, _OI)): Use latter.
  3403. (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
  3404. (fill_n(_OI, _Size, const _Tp&)): Likewise.
  3405. (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
  3406. * include/debug/stl_iterator.h
  3407. (std::__niter_base(const __gnu_cxx::_Safe_iterator<
  3408. __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
  3409. * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
  3410. __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
  3411. 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
  3412. P0758R1 Implicit conversion traits
  3413. * include/std/type_traits [__cplusplus > 201703]
  3414. (__is_convertible_helper::__is_nothrow_type): Define new member.
  3415. (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
  3416. noexcept.
  3417. (__is_convertible_helper<_From, _To, false>::__test_nothrow)
  3418. (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
  3419. new members.
  3420. (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
  3421. * testsuite/20_util/is_nothrow_convertible/value.cc: New.
  3422. * testsuite/20_util/is_nothrow_convertible/requirements/
  3423. explicit_instantiation.cc: New.
  3424. * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
  3425. New.
  3426. P0887R1 The identity metafunction
  3427. * include/std/type_traits (type_identity, type_identity_t): Define
  3428. for C++2a.
  3429. * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
  3430. * testsuite/20_util/type_identity/requirements/
  3431. explicit_instantiation.cc:New.
  3432. * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
  3433. * include/bits/regex.h (sub_match::operator string_type): Call str().
  3434. (sub_match::compare): Use _M_str() instead of str().
  3435. (sub_match::_M_compare): New public function.
  3436. (sub_match::__string_view): New helper type.
  3437. (sub_match::_M_str): New overloaded functions to avoid creating a
  3438. string_type object when not needed.
  3439. (operator==, operator!=, operator<, operator>, operator<=, operator>=):
  3440. Use sub_match::_M_compare instead of creating string_type objects.
  3441. Fix Doxygen comments.
  3442. * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
  3443. (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
  3444. simplify.
  3445. (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
  3446. __enable_if_t.
  3447. * include/std/type_traits (__enable_if_t): Define for C++11.
  3448. * testsuite/28_regex/sub_match/compare.cc: New.
  3449. * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
  3450. trait.
  3451. (input_iterator_wrapper): Use remove_cv for value_type argument of
  3452. std::iterator base class.
  3453. 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
  3454. * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
  3455. Add whitespace to dejagnu directive.
  3456. * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
  3457. 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
  3458. * include/bits/stl_vector.h
  3459. (struct _Vector_base<>::_Vector_impl_data): New.
  3460. (struct _Vector_base<>::_Vector_impl): Inherit from latter.
  3461. (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
  3462. (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
  3463. (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
  3464. (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
  3465. (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
  3466. (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
  3467. (_Vector_base()): Default.
  3468. (_Vector_base(_Vector_base&&)): Default.
  3469. (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
  3470. (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
  3471. (_Vector_base::_M_create_storage(size_t)): Make protected.
  3472. (vector()): Default.
  3473. (vector(vector&&)): Default.
  3474. (vector(vector&&, const allocator_type&, true_type)): New.
  3475. (vector(vector&&, const allocator_type&, false_type)): New.
  3476. (vector(vector&&, const allocator_type&)): Use latters.
  3477. (vector(_InputIte, _InputIte, const allocator_type&)): Call
  3478. _M_range_initialize directly.
  3479. * include/debug/vector
  3480. (vector(vector&&, const allocator_type&)): Add noexcept qualification.
  3481. * testsuite/23_containers/vector/allocator/default_init.cc: New.
  3482. * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
  3483. static assertions.
  3484. 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
  3485. * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
  3486. (__is_byte<byte>): Define specialization for std::byte.
  3487. PR libstdc++/86138
  3488. * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
  3489. Declare explicit instantiations of COW empty reps and I/O functions.
  3490. 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
  3491. * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
  3492. directives.
  3493. * testsuite/experimental/algorithm/shuffle.cc: Likewise.
  3494. 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
  3495. * include/bits/regex.tcc (regex_iterator::operator==): Add missing
  3496. noexcept.
  3497. 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
  3498. PR libstdc++/86112
  3499. * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
  3500. Replace dict comprehension.
  3501. PR libstdc++/81092
  3502. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
  3503. PR libstdc++/86292
  3504. * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
  3505. Add try-catch block.
  3506. * testsuite/23_containers/vector/cons/86292.cc: New.
  3507. * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
  3508. * include/experimental/algorithm (sample, shuffle): Add new overloads
  3509. using per-thread random number engine.
  3510. * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
  3511. dependencies by using __gnu_test::test_container.
  3512. * testsuite/experimental/algorithm/sample-2.cc: New.
  3513. * testsuite/experimental/algorithm/shuffle.cc: New.
  3514. 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
  3515. * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
  3516. different size_t mangling on 32-bit targets.
  3517. PR libstdc++/86280
  3518. * include/experimental/memory_resource
  3519. (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
  3520. enough for result of left shift.
  3521. PR libstdc++/86138
  3522. * include/bits/basic_string.tcc:
  3523. [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
  3524. (basic_string<char>::_Rep::_S_empty_rep_storage)
  3525. (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
  3526. instantiation declarations.
  3527. [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
  3528. explicit instantiation declarations.
  3529. * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
  3530. * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
  3531. 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
  3532. PR libstdc++/83328
  3533. * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
  3534. * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
  3535. * configure: Regenerate.
  3536. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  3537. (basic_string::insert(const_iterator, initializer_list<C>)): Add.
  3538. [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
  3539. (basic_string::insert(iterator, initializer_list<C>)): Suppress
  3540. definition.
  3541. * include/debug/string (basic_string::insert(iterator, C)): Change
  3542. first parameter to const_iterator.
  3543. (basic_string::insert(iterator, size_type, C)): Likewise. Change
  3544. return type to iterator.
  3545. (basic_string::insert(iterator, InputIterator, InputIterator)):
  3546. Likewise.
  3547. (basic_string::insert(iterator, initializer_list<C>)): Change first
  3548. parameter to const_iterator and return type to iterator.
  3549. * src/c++11/string-inst.cc: Extend comment.
  3550. * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
  3551. New.
  3552. * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
  3553. New.
  3554. * testsuite/util/testsuite_abi.cc: Add new symbol version.
  3555. * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
  3556. PR libstdc++/70940
  3557. * include/experimental/memory_resource
  3558. (__resource_adaptor_imp::do_deallocate): Add missing return.
  3559. * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
  3560. * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
  3561. resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
  3562. __gnu_cxx::malloc_allocator.
  3563. PR libstdc++/70940
  3564. * include/experimental/memory_resource (__resource_adaptor_common):
  3565. New base class.
  3566. (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
  3567. pointer from unaligned, and vice versa.
  3568. (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
  3569. allocated pointer to meet alignment request.
  3570. (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
  3571. original pointer for deallocation.
  3572. (__resource_adaptor_imp::do_is_equal): Reformat.
  3573. (__resource_adaptor_imp::_S_aligned_size): Remove.
  3574. (__resource_adaptor_imp::_S_supported): Remove.
  3575. (new_delete_resource): Use __gnu_cxx::new_allocator.
  3576. * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
  3577. extended alignments and use debug_allocator to check for matching
  3578. allocate/deallocate pairs.
  3579. 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
  3580. * include/debug/safe_iterator.h
  3581. (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
  3582. Compare __x base iterator with a value-initialized iterator of the
  3583. same type.
  3584. 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
  3585. PR libstdc++/70966
  3586. * include/experimental/memory_resource (__resource_adaptor_imp): Add
  3587. static assertions to enforce requirements on pointer types.
  3588. (__resource_adaptor_imp::get_allocator()): Add noexcept.
  3589. (new_delete_resource, null_memory_resource): Return address of an
  3590. object with dynamic storage duration.
  3591. (__null_memory_resource): Remove.
  3592. * testsuite/experimental/memory_resource/70966.cc: New.
  3593. * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
  3594. missed from recent commit.
  3595. 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
  3596. * include/std/utility: Remove unused <exception> header.
  3597. 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
  3598. LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
  3599. * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
  3600. (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
  3601. a specialization of std::pair.
  3602. * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
  3603. pair elements are constructed correctly.
  3604. LWG 2989 hide path iostream operators from normal lookup
  3605. * include/bits/fs_path.h (operator<<, operator>>): Define inline as
  3606. friends.
  3607. * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
  3608. LWG 3050 Fix cv-qualification of convertibility constraints
  3609. * include/std/chrono (duration, operator*, operator/, operator%): Use
  3610. const-qualified type as source type in is_convertible constraints.
  3611. * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
  3612. * testsuite/20_util/duration/cons/dr3050.cc: New.
  3613. * testsuite/20_util/duration/literals/range.cc: Rename to...
  3614. * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
  3615. dg-error lineno.
  3616. 2018-06-18 Maya Rashish <coypu@sdf.org>
  3617. * crossconfig.m4: Handle OpenBSD just like NetBSD.
  3618. * configure: Rebuilt.
  3619. 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
  3620. P0754R2 <version> header
  3621. * include/Makefile.am: Add new header.
  3622. * include/Makefile.in: Regenerate.
  3623. * include/bits/c++config: Change doxygen comment to suggest <version>
  3624. instead of <iosfwd>.
  3625. * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
  3626. unconditionally. Add C++17 and C++20 headers.
  3627. * include/std/version: New header.
  3628. * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
  3629. * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
  3630. * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
  3631. * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
  3632. * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
  3633. * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
  3634. * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
  3635. New.
  3636. * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
  3637. * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
  3638. * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
  3639. * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
  3640. * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
  3641. * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
  3642. * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
  3643. New.
  3644. * testsuite/18_support/headers/version/macros.cc: New.
  3645. * testsuite/18_support/headers/version/macros.cc: New.
  3646. * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
  3647. enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
  3648. symlink.
  3649. * config.h.in: Regenerate.
  3650. * configure: Regenerate.
  3651. * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
  3652. LWG 3035. std::allocator's constructors should be constexpr
  3653. * include/bits/allocator.h (allocator): Add constexpr to constructors
  3654. for C++2a. Replace dynamic exception specifications with NOTHROW
  3655. macro.
  3656. (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
  3657. NOTHROW.
  3658. * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
  3659. * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
  3660. to constructors for C++2a.
  3661. * include/ext/new_allocator.h (new_allocator): Likewise.
  3662. 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
  3663. LWG 3076 basic_string CTAD ambiguity
  3664. * doc/xml/manual/intro.xml: Document LWG 3076 change.
  3665. * include/bits/basic_string.h
  3666. [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
  3667. (basic_string(const _CharT*, const _Alloc&)): Turn into a function
  3668. template constrained by _RequireAllocator.
  3669. (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
  3670. * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
  3671. Define.
  3672. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
  3673. deduction
  3674. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  3675. Likewise.
  3676. 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
  3677. PR libstdc++/86169
  3678. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  3679. (basic_string::data()): Unshare string.
  3680. * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
  3681. New.
  3682. * include/std/string_view (basic_string_view(const CharT*)): Remove
  3683. check for null pointer and add nonnull attribute.
  3684. (compare(const CharT*), compare(size_type, size_type, const CharT*))
  3685. (find(const CharT*, size_type), rfind(const CharT*, size_type))
  3686. (find_first_of(const CharT*, size_type))
  3687. (find_last_of(const CharT*, size_type))
  3688. (find_first_not_of(const CharT*, size_type))
  3689. (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
  3690. * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
  3691. * testsuite/21_strings/basic_string_view/operations/compare/char/
  3692. nonnull.cc: New.
  3693. * testsuite/21_strings/basic_string_view/operations/find/char/
  3694. nonnull.cc: New.
  3695. * testsuite/21_strings/basic_string_view/operations/rfind/char/
  3696. nonnull.cc: New.
  3697. PR libstdc++/86168
  3698. * include/bits/random.h (random_device(const string&)): Remove
  3699. default argument.
  3700. * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
  3701. define for C++17 and above.
  3702. LWG 2993 reference_wrapper<T> conversion from T&&
  3703. * doc/xml/manual/intro.xml: Document LWG 2993 change.
  3704. * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
  3705. (reference_wrapper(_Tp&&)): Remove.
  3706. (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
  3707. template.
  3708. (reference_wrapper): Add deduction guide.
  3709. * testsuite/20_util/reference_wrapper/deduction.cc: New.
  3710. * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
  3711. LWG 3039 Unnecessary decay in thread and packaged_task
  3712. * include/std/future (__constrain_pkgdtask): Replace with ...
  3713. (packaged_task::__not_same): New alias template, using
  3714. __remove_cvref_t instead of decay.
  3715. * include/std/thread (thread::__not_same): Add comment.
  3716. 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
  3717. LWG 3075 basic_string needs deduction guides from basic_string_view
  3718. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
  3719. deduction from string views.
  3720. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  3721. Likewise.
  3722. LWG 3074 make scalar types non-deduced in valarray non-member functions
  3723. * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
  3724. scalar parameters to be a non-deduced context.
  3725. * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
  3726. whitespace.
  3727. * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
  3728. * testsuite/26_numerics/valarray/transcend.cc: New.
  3729. * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
  3730. Move back to <utility>.
  3731. * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
  3732. Restore to here.
  3733. P0935R0 Eradicating unnecessarily explicit default constructors
  3734. * include/backward/strstream (strstreambuf): Add non-explicit default
  3735. constructor.
  3736. * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
  3737. Likewise.
  3738. * include/bits/regex.h (match_results): Likewise.
  3739. * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
  3740. default constructor.
  3741. * testsuite/22_locale/conversions/string/1.cc: Likewise.
  3742. * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
  3743. * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
  3744. * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
  3745. macro from <utility> and change type to long.
  3746. * include/std/utility (__cpp_lib_tuple_element_t): Remove.
  3747. * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
  3748. macro.
  3749. P0935R0 Eradicating unnecessarily explicit default constructors
  3750. * include/bits/random.h (uniform_real_distribution::param_type)
  3751. (normal_distribution::param_type, lognormal_distribution::param_type)
  3752. (gamma_distribution::param_type, chi_squared_distribution::param_type)
  3753. (cauchy_distribution::param_type, fisher_f_distribution::param_type)
  3754. (student_t_distribution::param_type)
  3755. (bernoulli_distribution::param_type)
  3756. (binomial_distribution::param_type)
  3757. (geometric_distribution::param_type)
  3758. (negative_binomial_distribution::param_type)
  3759. (poisson_distribution::param_type)
  3760. (exponential_distribution::param_type)
  3761. (weibull_distribution::param_type)
  3762. (extreme_value_distribution::param_type): Add non-explicit default
  3763. constructors. Remove default argument for first parameter of explicit
  3764. constructors.
  3765. * include/bits/uniform_int_dist.h
  3766. (uniform_int_distribution::param_type): Likewise.
  3767. * include/ext/random
  3768. (beta_distribution::param_type, rice_distribution::param_type)
  3769. (nakagami_distribution::param_type, pareto_distribution::param_type)
  3770. (k_distribution::param_type, arcsine_distribution::param_type)
  3771. (hoyt_distribution::param_type, triangular_distribution::param_type)
  3772. (von_mises_distribution::param_type)
  3773. (hypergeometric_distribution::param_type)
  3774. (logistic_distribution::param_type)
  3775. (uniform_inside_sphere_distribution::param_type): Likewise.
  3776. (uniform_on_sphere_distribution::param_type): Make default constructor
  3777. non-explicit.
  3778. * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
  3779. Test param_type for non-explicit default constructor.
  3780. * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
  3781. Likewise.
  3782. * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
  3783. Likewise.
  3784. * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
  3785. Likewise.
  3786. * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
  3787. Likewise.
  3788. * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
  3789. Likewise.
  3790. * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
  3791. Likewise.
  3792. * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
  3793. Likewise.
  3794. * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
  3795. Likewise.
  3796. * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
  3797. Likewise.
  3798. * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
  3799. Likewise.
  3800. * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
  3801. Likewise.
  3802. * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
  3803. Likewise.
  3804. * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
  3805. Likewise.
  3806. * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
  3807. Likewise.
  3808. * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
  3809. Likewise.
  3810. * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
  3811. Likewise.
  3812. * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
  3813. Likewise.
  3814. * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
  3815. Likewise.
  3816. * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
  3817. Likewise.
  3818. * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
  3819. * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
  3820. * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
  3821. * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
  3822. Likewise.
  3823. * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
  3824. * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
  3825. * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
  3826. * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
  3827. Likewise.
  3828. * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
  3829. * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
  3830. * testsuite/ext/random/triangular_distribution/cons/default.cc:
  3831. Likewise.
  3832. * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
  3833. Likewise.
  3834. * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
  3835. Likewise.
  3836. * testsuite/ext/random/von_mises_distribution/cons/default.cc:
  3837. Likewise.
  3838. 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
  3839. Jonathan Wakely <jwakely@redhat.com>
  3840. PR libstdc++/83982
  3841. * include/bits/vector.tcc (vector::_M_default_append(size_type)):
  3842. Default-construct new elements before moving existing ones.
  3843. * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
  3844. New.
  3845. 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
  3846. PR libstdc++/86127
  3847. * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
  3848. unused typedef.
  3849. (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
  3850. Use node allocator to create and destroy elements.
  3851. (forward_list::_Tp_alloc_type): Remove unused typedef.
  3852. (forward_list::_Alloc_traits): Use allocator_traits instead of
  3853. __gnu_cxx::__alloc_traits.
  3854. 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
  3855. * include/debug/helper_functions.h
  3856. (__gnu_debug::_Safe_iterator<>): Add declaration.
  3857. (__can_advance(_Ite, _Size)): New.
  3858. (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
  3859. * include/debug/functions.h
  3860. (__gnu_debug::_Safe_iterator<>): Remove declaration.
  3861. * include/debug/stl_iterator.h
  3862. (__can_advance(const _Safe_iterator<>&)): New definition.
  3863. * include/debug/stl_iterator.h
  3864. (__can_advance(const std::reverse_iterator<>&, _Size)): New.
  3865. (__can_advance(const std::move_iterator<>&, _Size)): New.
  3866. * include/debug/macros.h (__glibcxx_check_can_increment): New.
  3867. * include/debug/debug.h (__glibcxx_requires_can_increment): New.
  3868. * include/bits/stl_algobase.h (fill_n): Use latter.
  3869. * testsuite/25_algorithms/fill_n/2.cc: New.
  3870. * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
  3871. * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
  3872. * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
  3873. * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
  3874. * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
  3875. (__glibcxx_requires_can_decrement_range): New.
  3876. 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
  3877. * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
  3878. (__glibcxx_check_can_decrement_range): New.
  3879. * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
  3880. __glibcxx_requires_can_increment_range.
  3881. (std::move(_II, _II, _OI)): Likewise.
  3882. (std::copy_backward(_BI, _BI, _BI2)): Use
  3883. __glibcxx_requires_can_decrement_range.
  3884. (std::move_backward(_BI, _BI, _BI2)): Likewise.
  3885. * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
  3886. * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
  3887. * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
  3888. * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
  3889. * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
  3890. * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
  3891. 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
  3892. P0935R0 Eradicating unnecessarily explicit default constructors
  3893. * include/bits/random.h (linear_congruential_engine)
  3894. (mersenne_twister_engine, subtract_with_carry_engine, random_device)
  3895. (uniform_real_distribution, normal_distribution)
  3896. (lognormal_distribution, gamma_distribution, chi_squared_distribution)
  3897. (cauchy_distribution, fisher_f_distribution, student_t_distribution)
  3898. (bernoulli_distribution, binomial_distribution,geometric_distribution)
  3899. (negative_binomial_distribution, exponential_distribution)
  3900. (weibull_distribution, extreme_value_distribution): Add non-explicit
  3901. default constructors. Remove default argument for first parameter of
  3902. explicit constructors.
  3903. (piecewise_constant_distribution, piecewise_linear_distribution):
  3904. Make default constructor non-explicit.
  3905. * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
  3906. non-explicit default constructors. Remove default argument for first
  3907. parameter of explicit constructor.
  3908. * include/ext/random
  3909. (simd_fast_mersenne_twister_engine, beta_distribution)
  3910. (rice_distribution, nakagami_distribution, pareto_distribution)
  3911. (k_distribution, arcsine_distribution, hoyt_distribution)
  3912. (triangular_distribution, von_mises_distribution)
  3913. (hypergeometric_distribution, logistic_distribution)
  3914. (uniform_inside_sphere_distribution): Likewise.
  3915. (uniform_on_sphere_distribution): Make default constructor
  3916. non-explicit.
  3917. * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
  3918. Test for non-explicit default constructor. Fix references to standard.
  3919. * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
  3920. Likewise.
  3921. * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
  3922. Likewise.
  3923. * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
  3924. Likewise.
  3925. * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
  3926. Likewise.
  3927. * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
  3928. Likewise.
  3929. * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
  3930. Likewise.
  3931. * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
  3932. Likewise.
  3933. * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
  3934. Likewise.
  3935. * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
  3936. Likewise.
  3937. * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
  3938. Likewise.
  3939. * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
  3940. Likewise.
  3941. * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
  3942. Likewise.
  3943. * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
  3944. Likewise.
  3945. * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
  3946. Likewise.
  3947. * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
  3948. Likewise.
  3949. * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
  3950. Likewise.
  3951. * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
  3952. Likewise.
  3953. * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
  3954. Likewise.
  3955. * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
  3956. Likewise.
  3957. * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
  3958. * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
  3959. * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
  3960. * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
  3961. Likewise.
  3962. * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
  3963. * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
  3964. * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
  3965. * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
  3966. Likewise.
  3967. * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
  3968. * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
  3969. * testsuite/ext/random/triangular_distribution/cons/default.cc:
  3970. Likewise.
  3971. * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
  3972. Likewise.
  3973. * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
  3974. Likewise.
  3975. * testsuite/ext/random/von_mises_distribution/cons/default.cc:
  3976. Likewise.
  3977. * testsuite/util/testsuite_common_types.h
  3978. (implicitly_default_constructible): New helper.
  3979. 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
  3980. * include/bits/ios_base.h (ios::Init::Init(const Init&))
  3981. (ios::Init::operator=): Define as defaulted.
  3982. * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
  3983. Likewise.
  3984. * include/bits/stream_iterator.h (istream_iterator::operator=)
  3985. (ostream_iterator::operator=): Likewise.
  3986. * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
  3987. Likewise.
  3988. * include/std/bitset (bitset::reference::reference(const reference&)):
  3989. Likewise.
  3990. * include/std/complex (complex<float>::complex(const complex&))
  3991. (complex<double>::complex(const complex&))
  3992. (complex<long double>::complex(const complex&)): Likewise.
  3993. 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
  3994. * include/bits/regex.h (sub_match): Add noexcept to default
  3995. constructor and length observer.
  3996. (match_results): Add noexcept to default constructor and observers
  3997. with no preconditions. Define destructor as defaulted.
  3998. (operator==, operator!=, swap): Add noexcept.
  3999. (regex_iterator): Add default member initializers and define default
  4000. constructor and destructor as defaulted. Add noexcept to equality
  4001. and dereference operators.
  4002. 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
  4003. * src/c++11/debug.cc
  4004. (_Safe_iterator_base::_M_detach()): Reset state only if needed.
  4005. (_Safe_iterator_base::_M_detach_single()): Likewise.
  4006. (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
  4007. (_Safe_local_iterator_base::_M_detach_single()): Likewise.
  4008. 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
  4009. * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
  4010. move of const value.
  4011. 2018-06-06 Jakub Jelinek <jakub@redhat.com>
  4012. PR c++/86068
  4013. * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
  4014. rather than __cpp_transactional_memory >= 201505L.
  4015. 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
  4016. PR libstdc++/86008
  4017. * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
  4018. Define new partial specialization.
  4019. * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
  4020. new overload.
  4021. (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
  4022. value not reference for iteration.
  4023. * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
  4024. comment.
  4025. * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
  4026. * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
  4027. comment.
  4028. 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
  4029. * include/std/type_traits: Fix comment typos.
  4030. * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
  4031. mingw* targets.
  4032. * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
  4033. * testsuite/experimental/filesystem/operations/read_symlink.cc:
  4034. Likewise.
  4035. 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
  4036. * include/bits/stl_tempbuf.h
  4037. (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
  4038. (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
  4039. * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
  4040. * include/bits/stl_algo.h (__stable_partition): Adapt.
  4041. (__inplace_merge): Adapt.
  4042. (__stable_sort): Adapt.
  4043. 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
  4044. PR libstdc++/85930
  4045. * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
  4046. unconditionally. Remove redundant declaration.
  4047. [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
  4048. alignment-specifier.
  4049. * include/bits/postypes.h (fpos): Define special members as defaulted.
  4050. PR libstdc++/85930
  4051. * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
  4052. the static variable correctly.
  4053. 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
  4054. PR libstdc++/78870 support std::filesystem on Windows
  4055. * config.h.in: Regenerate.
  4056. * configure: Regenerate.
  4057. * configure.ac: Check for link, readlink and symlink.
  4058. * include/bits/fs_path.h (path::operator/=(const path&)): Move
  4059. definition out of class body.
  4060. (path::is_absolute(), path::_M_append(path)): Likewise.
  4061. (operator<<(basic_ostream, const path&)): Use std::quoted directly.
  4062. (operator>>(basic_istream, path&)): Likewise.
  4063. (u8path): Reorder definitions and fix Windows implementation.
  4064. (path::is_absolute()): Define inline and fix for Windows.
  4065. [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
  4066. Define POSIX version inline.
  4067. (path::_M_append(path)): Define inline.
  4068. * include/experimental/bits/fs_path.h (path::is_absolute()): Move
  4069. definition out of class body.
  4070. (operator<<(basic_ostream, const path&)): Fix type of delimiter and
  4071. escape characters.
  4072. (operator>>(basic_istream, path&)): Likewise.
  4073. (path::is_absolute()): Define inline and fix for Windows.
  4074. * src/filesystem/dir-common.h (__gnu_posix): New namespace.
  4075. (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
  4076. (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
  4077. Define as adaptors for Windows functions/types or as
  4078. using-declarations for POSIX functions/types.
  4079. (_Dir_base, get_file_type): Qualify names to use declarations from
  4080. __gnu_posix namespace.
  4081. (_Dir_base::is_dor_or_dotdot): New helper functions.
  4082. * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
  4083. names to use declarations from __gnu_posix namespace.
  4084. * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
  4085. (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
  4086. (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
  4087. (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
  4088. (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
  4089. (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
  4090. Define as adaptors for Windows functions/types or as
  4091. using-declarations for POSIX functions/types.
  4092. (stat_type, do_copy_file): Qualify names to use declarations from
  4093. __gnu_posix namespace.
  4094. (do_space): Declare new function.
  4095. (make_file_type): Only use S_ISLNK if defined.
  4096. * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
  4097. path::value_type not char.
  4098. (filesystem::copy, create_dir, filesystem::create_directory): Qualify
  4099. names to use declarations from __gnu_posix namespace.
  4100. (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
  4101. add implementation for Windows.
  4102. (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
  4103. (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
  4104. [!_PC_PATH_MAX]: Don't use pathconf.
  4105. [PATH_MAX]: Use if defined.
  4106. (filesystem::current_path(const path&, error_code&))
  4107. (filesystem::equivalent, do_stat, filesystem::hard_link_count)
  4108. (filesystem::last_write_time, filesystem::permissions): Use names
  4109. from __gnu_posix.
  4110. (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
  4111. (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
  4112. implementation for Windows.
  4113. (filesystem::rename, filesystem::resize_file): Use names from
  4114. __gnu_posix.
  4115. (filesystem::space): Use do_space.
  4116. [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
  4117. (filesystem::status, filesystem::symlink_status): Use names from
  4118. __gnu_posix.
  4119. (filesystem::temp_directory_path): Add implementation for Windows.
  4120. * src/filesystem/path.cc (dot): Define constant.
  4121. (path::replace_extension): Use dot.
  4122. (path::_M_find_extension): Likewise. Use path::string_type not
  4123. std::string.
  4124. (path::_M_split_cmpts): Use dot.
  4125. (filesystem_error::_M_get_what): Use u8string() not native().
  4126. * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
  4127. Qualify names to use declarations from __gnu_posix namespace.
  4128. * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
  4129. correct error_code.
  4130. (filesystem::absolute(const path&, error_code&)): Add implementation
  4131. for Windows.
  4132. (char_ptr, filesystem::canonical): Use path::value_type not char.
  4133. (do_copy_file): Use names from __gnu_posix.
  4134. [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
  4135. sendfile.
  4136. (filesystem::copy, create_dir, filesystem::create_directory): Qualify
  4137. names to use declarations from __gnu_posix namespace.
  4138. (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
  4139. add implementation for Windows.
  4140. (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
  4141. (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
  4142. [!_PC_PATH_MAX]: Don't use pathconf.
  4143. [PATH_MAX]: Use if defined.
  4144. (filesystem::current_path(const path&, error_code&))
  4145. (filesystem::equivalent, do_stat, filesystem::hard_link_count)
  4146. (filesystem::last_write_time, filesystem::permissions): Use names
  4147. from __gnu_posix.
  4148. (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
  4149. (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
  4150. implementation for Windows.
  4151. (filesystem::rename, filesystem::resize_file): Use names from
  4152. __gnu_posix.
  4153. (do_space): Define.
  4154. (filesystem::space): Use do_space.
  4155. (filesystem::status, filesystem::symlink_status): Use names from
  4156. __gnu_posix.
  4157. (filesystem::temp_directory_path): Add implementation for Windows.
  4158. * src/filesystem/std-path.cc
  4159. [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
  4160. Define for Windows.
  4161. (dot): Define constant.
  4162. (path::replace_extension, is_dot): Use dot.
  4163. (path::lexically_normal): Check _M_type instead of calling
  4164. non-existent function.
  4165. (path::_M_find_extension): Use dot. Use path::string_type not
  4166. std::string.
  4167. (path::_M_split_cmpts): Use dot.
  4168. (filesystem_error::_M_get_what): Use u8string() not native().
  4169. * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
  4170. use symlinks.
  4171. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  4172. Likewise.
  4173. * testsuite/27_io/filesystem/operations/absolute.cc: Use
  4174. __gnu_test::root_path() instead of "/" and add Windows-specific tests.
  4175. * testsuite/27_io/filesystem/operations/canonical.cc: Use
  4176. path::string() to get narrow string, not path::native().
  4177. * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
  4178. with std::filesystem::path not std::basic_string.
  4179. * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
  4180. * testsuite/27_io/filesystem/operations/exists.cc: Use
  4181. __gnu_test::root_path() instead of "/".
  4182. * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
  4183. fstreams with std::filesystem::path not std::basic_string.
  4184. * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
  4185. path::string() to get narrow string.
  4186. * testsuite/27_io/filesystem/operations/space.cc: Check results for
  4187. errors, expect sensible values otherwise.
  4188. * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
  4189. helpers for adjusting the environment on Windows.
  4190. * testsuite/27_io/filesystem/path/append/path.cc: Test
  4191. Windows-specific behaviour.
  4192. * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
  4193. of path::string_type objects.
  4194. * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
  4195. string to wide string on Windows.
  4196. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
  4197. for backslash as root-directory.
  4198. * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
  4199. path::string() to get narrow string.
  4200. * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
  4201. paths.
  4202. * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
  4203. not std::string.
  4204. * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
  4205. different definintion of absolute paths on Windows.
  4206. * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
  4207. Do not use symlinks.
  4208. * testsuite/experimental/filesystem/operations/absolute.cc: Test
  4209. Windows behaviour.
  4210. * testsuite/experimental/filesystem/operations/copy.cc: Construct
  4211. fstreams with NTCTS not std::basic_string.
  4212. * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
  4213. * testsuite/experimental/filesystem/operations/exists.cc: Use
  4214. __gnu_test::root_path() instead of "/".
  4215. * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
  4216. fstreams with NTCTS not std::basic_string.
  4217. * testsuite/experimental/filesystem/operations/last_write_time.cc:
  4218. Use path::string() to get narrow string.
  4219. * testsuite/experimental/filesystem/operations/space.cc: Use
  4220. __gnu_test::root_path() instead of "/".
  4221. * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
  4222. Add helpers for adjusting the environment on Windows.
  4223. * testsuite/experimental/filesystem/path/append/path.cc: Use
  4224. path::string() to get narrow strings for comparisons.
  4225. * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
  4226. * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
  4227. Likewise.
  4228. * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
  4229. * testsuite/experimental/filesystem/path/native/string.cc: Use
  4230. string_type not std::string.
  4231. * testsuite/experimental/filesystem/path/query/is_absolute.cc:
  4232. Adjust for different definintion of absolute paths on Windows.
  4233. * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
  4234. function.
  4235. (__gnu_test::scoped_file): Construct fstreams with NTCTS not
  4236. std::basic_string.
  4237. 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
  4238. PR libstdc++/85951
  4239. * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
  4240. uint_least16_t and uint_least32_t.
  4241. (__make_unsigned<wchar_t>): Define unconditionally.
  4242. (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
  4243. typedefs.
  4244. (__make_unsigned_selector_base): New type to provide helper templates.
  4245. (__make_unsigned_selector<_Tp, false, true>): Reimplement using
  4246. __make_unsigned_selector_base helpers.
  4247. (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
  4248. (__make_signed_selector<_Tp, true, false>): Remove intermediate
  4249. typedefs.
  4250. (__make_signed<wchar_t>, __make_signed<char16_t>)
  4251. (__make_signed<char32_t>)): Define unconditionally.
  4252. * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
  4253. wchar_t, char16_t and char32_t are transformed correctly.
  4254. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
  4255. dg-error lineno.
  4256. * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
  4257. wchar_t, char16_t and char32_t are transformed correctly.
  4258. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
  4259. dg-error lineno.
  4260. 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
  4261. * include/std/variant (__erased_dtor): Qualify call to __get.
  4262. 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
  4263. * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
  4264. (_Rb_tree(const allocator_type&)): Use latter.
  4265. * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
  4266. (map(initializer_list<value_type>, const allocator_type&)): Likewise.
  4267. (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
  4268. * include/bits/stl_multimap.h
  4269. (multimap(const allocator_type&)): Likewise.
  4270. (multimap(initializer_list<value_type>, const allocator_type&)):
  4271. Likewise.
  4272. (multimap(_InputIterator, _InputIterator, const allocator_type&)):
  4273. Likewise.
  4274. * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
  4275. (set(initializer_list<value_type>, const allocator_type&)): Likewise.
  4276. (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
  4277. * include/bits/stl_multiset.h
  4278. (multiset(const allocator_type&)): Likewise.
  4279. (multiset(initializer_list<value_type>, const allocator_type&)):
  4280. Likewise.
  4281. (multiset(_InputIterator, _InputIterator, const allocator_type&)):
  4282. Likewise.
  4283. 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
  4284. PR libstdc++/85768
  4285. * src/c++11/debug.cc: Remove backtrace usage.
  4286. 2018-05-24 Maya Rashish <coypu@sdf.org>
  4287. PR target/85904
  4288. * crossconfig.m4: Test for aligned_alloc on netbsd.
  4289. * configure: Regenerate.
  4290. 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
  4291. PR libstdc++/69769
  4292. PR libstdc++/85886
  4293. * include/bits/atomic_base.h (__atomic_base::value_type)
  4294. (__atomic_base::difference_type): Add new typedefs.
  4295. * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
  4296. (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
  4297. (atomic<T*>::operator++, atomic<T*>::operator--)
  4298. (atomic<T*>::operator+=, atomic<T*>::operator-=)
  4299. (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
  4300. to enforce C++17 requirement on pointer arithmetic.
  4301. (__atomic_val_t, __atomic_diff_t): New alias templates.
  4302. (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
  4303. (atomic_compare_exchange_weak_explicit)
  4304. (atomic_compare_exchange_strong_explicit, atomic_store)
  4305. (atomic_exchange, atomic_compare_exchange_weak)
  4306. (atomic_compare_exchange_strong): Use __atomic_val_t to make
  4307. scalar parameters be non-deduced contexts.
  4308. (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
  4309. (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
  4310. atomic instead of __atomic_base, and use __atomic_diff_t for scalar
  4311. parameters.
  4312. (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
  4313. (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
  4314. (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
  4315. (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
  4316. (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
  4317. address types.
  4318. * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
  4319. * testsuite/29_atomics/atomic/69769.cc: New test.
  4320. * testsuite/29_atomics/atomic/nonmembers.cc: New test.
  4321. * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
  4322. Disable test for C++17 and later.
  4323. * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
  4324. * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
  4325. * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
  4326. test.
  4327. 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
  4328. * include/bits/fs_path.h (path::__is_encoded_char): Change from class
  4329. template to alias template.
  4330. (path::__value_type_is_char): Use remove_const_t.
  4331. (path:_S_string_from_iter): New helper function.
  4332. (path::_S_convert(InputIter, __null_terminated))
  4333. (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
  4334. Use _S_string_from_iter.
  4335. (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
  4336. rep for COW strings.
  4337. * include/experimental/bits/fs_path.h (path::__is_encoded_char):
  4338. Change from class template to alias template.
  4339. (path::__value_type_is_char): Use remove_const.
  4340. (path:_S_string_from_iter): New helper function.
  4341. (path::_S_convert(InputIter, __null_terminated))
  4342. (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
  4343. Use _S_string_from_iter.
  4344. * testsuite/27_io/filesystem/path/append/source.cc: Test appending
  4345. wide strings.
  4346. * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
  4347. string equality, not path equivalence.
  4348. * testsuite/27_io/filesystem/path/construct/format.cc: Check
  4349. construction from std::string and std::wstring and input iterators.
  4350. * testsuite/27_io/filesystem/path/construct/locale.cc: Check
  4351. construction from iterators.
  4352. * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
  4353. exact string equality, not path equivalence.
  4354. * testsuite/experimental/filesystem/path/construct/locale.cc: Check
  4355. construction from iterators.
  4356. * include/bits/fs_path.h (path::_M_type): Change default member
  4357. initializer to _Filename.
  4358. (path::begin): Create past-the-end iterator for empty path.
  4359. * src/filesystem/std-path.cc (path::remove_filename()): Remove
  4360. debugging check.
  4361. (path::has_relative_path()): Return false for empty filenames.
  4362. (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
  4363. Fix offset of empty final component.
  4364. * testsuite/27_io/filesystem/path/itr/components.cc: New.
  4365. * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
  4366. 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
  4367. Add support for opening file streams from wide character strings.
  4368. * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
  4369. (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
  4370. Define new overload.
  4371. * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
  4372. (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
  4373. Declare new overload.
  4374. * configure.ac: Check for _wfopen.
  4375. * crossconfig.m4: Likewise.
  4376. * configure: Regenerate.
  4377. * config.h.in: Regenerate.
  4378. * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
  4379. (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
  4380. Define new overload.
  4381. * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
  4382. (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
  4383. Declare new overload.
  4384. [_GLIBCXX_HAVE__WFOPEN]
  4385. (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
  4386. (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
  4387. (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
  4388. (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
  4389. (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
  4390. (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
  4391. new overloads.
  4392. * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
  4393. * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
  4394. * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
  4395. * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
  4396. * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
  4397. * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
  4398. * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
  4399. 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
  4400. PR libstdc++/85845
  4401. * include/bits/stl_tree.h
  4402. (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
  4403. qualification.
  4404. 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
  4405. * src/filesystem/std-ops.cc (absolute): Report an error for empty
  4406. paths.
  4407. (weakly_canonical(const path&)): Do not call canonical on empty path.
  4408. (weakly_canonical(const path&, error_code&)): Likewise.
  4409. * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
  4410. PR libstdc++/85818
  4411. * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
  4412. dg-require-filesystem-ts.
  4413. PR libstdc++/85843
  4414. * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
  4415. initialize base class to avoid warnings.
  4416. 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
  4417. * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
  4418. [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
  4419. little_endian element in bitmask.
  4420. * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
  4421. * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
  4422. 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
  4423. * include/bits/stl_tree.h
  4424. (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
  4425. (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
  4426. (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
  4427. (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
  4428. * include/debug/map.h
  4429. (map(map&&, const_allocator_type&)): Add noexcept qualitication.
  4430. * include/debug/multimap.h
  4431. (multimap(multimap&&, const_allocator_type&)): Likewise.
  4432. * include/debug/set.h
  4433. (set(set&&, const_allocator_type&)): Likewise.
  4434. * include/debug/multiset.h
  4435. (multiset(multiset&&, const_allocator_type&)): Likewise.
  4436. * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
  4437. Add checks.
  4438. * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
  4439. Add checks.
  4440. * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
  4441. Add checks.
  4442. * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
  4443. Add checks.
  4444. * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
  4445. Add checks.
  4446. * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
  4447. Add checks.
  4448. * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
  4449. Add checks.
  4450. * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
  4451. Add checks.
  4452. 2018-05-18 Jason Merrill <jason@redhat.com>
  4453. * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
  4454. for conversion to const_iterator. Add defaulted copy ops.
  4455. * libsupc++/new (bad_alloc): Add defaulted copy ops.
  4456. * libsupc++/exception.h (exception): Add defaulted copy ops.
  4457. * include/std/system_error (system_error): Add defaulted copy ops.
  4458. * include/std/stdexcept (domain_error, invalid_argument)
  4459. (length_error, out_of_range, range_error, overflow_error)
  4460. (underflow_error): Add defaulted copy ops.
  4461. * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
  4462. copy assignment.
  4463. * include/bits/allocator.h (allocator): Add defaulted copy assignment.
  4464. * include/ext/throw_allocator.h (condition_base): Add defaulted
  4465. default and copy ctor and copy assignment.
  4466. 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
  4467. PR libstdc++/85098
  4468. * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
  4469. (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
  4470. (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
  4471. (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
  4472. definitions.
  4473. * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
  4474. whitespace.
  4475. * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
  4476. braces around body of do-while.
  4477. * testsuite/28_regex/basic_regex/85098.cc: New
  4478. 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
  4479. PR libstdc++/85818
  4480. * src/filesystem/path.cc (path::preferred_separator): Add used
  4481. attribute.
  4482. * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
  4483. PR libstdc++/85812
  4484. * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
  4485. * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
  4486. Refactor to separate non-throwing and throwing implementations.
  4487. [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
  4488. if constructing the object throws.
  4489. 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
  4490. PR libstdc++/85749
  4491. * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
  4492. (linear_congruential_engine, mersenne_twister_engine)
  4493. (subtract_with_carry_engine, discard_block_engine)
  4494. (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
  4495. constrain function templates taking seed sequences.
  4496. * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
  4497. (mersenne_twister_engine::seed(_Sseq&))
  4498. (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
  4499. match declarations.
  4500. * include/ext/random (simd_fast_mersenne_twister_engine): Use
  4501. __is_seed_seq to constrain function templates taking seed sequences.
  4502. * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
  4503. Change return type to match declaration.
  4504. * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
  4505. New.
  4506. * testsuite/26_numerics/random/independent_bits_engine/cons/
  4507. seed_seq2.cc: New.
  4508. * testsuite/26_numerics/random/linear_congruential_engine/cons/
  4509. seed_seq2.cc: New.
  4510. * testsuite/26_numerics/random/mersenne_twister_engine/cons/
  4511. seed_seq2.cc: New.
  4512. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
  4513. * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
  4514. New.
  4515. * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
  4516. seed_seq2.cc: New.
  4517. * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
  4518. seed_seq2.cc: New.
  4519. PR libstdc++/83891
  4520. * include/bits/fs_path.h (path::is_absolute()): Use same definition
  4521. for all operating systems.
  4522. * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
  4523. * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
  4524. * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
  4525. * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
  4526. * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
  4527. unused <vector> header.
  4528. * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
  4529. * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
  4530. * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
  4531. * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
  4532. * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
  4533. Likewise.
  4534. * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
  4535. Likewise.
  4536. * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
  4537. * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
  4538. * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
  4539. * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
  4540. * testsuite/experimental/filesystem/path/decompose/extension.cc:
  4541. Likewise.
  4542. * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
  4543. * testsuite/experimental/filesystem/path/query/has_extension.cc:
  4544. Likewise.
  4545. * testsuite/experimental/filesystem/path/query/has_filename.cc:
  4546. Likewise.
  4547. * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
  4548. Likewise.
  4549. * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
  4550. Likewise.
  4551. * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
  4552. Likewise.
  4553. * testsuite/experimental/filesystem/path/query/has_root_name.cc:
  4554. Likewise.
  4555. * testsuite/experimental/filesystem/path/query/has_root_path.cc:
  4556. Likewise.
  4557. * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
  4558. * testsuite/experimental/filesystem/path/query/is_relative.cc:
  4559. Likewise.
  4560. PR libstdc++/84159
  4561. * include/bits/fs_path.h (path::operator/=, path::append): Construct
  4562. temporary path before calling _M_append.
  4563. (path::_M_append): Change parameter to path and implement C++17
  4564. semantics.
  4565. * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
  4566. and more examples from the standard.
  4567. * testsuite/27_io/filesystem/path/append/source.cc: New.
  4568. * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
  4569. * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
  4570. * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
  4571. __invoke to prevent ADL.
  4572. 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
  4573. PR libstdc++/81256
  4574. * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
  4575. exceptions from _M_terminate_output().
  4576. * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
  4577. exceptions from close().
  4578. * testsuite/27_io/basic_filebuf/close/81256.cc: New.
  4579. * include/bits/valarray_array.h (__valarray_get_memory): Remove.
  4580. (__valarray_get_storage): Call operator new directly. Remove ignored
  4581. top-level restrict qualifier and add malloc attribute instead.
  4582. (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
  4583. PR libstdc++/67554
  4584. * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
  4585. (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
  4586. PR libstdc++/82966
  4587. * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
  4588. instead of type.
  4589. * testsuite/23_containers/set/modifiers/node_swap.cc: New.
  4590. 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
  4591. PR libstdc++/80165
  4592. * testsuite/20_util/variant/80165.cc: New.
  4593. 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
  4594. * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
  4595. * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
  4596. of C++11 containers with Debug Mode support.
  4597. * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
  4598. * doc/html/*: Regenerate.
  4599. 2018-05-10 Jason Merrill <jason@redhat.com>
  4600. * include/bits/regex_compiler.h (_S_cache_size): Change from
  4601. function to variable.
  4602. 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
  4603. PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
  4604. * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
  4605. argument defaulted to +1. Doxy comments on same.
  4606. * testsuite/special_functions/02_assoc_legendre/
  4607. check_value.cc: Regen.
  4608. * testsuite/tr1/5_numerical_facilities/special_functions/
  4609. 02_assoc_legendre/check_value.cc: Regen.
  4610. 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
  4611. PR libstdc++/85729
  4612. * include/bits/c++config.h (__replacement_assert): Add linkage
  4613. specification.
  4614. * include/bits/std_abs.h: Add comment to closing brace of block.
  4615. * include/c_global/cstddef: Add linkage specification.
  4616. * include/c_global/cstring: Likewise.
  4617. * include/c_global/cwchar: Likewise.
  4618. 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
  4619. * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
  4620. Rename in...
  4621. (_Safe_iterator<>::_S_constant()): ...that.
  4622. * include/debug/safe_local_iterator.h
  4623. (_Safe_local_iterator<>::_M_constant()): Rename in...
  4624. (_Safe_local_iterator<>::_S_constant()): ...that.
  4625. * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
  4626. (_Iterator_state::__rbegin): New.
  4627. (_Iterator_state::__rmiddle): New.
  4628. (_Iterator_state::__rend): New.
  4629. (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
  4630. _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
  4631. iterator type.
  4632. (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
  4633. _Is_iterator)): Likewise.
  4634. (_Parameter::_S_reverse_state(_Iterator_state)): New.
  4635. (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
  4636. _Is_iterator)): New.
  4637. (_Parameter(std::reverse_iterator<> const&, const char*,
  4638. _Is_iterator)): New.
  4639. (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
  4640. const char*, _Is_iterator)): New.
  4641. (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
  4642. New.
  4643. (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
  4644. _Is_iterator)): New.
  4645. * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
  4646. * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
  4647. * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
  4648. 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
  4649. * include/bits/std_function.h (_Base_manager::_M_get_pointer):
  4650. Use constexpr if in C++17 mode.
  4651. (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
  4652. Copy from const object.
  4653. * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
  4654. 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
  4655. * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
  4656. [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
  4657. backtrace.
  4658. * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
  4659. * include/debug/functions.h (__check_valid_range): Use latter.
  4660. * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
  4661. use latter.
  4662. * include/debug/deque
  4663. (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
  4664. * include/debug/forward_list
  4665. (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
  4666. Likewise.
  4667. * include/debug/list
  4668. (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4669. * include/debug/list
  4670. (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4671. * include/debug/map.h
  4672. (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4673. (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
  4674. Likewise.
  4675. * include/debug/multimap.h
  4676. (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4677. (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
  4678. const _Alloc&)): Likewise.
  4679. * include/debug/set.h
  4680. (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4681. (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
  4682. Likewise.
  4683. * include/debug/multiset.h
  4684. (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
  4685. (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
  4686. const _Alloc&)): Likewise.
  4687. * include/debug/string
  4688. (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
  4689. Likewise.
  4690. * include/debug/unordered_map
  4691. (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
  4692. Likewise.
  4693. (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
  4694. const _Alloc&)): Likewise.
  4695. * include/debug/unordered_set
  4696. (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
  4697. Likewise.
  4698. (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
  4699. const _Alloc&)): Likewise.
  4700. * include/debug/vector
  4701. (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
  4702. * include/debug/formatter.h (_Error_formatter::_M_function): New.
  4703. (_Error_formatter(const char*, unsigned int)): Adapt.
  4704. (_Error_formatter::_M_at): Rename in...
  4705. (_Error_formatter::_S_at): ...that and adapt.
  4706. * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
  4707. (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
  4708. * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
  4709. when available.
  4710. 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
  4711. * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
  4712. Use normal std::vector even in Debug Mode.
  4713. PR libstdc++/85672
  4714. * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
  4715. to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
  4716. * include/Makefile.in: Regenerate.
  4717. * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
  4718. within conditional block.
  4719. 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
  4720. * doc/xml/manual/using.xml (table.cmd_options): Document that the
  4721. C++17 Filesystem implementation also needs -lstdc++fs.
  4722. PR libstdc++/85671
  4723. * include/bits/fs_path.h (operator/): Permit copy elision.
  4724. * include/experimental/bits/fs_path.h (operator/): Likewise.
  4725. 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
  4726. Moar PR libstdc++/80506
  4727. * include/bits/random.tcc (gamma_distribution::__generate_impl()):
  4728. Fix magic number used in loop condition.
  4729. 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
  4730. PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
  4731. * include/std/optional (_Optional_payload): Add noexcept to default
  4732. constructor. Re-indent.
  4733. (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
  4734. constructor for copying disengaged payloads.
  4735. (_Optional_payload<_Tp, true, false, true>): Likewise.
  4736. (_Optional_payload<_Tp, true, true, false>): Likewise.
  4737. (_Optional_payload<_Tp, true, false, false>): Likewise.
  4738. * testsuite/20_util/optional/cons/85642.cc: New.
  4739. * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
  4740. 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
  4741. PR libstdc++/82644
  4742. * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
  4743. inline definitions instead of using-declarations.
  4744. [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
  4745. * testsuite/tr1/5_numerical_facilities/special_functions/
  4746. 07_conf_hyperg/compile_cxx17.cc: New.
  4747. * testsuite/tr1/5_numerical_facilities/special_functions/
  4748. 17_hyperg/compile_cxx17.cc: New.
  4749. PR libstdc++/84769
  4750. * include/std/variant (visit): Qualify std::get call.
  4751. PR libstdc++/85632 use uintmax_t for arithmetic
  4752. * src/filesystem/ops.cc (experimental::filesystem::space): Perform
  4753. arithmetic in result type.
  4754. * src/filesystem/std-ops.cc (filesystem::space): Likewise.
  4755. * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
  4756. is greater than free space.
  4757. * testsuite/experimental/filesystem/operations/space.cc: New.
  4758. * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
  4759. * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
  4760. New.
  4761. * testsuite/20_util/remove_cvref/value.cc: New.
  4762. * testsuite/20_util/remove_cvref/value_ext.cc: New.
  4763. PR libstdc++/84087 LWG DR 2268 basic_string default arguments
  4764. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
  4765. (append(const basic_string&, size_type, size_type)
  4766. (assign(const basic_string&, size_type, size_type)
  4767. (insert(size_type, const basic_string&, size_type, size_type)
  4768. (replace(size_type,size_type,const basic_string&,size_type,size_type)
  4769. (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
  4770. Add default arguments (LWG 2268).
  4771. [_GLIBCXX_USE_CXX11_ABI=0]
  4772. (append(const basic_string&, size_type, size_type)
  4773. (assign(const basic_string&, size_type, size_type)
  4774. (insert(size_type, const basic_string&, size_type, size_type)
  4775. (replace(size_type,size_type,const basic_string&,size_type,size_type)
  4776. (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
  4777. Likewise.
  4778. * testsuite/21_strings/basic_string/dr2268.cc: New test.
  4779. PR libstdc++/84535
  4780. * include/std/thread (thread::__not_same): New SFINAE helper.
  4781. (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
  4782. first argument is not a std::thread. Add static assertion to check
  4783. INVOKE expression is valid.
  4784. (thread::thread(thread&), thread::thread(const thread&&)): Remove.
  4785. (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
  4786. __invoke_result for return types and remove exception specifications.
  4787. * testsuite/30_threads/thread/cons/84535.cc: New.
  4788. * include/std/future (__async_result_of): Use __invoke_result instead
  4789. of result_of.
  4790. * include/std/any (any_cast): Use __remove_cvref_t.
  4791. * include/std/tuple (__make_tuple): Likewise.
  4792. * include/std/type_traits (__remove_cvref_t): Define.
  4793. (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
  4794. [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
  4795. * include/std/variant (__erased_hash): Use __remove_cvref_t.
  4796. 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
  4797. * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
  4798. ensure overloaded comma not used.
  4799. * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
  4800. * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
  4801. * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
  4802. * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
  4803. * testsuite/23_containers/list/modifiers/assign/1.cc: New.
  4804. * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
  4805. * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
  4806. 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
  4807. PR libstdc++/68197
  4808. * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
  4809. indices to unsigned.
  4810. * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
  4811. as failure. Refactor error handling.
  4812. * testsuite/27_io/ios_base/storage/68197.cc: New.
  4813. PR libstdc++/57997
  4814. PR libstdc++/83860
  4815. * include/bits/gslice_array.h (gslice_array): Define default
  4816. constructor as deleted, as per C++11 standard.
  4817. * include/bits/mask_array.h (mask_array): Likewise.
  4818. * include/bits/slice_array.h (slice_array): Likewise.
  4819. * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
  4820. to namespace __detail.
  4821. (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
  4822. members.
  4823. * include/bits/valarray_before.h (_ValArrayRef): New helper for type
  4824. of data members in closure objects.
  4825. (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
  4826. (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
  4827. __detail.
  4828. (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
  4829. (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
  4830. (_SBase::_M_expr): Use _ValArrayRef for type of data members.
  4831. * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
  4832. (_ValFunClos, _RefFunClos): Move to namespace __detail and add
  4833. using-declarations to namespace std.
  4834. * testsuite/26_numerics/valarray/83860.cc: New.
  4835. * testsuite/backward/strstream_move.cc: Remove duplicate function
  4836. call.
  4837. PR libstdc++/69608
  4838. * include/backward/strstream (strstreambuf): Define move constructor
  4839. and move assignment operator.
  4840. (istrstream, ostrstream, strstream): Likewise.
  4841. * testsuite/backward/strstream_move.cc: New.
  4842. 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
  4843. PR libstdc++/84654
  4844. * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
  4845. * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
  4846. * configure: Regenerate.
  4847. * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
  4848. based on ENABLE_FLOAT128.
  4849. * include/Makefile.in: Regenerate.
  4850. * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
  4851. [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
  4852. _GLIBCXX_USE_FLOAT128.
  4853. 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
  4854. * configure: Regenerated.
  4855. 2018-04-19 Jakub Jelinek <jakub@redhat.com>
  4856. * configure: Regenerated.
  4857. 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
  4858. Jakub Jelinek <jakub@redhat.com>
  4859. PR libstdc++/85442
  4860. * src/c++11/Makefile.am: Don't generate debuginfo again for
  4861. cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
  4862. * src/c++11/Makefile.in: Regenerate.
  4863. 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
  4864. PR libstdc++/84442
  4865. * testsuite/30_threads/thread/cons/terminate.cc
  4866. [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
  4867. 2018-04-18 David Malcolm <dmalcolm@redhat.com>
  4868. PR jit/85384
  4869. * configure: Regenerate.
  4870. 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
  4871. * testsuite/experimental/filesystem/file_status/1.cc: Add
  4872. -DUSE_FILESYSTEM_TS to dg-options.
  4873. * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
  4874. Likewise.
  4875. * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
  4876. * testsuite/experimental/filesystem/iterators/
  4877. recursive_directory_iterator.cc: Likewise.
  4878. * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
  4879. * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
  4880. * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
  4881. * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
  4882. * testsuite/experimental/filesystem/operations/create_directories.cc:
  4883. Likewise.
  4884. * testsuite/experimental/filesystem/operations/create_directory.cc:
  4885. Likewise.
  4886. * testsuite/experimental/filesystem/operations/create_symlink.cc:
  4887. Likewise.
  4888. * testsuite/experimental/filesystem/operations/current_path.cc:
  4889. Likewise.
  4890. * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
  4891. * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
  4892. * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
  4893. * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
  4894. * testsuite/experimental/filesystem/operations/last_write_time.cc:
  4895. Likewise.
  4896. * testsuite/experimental/filesystem/operations/permissions.cc:
  4897. Likewise.
  4898. * testsuite/experimental/filesystem/operations/read_symlink.cc:
  4899. Likewise.
  4900. * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
  4901. * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
  4902. * testsuite/experimental/filesystem/operations/status.cc: Likewise.
  4903. * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
  4904. Likewise.
  4905. * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
  4906. * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
  4907. * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
  4908. * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
  4909. * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
  4910. * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
  4911. * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
  4912. * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
  4913. * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
  4914. * testsuite/experimental/filesystem/path/construct/default.cc:
  4915. Likewise.
  4916. * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
  4917. * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
  4918. * testsuite/experimental/filesystem/path/construct/string_view.cc:
  4919. Likewise.
  4920. * testsuite/experimental/filesystem/path/decompose/extension.cc:
  4921. Likewise.
  4922. * testsuite/experimental/filesystem/path/decompose/filename.cc:
  4923. Likewise.
  4924. * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
  4925. Likewise.
  4926. * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
  4927. Likewise.
  4928. * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
  4929. Likewise.
  4930. * testsuite/experimental/filesystem/path/decompose/root_name.cc:
  4931. Likewise.
  4932. * testsuite/experimental/filesystem/path/decompose/root_path.cc:
  4933. Likewise.
  4934. * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
  4935. * testsuite/experimental/filesystem/path/generic/generic_string.cc:
  4936. Likewise.
  4937. * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
  4938. * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
  4939. * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
  4940. Likewise.
  4941. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
  4942. Likewise.
  4943. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
  4944. Likewise.
  4945. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
  4946. Likewise.
  4947. * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
  4948. * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
  4949. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
  4950. Likewise.
  4951. * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
  4952. * testsuite/experimental/filesystem/path/query/has_extension.cc:
  4953. Likewise.
  4954. * testsuite/experimental/filesystem/path/query/has_filename.cc:
  4955. Likewise.
  4956. * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
  4957. Likewise.
  4958. * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
  4959. Likewise.
  4960. * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
  4961. Likewise.
  4962. * testsuite/experimental/filesystem/path/query/has_root_name.cc:
  4963. Likewise.
  4964. * testsuite/experimental/filesystem/path/query/has_root_path.cc:
  4965. Likewise.
  4966. * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
  4967. * testsuite/experimental/filesystem/path/query/is_relative.cc:
  4968. Likewise.
  4969. 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
  4970. * src/c++11/Makefile.am: Fix sed command.
  4971. * src/c++11/Makefile.in: Regenerate.
  4972. * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
  4973. handle mangled names starting with double underscores on darwin.
  4974. * src/c++11/Makefile.in: Regenerate.
  4975. 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
  4976. * src/c++11/Makefile.am: Fix comment.
  4977. * src/c++11/Makefile.in: Regenerate.
  4978. * src/c++11/cxx11-ios_failure.cc: Fix comment.
  4979. * src/c++98/ios_failure.cc: Likewise.
  4980. * src/c++11/ios.cc: Remove redundant macro definition.
  4981. 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
  4982. * doc/xml/manual/abi.xml: Document header locations in recent
  4983. releases.
  4984. * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
  4985. * doc/xml/manual/spine.xml: Update copyright years.
  4986. * doc/xml/manual/strings.xml: Adjust tolower example to avoid
  4987. undefined behaviour.
  4988. * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
  4989. * doc/html/*: Regenerate.
  4990. 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
  4991. * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
  4992. * doc/xml/manual/backwards_compatibility.xml: Likewise.
  4993. * doc/xml/manual/containers.xml: Likewise.
  4994. * doc/xml/manual/debug_mode.xml: Likewise.
  4995. * doc/xml/manual/extensions.xml: Likewise.
  4996. * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
  4997. * doc/xml/manual/using.xml: Likewise.
  4998. * doc/xml/manual/utilities.xml: Likewise.
  4999. PR libstdc++/85222
  5000. * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
  5001. cxx11-ios_failure.cc to rewrite type info for __ios_failure.
  5002. * src/c++11/Makefile.in: Regenerate.
  5003. * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
  5004. New types.
  5005. [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
  5006. * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
  5007. * src/c++98/ios_failure.cc (__construct_ios_failure)
  5008. (__destroy_ios_failure, is_ios_failure_handler): New functions.
  5009. [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
  5010. * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
  5011. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
  5012. handler types, to always catch std::ios_base::failure.
  5013. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
  5014. * testsuite/27_io/basic_istream/extractors_arithmetic/char/
  5015. exceptions_failbit.cc: Likewise.
  5016. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
  5017. exceptions_failbit.cc: Likewise.
  5018. * testsuite/27_io/basic_istream/extractors_other/char/
  5019. exceptions_null.cc: Likewise.
  5020. * testsuite/27_io/basic_istream/extractors_other/wchar_t/
  5021. exceptions_null.cc: Likewise.
  5022. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
  5023. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
  5024. * testsuite/27_io/basic_ostream/inserters_other/char/
  5025. exceptions_null.cc: Likewise.
  5026. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
  5027. exceptions_null.cc: Likewise.
  5028. * testsuite/27_io/ios_base/storage/2.cc: Likewise.
  5029. 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
  5030. * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
  5031. __get calls to avoid ADL and avoid ambiguity due to Clang bug.
  5032. 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
  5033. PR libstdc++/85183
  5034. * include/std/variant (_Move_assign_base::operator=): Fix incorrect
  5035. value categories.
  5036. * testsuite/20_util/variant/85183.cc: New.
  5037. 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
  5038. * include/std/variant (__get): Qualify calls to avoid ADL.
  5039. (__select_index): Adjust whitespace.
  5040. (variant): Add using-declaration to workaround Clang bug.
  5041. 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
  5042. PR libstdc++/85040
  5043. * include/bits/stl_function.h (greater::__not_overloaded)
  5044. (less::__not_overloaded, greater_equal::__not_overloaded)
  5045. (less_equal::__not_overloaded): Fix ambiguous specializations.
  5046. * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
  5047. tests for type with overloaded operators.
  5048. 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  5049. PR libstdc++/77691
  5050. * testsuite/experimental/memory_resource/resource_adaptor.cc:
  5051. xfail execution on 32-bit Solaris/x86.
  5052. 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
  5053. * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
  5054. VERIFY instead of assert.
  5055. * testsuite/20_util/hash/84998.cc: New test.
  5056. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
  5057. copy of test adjusted for Debug Mode.
  5058. * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
  5059. test in Debug Mode.
  5060. 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
  5061. PR libstdc++/84998
  5062. * include/bits/stl_bvector.h: Fix std::hash friend declaration.
  5063. * include/std/bitset: Likewise.
  5064. * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
  5065. declaration.
  5066. * include/bits/stl_multimap.h (std::multimap<>): Likewise.
  5067. * include/bits/stl_multiset.h (std::multiset<>): Likewise.
  5068. * include/bits/stl_set.h (std::set<>): Likewise.
  5069. * include/bits/unordered_map.h (std::unordered_map<>): Fix
  5070. _Hash_merge_helper friend declaration.
  5071. (std::unordered_multimap<>): Likewise.
  5072. * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
  5073. (std::unordered_multiset<>): Likewise.
  5074. 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
  5075. * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
  5076. trailing slash for domain level link.
  5077. * doc/xml/faq.xml: Ditto.
  5078. * doc/xml/manual/appendix_free.xml (software): Ditto.
  5079. * doc/xml/manual/intro.xml: Ditto.
  5080. * doc/xml/manual/spine.xml: Ditto.
  5081. * doc/xml/spine.xml: Ditto.
  5082. 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
  5083. * doc/xml/manual/documentation_hacking.xml: Adjust link to
  5084. docbook.org.
  5085. 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
  5086. * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
  5087. to compile as C++98.
  5088. 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
  5089. PR libstdc++/78420
  5090. * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
  5091. (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
  5092. to ensure total order for pointers.
  5093. (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
  5094. Add operator() overloads for pointer arguments and make generic
  5095. overloads dispatch to new _S_cmp functions when comparisons would
  5096. use built-in operators for pointers.
  5097. * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
  5098. 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
  5099. PR libstdc++/84773
  5100. PR libstdc++/83662
  5101. * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
  5102. * configure: Regenerate.
  5103. * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
  5104. (aligned_alloc): Add using-declaration.
  5105. * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
  5106. 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
  5107. * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
  5108. Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
  5109. registration.
  5110. 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
  5111. PR libstdc++/84769
  5112. * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
  5113. Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
  5114. src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
  5115. src/filesystem/std-ops.cc (create_dir): Likewise.
  5116. 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
  5117. * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
  5118. (StdListIteratorPrinter): Inherit from latter.
  5119. (StdFwdListIteratorPrinter): New, inherit from latter.
  5120. (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
  5121. when iterator has no associated container.
  5122. (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
  5123. __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
  5124. registrations.
  5125. * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
  5126. * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
  5127. 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
  5128. PR libstdc++/84601
  5129. * include/std/optional (_Optional_payload): Split into multiple
  5130. specializations that can handle different cases of trivial or
  5131. non-trivial assignment operators.
  5132. * testsuite/20_util/optional/84601.cc: New.
  5133. * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
  5134. 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
  5135. PR libstdc++/84671
  5136. * include/bits/parse_numbers.h (_Number_help): Add partial
  5137. specialization to handle digit separators. Adjust partial
  5138. specialization for recursion temrination to require _Pow == 1ULL.
  5139. * testsuite/20_util/duration/literals/84671.cc: New
  5140. 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
  5141. Implement the missing bits of LWG 2769
  5142. * include/std/any (any_cast(const any&)): Add static_assert.
  5143. (any_cast(any&)): Likewise.
  5144. (any_cast(any&&)): Likewise, and remove the handling
  5145. for copyable-but-not-movable type.
  5146. * testsuite/20_util/any/misc/any_cast.cc: Adjust.
  5147. * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
  5148. add new tests.
  5149. 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
  5150. PR libstdc++/84532
  5151. * include/std/thread (thread::__make_invoker): Construct tuple
  5152. directly instead of using make_tuple.
  5153. * testsuite/30_threads/async/84532.cc: New.
  5154. * testsuite/30_threads/thread/84532.cc: New.
  5155. 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
  5156. * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
  5157. (template<> __aligned_buffer): Define as __aligned_membuf alias.
  5158. 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
  5159. PR target/84148
  5160. * configure: Regenerate.
  5161. 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
  5162. PR libstdc++/81797
  5163. * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
  5164. * configure: Regenerate.
  5165. * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
  5166. defined.
  5167. * include/Makefile.in: Regenerate.
  5168. 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
  5169. PR libstdc++/83833
  5170. * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
  5171. Add -ffloat-store to options for m68k and ia32.
  5172. * doc/xml/faq.xml: Update copyright years.
  5173. * doc/html/*: Regenerate.
  5174. PR libstdc++/83658
  5175. * include/std/any (any::__do_emplace): Only set _M_manager after
  5176. constructing the contained object.
  5177. * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
  5178. * testsuite/20_util/any/modifiers/83658.cc: New test.
  5179. 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
  5180. PR libstdc++/81076
  5181. * include/c_global/cstddef (__byte_operand): Define primary template.
  5182. * testsuite/18_support/byte/81076.cc: New test.
  5183. 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
  5184. * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
  5185. dg-options and dg-add-options order.
  5186. * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
  5187. * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
  5188. Likewise.
  5189. * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
  5190. * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
  5191. Likewise.
  5192. * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
  5193. Likewise.
  5194. * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
  5195. * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
  5196. Likewise.
  5197. * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
  5198. Likewise.
  5199. * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
  5200. Likewise.
  5201. * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
  5202. Likewise.
  5203. * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
  5204. Likewise.
  5205. * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
  5206. Likewise.
  5207. * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
  5208. Likewise.
  5209. * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
  5210. Likewise.
  5211. * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
  5212. * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
  5213. * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
  5214. * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
  5215. * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
  5216. * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
  5217. * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
  5218. * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
  5219. * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
  5220. Likewise.
  5221. * testsuite/special_functions/19_sph_bessel/check_nan.cc:
  5222. Likewise.
  5223. * testsuite/special_functions/20_sph_legendre/check_nan.cc:
  5224. Likewise.
  5225. * testsuite/special_functions/21_sph_neumann/check_nan.cc:
  5226. Likewise.
  5227. 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
  5228. * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
  5229. include linux/types.h when checking linux/random.h header.
  5230. * config.h.in: Regenerate.
  5231. * configure: Ditto.
  5232. * src/c++11/random.cc: Conditionally include linux/types.h.
  5233. 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
  5234. * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
  5235. 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
  5236. PR libstdc++/83834
  5237. * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
  5238. pattern with exact match for std::cerr.
  5239. 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
  5240. PR libstdc++/83833
  5241. * include/bits/random.h (chi_squared_distribution::param): Update
  5242. gamma distribution parameter.
  5243. * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
  5244. test.
  5245. PR libstdc++/83830
  5246. * include/std/type_traits (has_unique_object_representations_v): Add
  5247. variable template.
  5248. * testsuite/20_util/has_unique_object_representations/value.cc: Check
  5249. variable template.
  5250. 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
  5251. Make optional conditionally
  5252. trivially_{copy,move}_{constructible,assignable}
  5253. * include/std/optional (_Optional_payload): Fix the comment in
  5254. the class head and turn into a primary and one specialization.
  5255. (_Optional_payload::_M_engaged): Strike the NSDMI.
  5256. (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
  5257. New.
  5258. (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
  5259. Likewise.
  5260. (_Optional_payload<_Tp, false>::_M_get): Likewise.
  5261. (_Optional_payload<_Tp, false>::_M_reset): Likewise.
  5262. (_Optional_base_impl): Likewise.
  5263. (_Optional_base): Turn into a primary and three specializations.
  5264. (optional(nullopt)): Change the base init.
  5265. * testsuite/20_util/optional/assignment/8.cc: New.
  5266. * testsuite/20_util/optional/cons/trivial.cc: Likewise.
  5267. * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
  5268. 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
  5269. PR libstdc++/80276
  5270. * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
  5271. (get_template_arg_list): New.
  5272. (StdVariantPrinter._template_args): Remove, use get_template_arg_list
  5273. instead.
  5274. (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
  5275. of strings and regular expressions.
  5276. (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
  5277. (FilteringTypePrinter): Add docstring. Match using startswith. Use
  5278. strip_inline_namespaces instead of strip_versioned_namespace.
  5279. (add_one_type_printer): Prepend namespace to match argument.
  5280. (register_type_printers): Add type printers for char16_t and char32_t
  5281. string types and for types using cxx11 ABI. Update calls to
  5282. add_one_template_type_printer to provide default argument dicts.
  5283. * testsuite/libstdc++-prettyprinters/80276.cc: New test.
  5284. * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
  5285. basic_string<unsigned char> and basic_string<signed char>.
  5286. * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
  5287. to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
  5288. 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
  5289. PR libstdc++/81092
  5290. * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
  5291. 2018-01-13 Tim Shen <timshen@google.com>
  5292. PR libstdc++/83601
  5293. * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
  5294. * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
  5295. * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
  5296. 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  5297. PR libstdc++/64054
  5298. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
  5299. Remove dg-xfail-run-if.
  5300. 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
  5301. * include/bits/forward_list.h
  5302. (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
  5303. (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
  5304. (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
  5305. (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
  5306. (_Fwd_list_impl()): Add noexcept qualification.
  5307. (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
  5308. (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
  5309. (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
  5310. (_Fwd_list_base()): Default.
  5311. (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
  5312. (_Fwd_list_base(_Fwd_list_base&&)): Default.
  5313. (forward_list<>()): Default.
  5314. (forward_list<>(forward_list&&)): Default.
  5315. (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
  5316. (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
  5317. (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
  5318. * include/bits/forward_list.tcc
  5319. (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
  5320. _M_impl._M_head move assignment.
  5321. (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
  5322. * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
  5323. 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
  5324. PR libstdc++/80276
  5325. * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
  5326. (UniquePointerPrinter): Print correct template argument, not type of
  5327. the pointer.
  5328. (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
  5329. a type.
  5330. * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
  5331. array type.
  5332. * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
  5333. weak_ptr of array types.
  5334. 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
  5335. PR libstdc++/83709
  5336. * include/bits/hashtable_policy.h
  5337. (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
  5338. __first != __last.
  5339. (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
  5340. (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
  5341. Add false_type parameter.
  5342. (_Insert_base::insert): Adapt.
  5343. * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
  5344. Adapt.
  5345. (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
  5346. Add __n_elt parameter, defaulted to 1.
  5347. (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
  5348. policy _M_need_rehash.
  5349. (_Hashtable::_M_merge_unique): Pass target number of elements to add to
  5350. produce only 1 rehash if necessary.
  5351. * testsuite/23_containers/unordered_map/insert/83709.cc: New.
  5352. * testsuite/23_containers/unordered_set/insert/83709.cc: New.
  5353. 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
  5354. Jonathan Wakely <jwakely@redhat.com>
  5355. PR libstdc++/59253 (partial)
  5356. * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
  5357. type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
  5358. (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
  5359. children.
  5360. * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
  5361. of unique_ptr printer.
  5362. * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
  5363. output of shared_ptr printer.
  5364. 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
  5365. PR libstdc++/83626
  5366. * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
  5367. unnecessary symlink_status call.
  5368. (remove_all(const path&, error_code&)): Use filesystem::remove.
  5369. * src/filesystem/std-ops.cc: Likewise.
  5370. PR libstdc++/83279
  5371. * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
  5372. sendfile.
  5373. PR libstdc++/83626
  5374. * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
  5375. report an error for ENOENT.
  5376. (remove_all(const path&)): Fix type of result variable.
  5377. (remove_all(const path&, error_code&)): Use non-throwing increment
  5378. for directory iterator. Call POSIX remove directly to avoid redundant
  5379. calls to symlink_status. Do not report errors for ENOENT.
  5380. * src/filesystem/std-ops.cc: Likewise.
  5381. * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
  5382. overload.
  5383. * testsuite/experimental/filesystem/operations/remove_all.cc:
  5384. Likewise.
  5385. 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
  5386. PR libstdc++/83626
  5387. * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
  5388. redundant call to ec.clear().
  5389. (remove_all(const path&, error_code&))): Do not return an error for
  5390. non-existent paths.
  5391. * src/filesystem/std-ops.cc: Likewise.
  5392. * testsuite/27_io/filesystem/operations/remove.cc: New test.
  5393. * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
  5394. results for non-existent paths.
  5395. * testsuite/experimental/filesystem/operations/remove.cc: New test.
  5396. * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
  5397. expected results for non-existent paths.
  5398. * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
  5399. check status_known once.
  5400. * include/experimental/bits/fs_ops.h: Likewise.
  5401. PR libstdc++/83607
  5402. * include/std/functional (__is_byte_like): New trait.
  5403. (__is_std_equal_to): Remove.
  5404. (__boyer_moore_base_t): Use __is_byte_like instead of
  5405. __is_std_equal_to.
  5406. * include/experimental/functional (__is_std_equal_to): Remove.
  5407. (__boyer_moore_base_t): Use __is_byte_like instead of
  5408. __is_std_equal_to.
  5409. * testsuite/20_util/function_objects/83607.cc: New test.
  5410. 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
  5411. Protect optional's deduction guide with the feature macro
  5412. * include/std/optional: Use the feature macro.
  5413. 2018-01-03 Jakub Jelinek <jakub@redhat.com>
  5414. Update copyright years.
  5415. Copyright (C) 2018 Free Software Foundation, Inc.
  5416. Copying and distribution of this file, with or without modification,
  5417. are permitted in any medium without royalty provided the copyright
  5418. notice and this notice are preserved.