ChangeLog-2017 186 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506
  1. 2017-12-27 Jonathan Wakely <jwakely@redhat.com>
  2. PR libstdc++/83600
  3. * include/bits/regex.h (match_results::end()): Return valid iterator
  4. when not ready.
  5. * testsuite/28_regex/match_results/ctors/char/default.cc: Check that
  6. unready objects are empty and have equal begin and end iterators.
  7. * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
  8. PR libstdc++/83598
  9. * include/bits/regex.h (basic_regex): Don't modify flags passed to
  10. constructors.
  11. * testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
  12. PR libstdc++/83538
  13. * doc/xml/manual/intro.xml: Document LWG 2306 change.
  14. * include/bits/regex.h (match_results::reference): Change to
  15. non-const reference.
  16. * testsuite/28_regex/match_results/typedefs.cc: Check types are
  17. correct.
  18. 2017-12-24 Michele Pezzutti <mpezz@tiscali.it>
  19. PR libstdc++/83237
  20. * include/bits/random.tcc (poisson_distribution<>::operator()):
  21. Fix __x = 1 case - see updated Errata of Devroye's treatise.
  22. * testsuite/26_numerics/random/poisson_distribution/operators/
  23. values.cc: Add test.
  24. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
  25. line number.
  26. 2017-12-24 Jonathan Wakely <jwakely@redhat.com>
  27. PR libstdc++/83450
  28. * testsuite/21_strings/basic_string/pthread18185.cc: Add return
  29. statement.
  30. 2017-12-20 François Dumont <fdumont@gcc.gnu.org>
  31. PR libstdc++/82522
  32. * include/debug/map.h (map::insert(value_type&&))
  33. (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
  34. * include/debug/multimap.h (multimap::insert(value_type&&))
  35. (multimap::insert(const_iterator, value_type&&)): Likewise.
  36. * include/debug/unordered_map (unordered_map::insert(value_type&&))
  37. (unordered_map::insert(const_iterator, value_type&&))
  38. (unordered_multimap::insert(value_type&&))
  39. (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
  40. * testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
  41. * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
  42. New.
  43. * testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
  44. * testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
  45. New.
  46. 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
  47. * config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Check
  48. __ARM_BIG_ENDIAN instead of __AARCH64EB__.
  49. 2017-12-18 François Dumont <fdumont@gcc.gnu.org>
  50. PR libstdc++/80761
  51. * include/debug/map.h
  52. (std::__debug::map<>::insert_return_type): Define using
  53. _Node_insert_return.
  54. * include/debug/set.h (std::__debug::set<>::insert_return_type):
  55. Likewise.
  56. * include/debug/unordered_map:
  57. (std::__debug::unordered_map<>::insert_return_type): Likewise.
  58. * include/debug/unordered_set:
  59. (std::__debug::unordered_set<>::insert_return_type): Likewise.
  60. 2017-12-18 Ville Voutilainen <ville.voutilainen@gmail.com>
  61. PR libstdc++/68430
  62. * testsuite/20_util/is_constructible/68430.cc: New.
  63. 2017-12-16 Martin Sebor <msebor@redhat.com>
  64. PR tree-optimization/83239
  65. * include/bits/vector.tcc (vector::_M_default_append): Assert
  66. invariant to generate better code.
  67. 2017-12-14 Jonathan Wakely <jwakely@redhat.com>
  68. PR libstdc++/83279
  69. * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
  70. copying entire file.
  71. PR libstdc++/68519
  72. * include/std/condition_variable (condition_variable::wait_for):
  73. Convert duration to native clock's duration before addition.
  74. * testsuite/30_threads/condition_variable/members/68519.cc: New test.
  75. PR libstdc++/83427
  76. * include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
  77. from <bits/std_function.h>.
  78. (_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
  79. (_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
  80. for function types. Remove partial specializations for member
  81. functions.
  82. (_Weak_result_type_impl): Remove unused partial specializations for
  83. non-referenceable function types and for references to functions.
  84. (_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
  85. helpers to handle member functions via _Mem_fn_traits.
  86. (_Weak_result_type, reference_wrapper): Derive from new helpers.
  87. * include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
  88. to <bits/refwrap.h>.
  89. * include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
  90. (_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
  91. * testsuite/20_util/bind/83427.cc: New test.
  92. * testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
  93. check for weak result types.
  94. * testsuite/20_util/reference_wrapper/83427.cc: New test.
  95. * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
  96. Add tests using noskipws.
  97. * testsuite/26_numerics/complex/dr2714.cc: Move to ...
  98. * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
  99. ... Here. Remove duplicate header and dg-options. Check first invalid
  100. character gets putback. Remove wchar_t test.
  101. 2017-12-13 Jonathan Wakely <jwakely@redhat.com>
  102. PR libstdc++/59568
  103. * include/std/complex (operator>>): Implement proposed resolution to
  104. LWG 2714. Use putback if and only if a character has been successfully
  105. extracted but isn't a delimiter. Use ctype::widen and traits::eq when
  106. testing if extracted characters match delimiters.
  107. * testsuite/26_numerics/complex/dr2714.cc: New test.
  108. 2017-12-12 Jonathan Wakely <jwakely@redhat.com>
  109. PR libstdc++/83395
  110. * include/std/type_traits (__is_invocable_impl): Remove partial
  111. specialization for INVOKE<void> and restore is_void<R> check in
  112. primary template.
  113. (__is_nt_invocable_impl): Likewise.
  114. * testsuite/20_util/is_invocable/83395.cc: New test.
  115. * testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
  116. 2017-12-07 David Edelsohn <dje.gcc@gmail.com>
  117. PR libstdc++/83120
  118. * testsuite/ext/special_functions/hyperg/check_value.cc: Add
  119. -ffp-contract=off. Add -ffloat-store for m68* and ia32.
  120. * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc: Same.
  121. 2017-12-07 Martin Sebor <msebor@redhat.com>
  122. PR c/81544
  123. * include/ext/mt_allocator.h (_M_destroy_thread_key): Remove
  124. attribute const.
  125. 2017-12-05 Jason Merrill <jason@redhat.com>
  126. Jonathan Wakely <jwakely@redhat.com>
  127. * include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
  128. (permissions): Add noexcept.
  129. * include/bits/fs_ops.h (permissions): Add noexcept.
  130. * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
  131. _GLIBCXX_NOTHROW.
  132. 2017-12-04 Jonathan Wakely <jwakely@redhat.com>
  133. * include/bits/regex_compiler.tcc: Use C-style comment to work around
  134. PR preprocessor/61638.
  135. (__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
  136. * config/io/basic_file_stdio.h (__basic_file): Remove name of unused
  137. parameter.
  138. * include/bits/boost_concept_check.h: Add pragmas to disable
  139. -Wunused-local-typedef warnings.
  140. * include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
  141. (codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
  142. parameter.
  143. * include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
  144. (time_get::do_get_monthname, time_get::do_get_year): Remove unused
  145. variables.
  146. * include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
  147. unused parameter.
  148. * include/std/streambuf (_IsUnused): Define.
  149. (basic_streambuf::imbue, basic_streambuf::pbackfail)
  150. (basic_streambuf::overflow): Add macro to unused parameters.
  151. * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
  152. 2017-12-01 Jonathan Wakely <jwakely@redhat.com>
  153. * include/experimental/string_view (basic_string_view::_S_compare):
  154. Use value-init so narrowing conversions are not ill-formed.
  155. * include/std/string_view (basic_string_view::_S_compare): Likewise.
  156. * include/bits/basic_string.h (operator""s): Add pragmas to disable
  157. -Wliteral-suffix warnings.
  158. * include/experimental/string_view (operator""sv): Likewise.
  159. * include/std/chrono (operator""h, operator""min, operator""s)
  160. (operator""ms, operator""us, operator""ns): Likewise.
  161. * include/std/complex (operator""if, operator""i, operator""il):
  162. Likewise.
  163. * include/std/string_view (operator""sv): Likewise.
  164. * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
  165. * include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
  166. fallthrough comment.
  167. * include/bits/node_handle.h (_Node_handle_common::operator=)
  168. (_Node_handle_common::_M_swap): Add braces around debug assertions.
  169. * include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
  170. * libsupc++/nested_exception.h (__throw_with_nested_impl): Add
  171. noreturn attribute.
  172. * include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
  173. Remove semi-colon after function body.
  174. * include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
  175. * include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
  176. list-init.
  177. * include/std/type_traits (integral_constant): Make member functions
  178. noexcept (LWG 2346).
  179. * include/std/utility (integer_sequence): Likewise.
  180. 2017-11-30 Jonathan Wakely <jwakely@redhat.com>
  181. PR libstdc++/65927
  182. * include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
  183. Remove statement with no effect.
  184. 2017-11-30 Glen Joseph Fernandes <glenjofe@gmail.com>
  185. * include/bits/ptr_traits.h (__to_address, to_address): Move static
  186. assertion.
  187. * testsuite/20_util/to_address/1_neg.cc: New test.
  188. 2017-11-30 Jonathan Wakely <jwakely@redhat.com>
  189. PR libstdc++/83226
  190. * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
  191. pointer-to-reference types.
  192. * testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
  193. 2017-11-29 John David Anglin <danglin@gcc.gnu.org>
  194. * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
  195. 2017-11-29 David Malcolm <dmalcolm@redhat.com>
  196. * testsuite/20_util/duration/literals/range.cc: Update expected
  197. line of a static_assert failure.
  198. 2017-11-28 Glen Joseph Fernandes <glenjofe@gmail.com>
  199. * include/bits/ptr_traits.h (to_address): Implement to_address.
  200. * testsuite/20_util/to_address/1.cc: New test.
  201. 2017-11-27 Stephan Bergmann <sbergman@redhat.com>
  202. * include/std/string_view (basic_string_view::find_first_of): Add
  203. missing noexcept.
  204. * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
  205. * include/debug/unordered_map (unordered_map): Likewise.
  206. 2017-11-23 Jonathan Wakely <jwakely@redhat.com>
  207. * libsupc++/new (launder): Add nodiscard attribute.
  208. * testsuite/18_support/launder/nodiscard.cc: New test.
  209. * include/bits/fs_path.h (path::empty): Add nodiscard attribute.
  210. * include/bits/range_access.h (empty): Likewise.
  211. * include/std/string_view (basic_string_view::empty): Likewise.
  212. * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
  213. test.
  214. * testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
  215. * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
  216. PR libstdc++/83134
  217. * include/std/type_traits (__not_): Explicitly convert to bool.
  218. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
  219. * testsuite/20_util/logical_traits/83134.cc: New test.
  220. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
  221. dg-error.
  222. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
  223. Likewise.
  224. 2017-11-22 Jonathan Wakely <jwakely@redhat.com>
  225. PR go/83102
  226. * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
  227. comparison object pre-C++17.
  228. 2017-11-21 Jonathan Wakely <jwakely@redhat.com>
  229. PR libstdc++/48101
  230. * include/bits/allocator.h (allocator<const _Tp>)
  231. (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
  232. specializations.
  233. * include/bits/forward_list.h (forward_list): Add static assertions.
  234. * include/bits/hashtable.h (__cache_default): Use
  235. __is_nothrow_invocable instead of __is_noexcept_hash.
  236. (_Hashtable): Add static assertions.
  237. * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
  238. * include/bits/stl_deque.h (deque): Add static assertions.
  239. * include/bits/stl_function.h (_Identity<const _Tp>): Add partial
  240. specialization.
  241. * include/bits/stl_list.h (list): Add static assertions.
  242. * include/bits/stl_map.h (map): Likewise.
  243. * include/bits/stl_multimap.h (multimap): Likewise.
  244. * include/bits/stl_multiset.h (multiset): Likewise.
  245. * include/bits/stl_set.h (set): Likewise.
  246. * include/bits/stl_tree.h (_Rb_tree): Likewise.
  247. * include/bits/stl_vector.h (vector): Likewise.
  248. * include/bits/unordered_map.h (unordered_map, unordered_multimap):
  249. Use typename instead of class in template-parameter-list and remove
  250. spaces.
  251. * include/bits/unordered_set.h (unordered_set, unordered_multiset):
  252. Likewise.
  253. * testsuite/23_containers/deque/48101-2_neg.cc: New test.
  254. * testsuite/23_containers/deque/48101_neg.cc: New test.
  255. * testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
  256. * testsuite/23_containers/forward_list/48101_neg.cc: New test.
  257. * testsuite/23_containers/list/48101-2_neg.cc: New test.
  258. * testsuite/23_containers/list/48101_neg.cc: New test.
  259. * testsuite/23_containers/map/48101-2_neg.cc: New test.
  260. * testsuite/23_containers/map/48101_neg.cc: New test.
  261. * testsuite/23_containers/map/operations/31440.cc: Fix comparison
  262. object to have const-qualified call operator.
  263. * testsuite/23_containers/multimap/48101-2_neg.cc: New test.
  264. * testsuite/23_containers/multimap/48101_neg.cc: New test.
  265. * testsuite/23_containers/multiset/48101-2_neg.cc: New test.
  266. * testsuite/23_containers/multiset/48101_neg.cc: New test.
  267. * testsuite/23_containers/set/48101-2_neg.cc: New test.
  268. * testsuite/23_containers/set/48101_neg.cc: New test.
  269. * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
  270. * testsuite/23_containers/unordered_map/48101_neg.cc: New test.
  271. * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
  272. * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
  273. * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
  274. * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
  275. * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
  276. * testsuite/23_containers/unordered_set/48101_neg.cc: New test.
  277. * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
  278. dg-error line number.
  279. * testsuite/23_containers/vector/48101-2_neg.cc: New test.
  280. * testsuite/23_containers/vector/48101_neg.cc: New test.
  281. 2017-11-21 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
  282. * doc/xml/manual/using.xml (manual.intro.using.macros): Move
  283. variablelist element at the end of its list.
  284. 2017-11-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
  285. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
  286. (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
  287. * configure: Regenerate.
  288. 2017-11-20 François Dumont <fdumont@gcc.gnu.org>
  289. * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
  290. std::advance for istreambuf_iterator of char types to be friend.
  291. (std::advance(istreambuf_iterator&, _Distance)): New overload.
  292. * include/std/streambuf (basic_streambuf<>): Declare std::advance for
  293. istreambuf_iterator of char types to be friend.
  294. * testsuite/22_locale/money_get/get/char/9.cc: Have
  295. istreambuf_iterator created on the fly when calling money_get<>::get.
  296. * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
  297. * testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
  298. * testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
  299. * testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
  300. * testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
  301. New.
  302. * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
  303. * testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
  304. New.
  305. * testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
  306. New.
  307. * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
  308. New.
  309. * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
  310. New.
  311. * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
  312. New.
  313. * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
  314. New.
  315. * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
  316. New.
  317. * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
  318. on std::advance overload.
  319. * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
  320. Likewise.
  321. 2017-11-20 Jonathan Wakely <jwakely@redhat.com>
  322. * testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
  323. duplicate dg-options directive.
  324. * testsuite/tr1/5_numerical_facilities/special_functions/
  325. 20_riemann_zeta/check_value_neg.cc: Likewise.
  326. 2017-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
  327. Implement LWG 2353
  328. * include/bits/stl_iterator_base_funcs.h (next):
  329. Use InputIterator instead of ForwardIterator.
  330. * testsuite/24_iterators/operations/lwg2353.cc: New.
  331. * testsuite/24_iterators/operations/next_neg.cc: Remove.
  332. 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
  333. PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
  334. * include/tr1/ell_integral.tcc: Correct the nu sign convention
  335. in ellint_3 and comp_ellint_3.
  336. * testsuite/tr1/5_numerical_facilities/special_functions/
  337. 06_comp_ellint_3/check_value.cc: Regen with correct values.
  338. * testsuite/tr1/5_numerical_facilities/special_functions/
  339. 14_ellint_3/check_value.cc: Ditto.
  340. * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
  341. * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
  342. * testsuite/tr1/5_numerical_facilities/special_functions/
  343. 01_assoc_laguerre/check_value.cc: Regen.
  344. * testsuite/tr1/5_numerical_facilities/special_functions/
  345. 02_assoc_legendre/check_value.cc: Regen.
  346. * testsuite/tr1/5_numerical_facilities/special_functions/
  347. 03_beta/check_value.cc: Regen.
  348. * testsuite/tr1/5_numerical_facilities/special_functions/
  349. 04_comp_ellint_1/check_value.cc: Regen.
  350. * testsuite/tr1/5_numerical_facilities/special_functions/
  351. 05_comp_ellint_2/check_value.cc: Regen.
  352. * testsuite/tr1/5_numerical_facilities/special_functions/
  353. 07_conf_hyperg/check_value.cc: Regen.
  354. * testsuite/tr1/5_numerical_facilities/special_functions/
  355. 08_cyl_bessel_i/check_value.cc: Regen.
  356. * testsuite/tr1/5_numerical_facilities/special_functions/
  357. 09_cyl_bessel_j/check_value.cc: Regen.
  358. * testsuite/tr1/5_numerical_facilities/special_functions/
  359. 10_cyl_bessel_k/check_value.cc: Regen.
  360. * testsuite/tr1/5_numerical_facilities/special_functions/
  361. 11_cyl_neumann/check_value.cc: Regen.
  362. * testsuite/tr1/5_numerical_facilities/special_functions/
  363. 12_ellint_1/check_value.cc: Regen.
  364. * testsuite/tr1/5_numerical_facilities/special_functions/
  365. 13_ellint_2/check_value.cc: Regen.
  366. * testsuite/tr1/5_numerical_facilities/special_functions/
  367. 15_expint/check_value_neg.cc: Regen.
  368. * testsuite/tr1/5_numerical_facilities/special_functions/
  369. 16_hermite/check_value.cc: Regen.
  370. * testsuite/tr1/5_numerical_facilities/special_functions/
  371. 17_hyperg/check_value.cc: Regen.
  372. * testsuite/tr1/5_numerical_facilities/special_functions/
  373. 18_laguerre/check_value.cc: Regen.
  374. * testsuite/tr1/5_numerical_facilities/special_functions/
  375. 19_legendre/check_value.cc: Regen.
  376. * testsuite/tr1/5_numerical_facilities/special_functions/
  377. 20_riemann_zeta/check_value_neg.cc: Regen.
  378. * testsuite/tr1/5_numerical_facilities/special_functions/
  379. 21_sph_bessel/check_value.cc: Regen.
  380. * testsuite/tr1/5_numerical_facilities/special_functions/
  381. 22_sph_legendre/check_value.cc: Regen.
  382. * testsuite/tr1/5_numerical_facilities/special_functions/
  383. 23_sph_neumann/check_value.cc: Regen.
  384. * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
  385. * testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
  386. * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
  387. * testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
  388. * testsuite/special_functions/03_beta/check_value.cc: Regen.
  389. * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
  390. * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
  391. * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
  392. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
  393. * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
  394. * testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
  395. * testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
  396. * testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
  397. * testsuite/special_functions/14_expint/check_value.cc: Regen.
  398. * testsuite/special_functions/15_hermite/check_value.cc: Regen.
  399. * testsuite/special_functions/16_laguerre/check_value.cc: Regen.
  400. * testsuite/special_functions/17_legendre/check_value.cc: Regen.
  401. * testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
  402. * testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
  403. * testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
  404. * testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
  405. * testsuite/tr1/5_numerical_facilities/special_functions/
  406. 06_comp_ellint_3/pr66689.cc: New.
  407. * testsuite/tr1/5_numerical_facilities/special_functions/
  408. 14_ellint_3/pr66689.cc: New.
  409. * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
  410. * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
  411. 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
  412. Expose Airy functions as an extenaion.
  413. * include/bits/specfun.h: Expose airy_ai and airy_bi.
  414. * include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
  415. * testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
  416. * testsuite/ext/special_functions/airy_ai/check_value.cc: New.
  417. * testsuite/ext/special_functions/airy_ai/compile.cc: New.
  418. * testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
  419. * testsuite/ext/special_functions/airy_bi/check_value.cc: New.
  420. * testsuite/ext/special_functions/airy_bi/compile.cc: New.
  421. 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
  422. * acinclude.m4: Add cet.m4.
  423. * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
  424. EXTRA_CXX_FLAGS.
  425. * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
  426. * Makefile.in: Regenerate.
  427. * configure: Likewise.
  428. * doc/Makefile.in: Likewise.
  429. * include/Makefile.in: Likewise.
  430. * libsupc++/Makefile.in: Likewise.
  431. * po/Makefile.in: Likewise.
  432. * python/Makefile.in: Likewise.
  433. * src/Makefile.in: Likewise.
  434. * src/c++11/Makefile.in: Likewise.
  435. * src/c++98/Makefile.in: Likewise.
  436. * src/filesystem/Makefile.in: Likewise.
  437. * testsuite/Makefile.in: Likewise.
  438. 2017-11-17 Jonathan Wakely <jwakely@redhat.com>
  439. PR libstdc++/83025
  440. * include/std/fstream (basic_filebuf::_If_path): Move to
  441. namespace-scope and rename to _If_fs_path.
  442. (basic_filebuf::open): Use new name.
  443. (basic_ifstream(_Path, ios::openmode))
  444. (basic_ifstream::open(_Path, ios::openmode))
  445. (basic_ofstream(_Path, ios::openmode))
  446. (basic_ofstream::open(_Path, ios::openmode))
  447. (basic_fstream(_Path, ios::openmode))
  448. (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
  449. * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
  450. as non-const char*.
  451. * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
  452. * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
  453. * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
  454. * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
  455. * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
  456. * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
  457. 2017-11-17 Marc Glisse <marc.glisse@inria.fr>
  458. * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
  459. values before the allocation.
  460. 2017-11-16 Jonathan Wakely <jwakely@redhat.com>
  461. * include/std/future (shared_future): Add noexcept to copy constructor
  462. and copy-assignment operator (LWG 2799).
  463. 2017-11-15 Ville Voutilainen <ville.voutilainen@gmail.com>
  464. Fix gcd breakage.
  465. * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
  466. 2017-11-15 Jonathan Wakely <jwakely@redhat.com>
  467. * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
  468. error_code unset.
  469. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  470. Check for past-the-end before dereferencing.
  471. * testsuite/experimental/filesystem/iterators/
  472. recursive_directory_iterator.cc: Likewise.
  473. * include/bits/range_access.h (size, empty, data): Add conditional
  474. noexcept to generic overloads.
  475. 2017-11-14 Ville Voutilainen <ville.voutilainen@gmail.com>
  476. Implement LWG 2733 and LWG 2759
  477. * include/experimental/numeric (gcd): Reject cv-qualified bool.
  478. (lcm): Likewise.
  479. * include/std/numeric (gcd): Likewise.
  480. (lcm): Likewise.
  481. * testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
  482. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  483. 2017-11-14 Jonathan Wakely <jwakely@redhat.com>
  484. * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
  485. * testsuite/22_locale/conversions/buffer/3.cc: New test.
  486. 2017-11-10 Jonathan Wakely <jwakely@redhat.com>
  487. * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
  488. PR libstdc++/82917
  489. * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
  490. (basic_fstream::open): Fix missing return.
  491. 2017-11-07 Jonathan Wakely <jwakely@redhat.com>
  492. * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
  493. S_ISSOCK when defined.
  494. 2017-11-06 François Dumont <fdumont@gcc.gnu.org>
  495. * testsuite/libstdc++-prettyprinters/tr1.cc: Compile with -O0.
  496. 2017-11-06 Martin Liska <mliska@suse.cz>
  497. * testsuite/27_io/basic_fstream/cons/char/path.cc (main):
  498. Return a value for functions with non-void return type,
  499. or change type to void, or add -Wno-return-type for test.
  500. * testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
  501. Likewise.
  502. * testsuite/27_io/basic_ofstream/open/char/path.cc (main):
  503. Likewise.
  504. 2017-11-06 Paolo Carlini <paolo.carlini@oracle.com>
  505. * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
  506. warnings.
  507. * testsuite/20_util/pair/cons/deduction.cc: Likewise.
  508. * testsuite/20_util/pair/traits.cc: Likewise.
  509. * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
  510. * testsuite/20_util/variant/compile.cc: Likewise.
  511. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
  512. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
  513. Likewise.
  514. 2017-11-05 Gerald Pfeifer <gerald@pfeifer.com>
  515. * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
  516. 2017-11-03 Jonathan Wakely <jwakely@redhat.com>
  517. * include/std/type_traits (endian): Define new enumeration type.
  518. * testsuite/20_util/endian/1.cc: New test.
  519. * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
  520. per P0508R0.
  521. 2017-11-01 François Dumont <fdumont@gcc.gnu.org>
  522. * python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
  523. typename versioned namespace before the substitution.
  524. (StdExpOptionalPrinter.__init__): Likewise.
  525. (StdVariantPrinter.__init__): Likewise.
  526. (Printer.add_version): Inject versioned namespace after std or
  527. __gnu_cxx.
  528. (build_libstdcxx_dictionary): Adapt add_version usages, always pass
  529. namespace first and symbol second.
  530. 2017-11-01 Jonathan Wakely <jwakely@redhat.com>
  531. PR libstdc++/82777
  532. * src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
  533. elements correctly.
  534. * testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
  535. * testsuite/util/testsuite_fs.h (compare_paths): Improve exception
  536. text.
  537. 2017-10-30 Jonathan Wakely <jwakely@redhat.com>
  538. * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
  539. to stamp-bits.
  540. * include/Makefile.in: Regenerate.
  541. * include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
  542. Remove outdated comments about calling c_str() to create a file stream
  543. from a std::string.
  544. (basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
  545. redundant ios_mode::trunc bits from default arguments and comments.
  546. * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
  547. * include/bits/hashtable_policy.h: Include <tuple>.
  548. * include/std/unordered_map: Only include <bits/stl_pair.h> instead
  549. of <utility> and <tuple>.
  550. * include/std/unordered_set: Likewise.
  551. 2017-10-30 Ville Voutilainen <ville.voutilainen@gmail.com>
  552. Implement LWG 2485
  553. * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
  554. * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
  555. * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
  556. (get(const tuple<_Types...>&&)): Likewise.
  557. * include/std/utility
  558. (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
  559. Likewise.
  560. (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
  561. (get(const pair<_Tp, _Up>&&)): Likewise.
  562. (get(const pair<_Up, _Tp>&&)): Likewise.
  563. * testsuite/20_util/pair/astuple/get.cc: Add tests for
  564. new overloads.
  565. * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
  566. * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
  567. * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
  568. * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
  569. * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
  570. Adjust.
  571. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
  572. Likewise.
  573. 2017-10-27 Jonathan Wakely <jwakely@redhat.com>
  574. * include/bits/node_handle.h (_Node_insert_return::get): Avoid
  575. use of std::tie and std::get.
  576. * include/Makefile.am: Put headers in alphabetical order.
  577. * include/Makefile.in: Regenerate.
  578. * include/bits/fs_dir.h (directory_iterator): Remove noexcept from
  579. constructors and increment member (LWG 3013).
  580. (recursive_directory_iterator): Likewise.
  581. * include/bits/fs_ops.h (copy, copy_file, create_directories)
  582. (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
  583. * src/filesystem/std-dir.cc (directory_iterator::increment)
  584. (recursive_directory_iterator::increment): Remove noexcept.
  585. * src/filesystem/std-ops.cc (copy, copy_file, create_directories)
  586. (is_empty, remove_all): Remove noexcept
  587. * include/bits/fs_dir.h (file_status): Make default constructor
  588. non-explicit (LWG 2787).
  589. * testsuite/27_io/filesystem/file_status/1.cc: New test.
  590. * testsuite/experimental/filesystem/file_status/1.cc: New test.
  591. * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
  592. (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
  593. (basic_ifstream<Path>(const Path&, const ios_base::openmode&))
  594. (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
  595. (basic_ofstream<Path>(const Path&, const ios_base::openmode&))
  596. (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
  597. (basic_fstream<Path>(const Path&, const ios_base::openmode&))
  598. (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
  599. New constructors and member functions.
  600. * testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
  601. * testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
  602. * testsuite/27_io/basic_fstream/open/char/path.cc: New test.
  603. * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
  604. * testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
  605. * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
  606. * testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
  607. * include/bits/fs_path.h (path::format): Define new enumeration type.
  608. (path(string_type&&), path<Source>(const Source&))
  609. (path<InputIterator>(InputIterator, InputIterator))
  610. (path<Source>(const Source&, const locale&))
  611. (path<InputIterator>(InputIterator, InputIterator, const locale&)):
  612. Add format parameter.
  613. * testsuite/27_io/filesystem/path/construct/format.cc: New test.
  614. * include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
  615. to ensure overloaded comma not used.
  616. * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
  617. * include/bits/stl_uninitialized.h (__uninitialized_fill_n)
  618. (__uninitialized_fill_n_a, __uninitialized_default_n_1)
  619. (__uninitialized_default_n_a, __uninitialized_copy_n)
  620. (__uninitialized_copy_n_pair): Likewise
  621. * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
  622. Use test iterator wrappers with overloaded comma operator.
  623. * testsuite/25_algorithms/fill_n/1.cc: Likewise.
  624. * testsuite/25_algorithms/generate_n/1.cc: New test.
  625. * testsuite/25_algorithms/stable_partition/1.cc: New test.
  626. * testsuite/util/testsuite_iterators.h (operator,): Add deleted
  627. non-member comma operator with iterator wrappers as right operand.
  628. 2017-10-26 Ville Voutilainen <ville.voutilainen@gmail.com>
  629. Deduction guides for associative containers, debug mode deduction
  630. guide fixes.
  631. * include/bits/stl_iterator.h (__iter_key_t)
  632. (__iter_val_t, __iter_to_alloc_t): New.
  633. * include/bits/stl_map.h: Add deduction guides.
  634. * include/bits/stl_multimap.h: Likewise.
  635. * include/bits/stl_multiset.h: Likewise.
  636. * include/bits/stl_set.h: Likewise.
  637. * include/bits/unordered_map.h: Likewise.
  638. * include/bits/unordered_set.h: Likewise.
  639. * include/debug/deque: Likewise.
  640. * include/debug/forward_list: Likewise.
  641. * include/debug/list: Likewise.
  642. * include/debug/map.h: Likewise.
  643. * include/debug/multimap.h: Likewise.
  644. * include/debug/multiset.h: Likewise.
  645. * include/debug/set.h: Likewise.
  646. * include/debug/unordered_map: Likewise.
  647. * include/debug/unordered_set: Likewise.
  648. * include/debug/vector: Likewise.
  649. * testsuite/23_containers/map/cons/deduction.cc: New.
  650. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
  651. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
  652. * testsuite/23_containers/set/cons/deduction.cc: Likewise.
  653. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
  654. * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
  655. Likewise.
  656. * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
  657. Likewise.
  658. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
  659. 2017-10-25 Jonathan Wakely <jwakely@redhat.com>
  660. * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
  661. information on feature-test macros.
  662. * doc/html/*: Regenerate.
  663. PR libstdc++/82716
  664. * include/std/array (tuple_size, tuple_element): Change class-key
  665. from class to struct, to avoid annoying Clang warnings.
  666. PR libstdc++/79283
  667. * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
  668. * src/filesystem/std-ops.cc (read_symlink): Likewise.
  669. (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
  670. * src/filesystem/std-path.cc (path::lexically_normal): Add missing
  671. step to algorithm, for removing dot-dot elements after root-directory.
  672. * testsuite/27_io/filesystem/operations/canonical.cc: Use
  673. compare_paths for more exhaustive checks.
  674. * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
  675. * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
  676. * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
  677. * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
  678. * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
  679. * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
  680. Likewise.
  681. * testsuite/27_io/filesystem/path/generation/normal.cc: Use
  682. compare_paths for more exhaustive checks. Add extra testcases.
  683. * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
  684. compare_paths for more exhaustive checks.
  685. * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
  686. * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
  687. unused header.
  688. * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
  689. comment.
  690. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
  691. compare_paths for more exhaustive checks.
  692. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
  693. Likewise.
  694. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
  695. Likewise.
  696. * testsuite/util/testsuite_fs.h (compare_paths): Also compare native
  697. strings.
  698. PR libstdc++/82706
  699. * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
  700. 2017-10-24 François Dumont <fdumont@gcc.gnu.org>
  701. * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
  702. c++config.h include.
  703. (check_v3_target_normal_namespace): New.
  704. * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
  705. * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
  706. * testsuite/20_util/from_chars/requirements.cc: Likewise.
  707. * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
  708. * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
  709. * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
  710. * testsuite/20_util/to_chars/requirements.cc: Likewise.
  711. * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
  712. * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
  713. * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
  714. * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
  715. * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
  716. * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
  717. * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
  718. * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
  719. * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
  720. * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
  721. * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
  722. * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
  723. * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
  724. * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
  725. * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
  726. * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
  727. * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
  728. * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
  729. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
  730. * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
  731. * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
  732. * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
  733. * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
  734. * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
  735. * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
  736. * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
  737. * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
  738. * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
  739. 2017-10-24 Jonathan Wakely <jwakely@redhat.com>
  740. * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
  741. -Wattribute-alias warnings.
  742. * src/c++11/istream-inst.cc: Likewise.
  743. * src/c++11/locale-inst.cc: Likewise.
  744. * src/c++11/ostream-inst.cc: Likewise.
  745. * src/c++11/wlocale-inst.cc: Likewise.
  746. * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
  747. * include/bits/string_view.tcc (find_first_of, find_last_of)
  748. (find_first_not_of, find_last_not_of): Add noexcept.
  749. * include/std/string_view (basic_string_view(const _CharT*))
  750. (basic_string_view(const _CharT*, size_type))
  751. (front, back, remove_prefix, remove_suffix, find, rfind)
  752. (find_first_of, find_first_not_of): Add noexcept.
  753. (at(size_type), _S_compare(size_type, size_type)): Replace conditional
  754. expressions with if statements.
  755. (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
  756. Use _M_check for length checks.
  757. (compare(basic_string_view)): Reformat.
  758. (_M_check(size_type, const char)): Add noexcept(false).
  759. (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
  760. PR libstdc++/82685
  761. * include/experimental/string_view (operator""sv): Add noexcept.
  762. * include/std/string_view (operator""sv): Likewise.
  763. 2017-10-23 Jonathan Wakely <jwakely@redhat.com>
  764. * include/Makefile.am: Add new headers for C++17 filesystem library.
  765. * include/Makefile.in: Regenerate.
  766. * include/bits/fs_dir.h: New header, based on Filesystem TS code in
  767. include/experimental/bits directory.
  768. * include/bits/fs_fwd.h: Likewise.
  769. * include/bits/fs_ops.h: Likewise.
  770. * include/bits/fs_path.h: Likewise.
  771. * include/experimental/bits/fs_dir.h: Rename Doxygen group.
  772. * include/experimental/bits/fs_fwd.h: Likewise.
  773. * include/experimental/bits/fs_ops.h: Likewise.
  774. * include/experimental/bits/fs_path.h: Likewise.
  775. * include/experimental/filesystem (filesystem_error::_M_gen_what):
  776. Remove inline definition.
  777. * include/precompiled/stdc++.h: Add <filesystem> to precompiled
  778. header.
  779. * include/std/filesystem: New header.
  780. * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
  781. paths.
  782. * src/filesystem/Makefile.am: Add new files. Compile as C++17.
  783. * src/filesystem/Makefile.in: Regenerate.
  784. * src/filesystem/cow-dir.cc: Update comment.
  785. * src/filesystem/cow-ops.cc: Likewise.
  786. * src/filesystem/cow-path.cc: Likewise.
  787. * src/filesystem/cow-std-dir.cc: New file.
  788. * src/filesystem/cow-std-ops.cc: New file.
  789. * src/filesystem/cow-std-path.cc: New file.
  790. * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
  791. for common code.
  792. * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
  793. (open_dir): Move to _Dir_base constructor.
  794. (get_file_type): Move to dir-common.h.
  795. (recurse): Move to _Dir_base::should_recurse.
  796. * src/filesystem/ops-common.h: New header for common code.
  797. * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
  798. (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
  799. * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
  800. * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
  801. * src/filesystem/std-ops.cc: Likewise.
  802. * src/filesystem/std-dir.cc: Likewise.
  803. * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
  804. test.
  805. * testsuite/27_io/filesystem/iterators/pop.cc: New test.
  806. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  807. New test.
  808. * testsuite/27_io/filesystem/operations/absolute.cc: New test.
  809. * testsuite/27_io/filesystem/operations/canonical.cc: New test.
  810. * testsuite/27_io/filesystem/operations/copy.cc: New test.
  811. * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
  812. * testsuite/27_io/filesystem/operations/create_directories.cc: New
  813. test.
  814. * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
  815. * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
  816. * testsuite/27_io/filesystem/operations/current_path.cc: New test.
  817. * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
  818. * testsuite/27_io/filesystem/operations/exists.cc: New test.
  819. * testsuite/27_io/filesystem/operations/file_size.cc: New test.
  820. * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
  821. * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
  822. * testsuite/27_io/filesystem/operations/permissions.cc: New test.
  823. * testsuite/27_io/filesystem/operations/proximate.cc: New test.
  824. * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
  825. * testsuite/27_io/filesystem/operations/relative.cc: New test.
  826. * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
  827. * testsuite/27_io/filesystem/operations/space.cc: New test.
  828. * testsuite/27_io/filesystem/operations/status.cc: New test.
  829. * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
  830. * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
  831. test.
  832. * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
  833. * testsuite/27_io/filesystem/path/append/path.cc: New test.
  834. * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
  835. * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
  836. * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
  837. * testsuite/27_io/filesystem/path/compare/path.cc: New test.
  838. * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
  839. * testsuite/27_io/filesystem/path/concat/path.cc: New test.
  840. * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
  841. * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
  842. * testsuite/27_io/filesystem/path/construct/default.cc: New test.
  843. * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
  844. * testsuite/27_io/filesystem/path/construct/range.cc: New test.
  845. * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
  846. * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
  847. * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
  848. * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
  849. * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
  850. test.
  851. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
  852. test.
  853. * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
  854. * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
  855. * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
  856. * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
  857. * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
  858. * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
  859. * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
  860. * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
  861. * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
  862. * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
  863. test.
  864. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
  865. test.
  866. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
  867. test.
  868. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
  869. test.
  870. * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
  871. * testsuite/27_io/filesystem/path/native/string.cc: New test.
  872. * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
  873. * testsuite/27_io/filesystem/path/query/empty.cc: New test.
  874. * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
  875. * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
  876. * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
  877. * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
  878. test.
  879. * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
  880. test.
  881. * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
  882. * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
  883. * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
  884. * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
  885. * testsuite/experimental/filesystem/path/construct/string_view.cc:
  886. Define USE_FILESYSTEM_TS.
  887. * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
  888. as Filesystem TS.
  889. PR libstdc++/82644
  890. * doc/xml/manual/intro.xml: Include new section.
  891. * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
  892. status.
  893. * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
  894. (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
  895. * include/c_compatibility/math.h: Import special functions into
  896. global namespace for C++17.
  897. * testsuite/26_numerics/headers/cmath/82644.cc: New test.
  898. * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
  899. test.
  900. 2017-10-21 Jonathan Wakely <jwakely@redhat.com>
  901. * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
  902. increment past-the-end iterators.
  903. 2017-10-20 Jonathan Wakely <jwakely@redhat.com>
  904. * include/std/chrono (__cpp_lib_chrono): Update macro value to
  905. indicate support for P0505R0.
  906. * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
  907. for updated macro.
  908. * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
  909. * testsuite/18_support/byte/requirements.cc: Check macro.
  910. 2017-10-19 Jonathan Wakely <jwakely@redhat.com>
  911. * testsuite/experimental/filesystem/iterators/
  912. recursive_directory_iterator.cc: Ensure that error_code arguments are
  913. cleared when required.
  914. * testsuite/experimental/filesystem/operations/create_directory.cc:
  915. Remove redundant check.
  916. * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
  917. Ensure that error_code argument is cleared when required.
  918. * include/experimental/bits/fs_path.h (path::iterator++(int))
  919. (path::iterator--(int)): Fix for paths with only one component.
  920. * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
  921. post-increment and post-decrement.
  922. * doc/xml/manual/status_cxx2017.xml: Update references to C++17
  923. section numbers.
  924. * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
  925. instead of non-standard glibc one.
  926. 2017-10-16 François Dumont <fdumont@gcc.gnu.org>
  927. PR libstdc++/82558
  928. * include/bits/stl_bvector.h (fill): Add iterator offset check.
  929. * testsuite/23_containers/vector/bool/82558.cc: New.
  930. 2017-10-13 Jonathan Wakely <jwakely@redhat.com>
  931. PR libstdc++/82522
  932. * doc/xml/manual/intro.xml: Document LWG 2354 changes.
  933. * include/bits/stl_map.h (map::insert(value_type&&))
  934. (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
  935. * include/bits/stl_multimap.h (multimap::insert(value_type&&))
  936. (multimap::insert(const_iterator, value_type&&)): Likewise.
  937. * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
  938. (unordered_map::insert(const_iterator, value_type&&))
  939. (unordered_multimap::insert(value_type&&))
  940. (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
  941. * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
  942. * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
  943. test.
  944. * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
  945. * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
  946. test.
  947. PR libstdc++/82481
  948. * include/std/mutex (call_once): Suppress clang-tidy warnings about
  949. dangling references.
  950. 2017-10-10 Jonathan Wakely <jwakely@redhat.com>
  951. * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
  952. Update comment about NAD issue.
  953. PR libstdc++/59087
  954. PR libstdc++/82417
  955. * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
  956. not include C library's <complex.h>.
  957. * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
  958. * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
  959. * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
  960. * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
  961. 2017-10-05 Jonathan Wakely <jwakely@redhat.com>
  962. * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
  963. 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
  964. François Dumont <fdumont@gcc.gnu.org>
  965. * include/bits/streambuf_iterator.h
  966. (istreambuf_iterator<>::operator*()): Do not capture iterator state
  967. in Debug assertion.
  968. (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
  969. (istreambuf_iterator<>::operator++(int)): Likewise.
  970. (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
  971. (istreambuf_iterator<>::_S_is_eof()): New.
  972. (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
  973. (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
  974. Return an iterator with _M_c set to eof to capture streambuf state
  975. on evaluation.
  976. (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
  977. 2017-10-03 Jakub Jelinek <jakub@redhat.com>
  978. * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
  979. !_GLIBCXX_USE_INT128.
  980. 2017-10-02 Jonathan Wakely <jwakely@redhat.com>
  981. * include/Makefile.am: Add new <charconv> header.
  982. * include/Makefile.in: Regenerate.
  983. * include/precompiled/stdc++.h: Include <charconv>.
  984. * include/std/charconv: New file.
  985. (to_chars_result, to_chars, from_chars_result, from_chars): Define.
  986. * testsuite/20_util/from_chars/1.cc: New test.
  987. * testsuite/20_util/from_chars/1_neg.cc: New test.
  988. * testsuite/20_util/from_chars/2.cc: New test.
  989. * testsuite/20_util/from_chars/requirements.cc: New test.
  990. * testsuite/20_util/to_chars/1.cc: New test.
  991. * testsuite/20_util/to_chars/1_neg.cc: New test.
  992. * testsuite/20_util/to_chars/2.cc: New test.
  993. * testsuite/20_util/to_chars/requirements.cc: New test.
  994. 2017-09-27 François Dumont <fdumont@gcc.gnu.org>
  995. * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
  996. istreambuf_iterator implementation dependent.
  997. * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
  998. 2017-09-25 Uros Bizjak <ubizjak@gmail.com>
  999. PR c/81854
  1000. * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
  1001. target as a C++ function with no prototype.
  1002. 2017-09-21 Jonathan Wakely <jwakely@redhat.com>
  1003. * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
  1004. expected results when using predicate defining reverse order.
  1005. * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
  1006. 2017-09-20 Jonathan Wakely <jwakely@redhat.com>
  1007. PR libstdc++/79162
  1008. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
  1009. (basic_string::_If_sv): Remove from the overload set when the
  1010. argument is derived from basic_string.
  1011. PR libstdc++/79162
  1012. * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
  1013. overload set when the argument is derived from basic_string.
  1014. * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
  1015. test.
  1016. * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
  1017. New test.
  1018. * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
  1019. and dg-options directives. Fix invalid test.
  1020. PR libstdc++/81469
  1021. * libsupc++/exception (uncaught_exception): Deprecate for C++17.
  1022. * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
  1023. * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
  1024. * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
  1025. * include/bits/functional_hash.h (__hash_base::result_type)
  1026. (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
  1027. * include/std/optional (hash<optional<T>>::result_type)
  1028. (hash<optional<T>>::argument_type): Add deprecated attribute.
  1029. (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
  1030. * include/std/variant (hash<variant<Types...>>::result_type)
  1031. (hash<variant<Types...>>::argument_type): Add deprecated attribute.
  1032. (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
  1033. * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
  1034. non-standard function.
  1035. PR libstdc++/82262
  1036. * include/std/optional (__optional_hash_call_base): Add template
  1037. parameter for remove_const_t<_Tp> and use it consistently.
  1038. * testsuite/20_util/optional/hash.cc: Test optional<const T>.
  1039. 2017-09-19 Jonathan Wakely <jwakely@redhat.com>
  1040. PR libstdc++/71500
  1041. * include/bits/regex_executor.tcc
  1042. (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
  1043. std::__equal4 instead of C++14 4-iterator overloads of std::equal.
  1044. * include/bits/stl_algobase.h (__equal4): New functions implementing
  1045. 4-iterator overloads of std::equal for use in C++11.
  1046. (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
  1047. Move function bodies to new __equal4 functions.
  1048. * testsuite/28_regex/simple_c++11.cc: New.
  1049. PR libstdc++/82254
  1050. * include/std/type_traits (__is_invocable): Add partial specialization
  1051. for INVOKE<void> case and remove is_void<R> check from partial
  1052. specialization for INVOKE<R> case.
  1053. (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
  1054. (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
  1055. * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
  1056. conversions that can throw or fail to convert. Use static assert
  1057. strings to explain negative results.
  1058. * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
  1059. is_nothrow_constructible in is_nt_invocable_conv.
  1060. 2017-09-18 Jonathan Wakely <jwakely@redhat.com>
  1061. PR libstdc++/81468
  1062. * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
  1063. improve static assertion messages.
  1064. * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
  1065. (_Build_index_tuple, make_integer_sequence): Use built-in to generate
  1066. pack expansion.
  1067. PR libstdc++/71187
  1068. * include/std/type_traits (__declval): New function to deduce return
  1069. type of declval.
  1070. (__declval_protector::_delegate): Remove.
  1071. (declval): Use __declval instead of add_rvalue_reference and
  1072. __declval_protector::__delegate.
  1073. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
  1074. lineno.
  1075. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
  1076. Likewise.
  1077. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
  1078. Likewise.
  1079. 2017-09-15 Jakub Jelinek <jakub@redhat.com>
  1080. * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
  1081. -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead
  1082. of c++1z and c++17_only instead of c++1z_only. Adjust expected
  1083. diagnostics and comments refering to 1z to 17.
  1084. * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
  1085. * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
  1086. * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
  1087. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
  1088. * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
  1089. Likewise.
  1090. * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
  1091. * testsuite/18_support/launder/1.cc (test02): Likewise.
  1092. * testsuite/18_support/launder/requirements_neg.cc: Likewise.
  1093. * testsuite/18_support/launder/requirements.cc: Likewise.
  1094. * testsuite/18_support/byte/requirements.cc: Likewise.
  1095. * testsuite/18_support/byte/ops.cc: Likewise.
  1096. * testsuite/18_support/byte/global_neg.cc: Likewise.
  1097. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
  1098. Likewise.
  1099. * testsuite/27_io/types/4.cc: Likewise.
  1100. * testsuite/25_algorithms/sample/81221.cc: Likewise.
  1101. * testsuite/25_algorithms/sample/1.cc: Likewise.
  1102. * testsuite/25_algorithms/sample/2.cc: Likewise.
  1103. * testsuite/25_algorithms/search/searcher.cc: Likewise.
  1104. * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
  1105. * testsuite/experimental/filesystem/path/construct/string_view.cc:
  1106. Likewise.
  1107. * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
  1108. * testsuite/24_iterators/container_access.cc: Likewise.
  1109. * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
  1110. * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
  1111. * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
  1112. * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
  1113. * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
  1114. * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
  1115. * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
  1116. * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
  1117. * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
  1118. * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
  1119. * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
  1120. * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
  1121. * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
  1122. * testsuite/20_util/pair/cons/deduction.cc: Likewise.
  1123. * testsuite/20_util/variant/deduction.cc: Likewise.
  1124. * testsuite/20_util/tuple/78939.cc: Likewise.
  1125. * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
  1126. * testsuite/20_util/void_t/1.cc: Likewise.
  1127. * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
  1128. * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
  1129. * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
  1130. * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
  1131. * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
  1132. Likewise.
  1133. * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
  1134. Likewise.
  1135. * testsuite/20_util/has_unique_object_representations/value.cc:
  1136. Likewise.
  1137. * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
  1138. * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
  1139. * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
  1140. * testsuite/20_util/function/cons/deduction.cc: Likewise.
  1141. * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
  1142. Likewise.
  1143. * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
  1144. * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
  1145. Likewise.
  1146. * testsuite/20_util/is_aggregate/value.cc: Likewise.
  1147. * testsuite/26_numerics/lcm/1.cc: Likewise.
  1148. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  1149. * testsuite/26_numerics/gcd/1.cc: Likewise.
  1150. * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
  1151. * testsuite/26_numerics/valarray/deduction.cc: Likewise.
  1152. * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
  1153. * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
  1154. * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
  1155. Likewise.
  1156. * testsuite/23_containers/array/cons/deduction.cc: Likewise.
  1157. * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
  1158. * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
  1159. Likewise.
  1160. * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
  1161. * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
  1162. Likewise.
  1163. * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
  1164. Likewise.
  1165. * testsuite/23_containers/list/cons/deduction.cc: Likewise.
  1166. * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
  1167. Likewise.
  1168. * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
  1169. * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
  1170. * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
  1171. Likewise.
  1172. * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
  1173. * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
  1174. Likewise.
  1175. * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
  1176. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
  1177. * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
  1178. * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
  1179. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  1180. Likewise.
  1181. * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
  1182. * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
  1183. Likewise.
  1184. * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
  1185. Likewise.
  1186. * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
  1187. Likewise.
  1188. * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
  1189. Likewise.
  1190. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
  1191. Likewise.
  1192. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
  1193. Likewise.
  1194. 2017-09-13 Jonathan Wakely <jwakely@redhat.com>
  1195. PR libstdc++/81468
  1196. * include/std/chrono (__enable_if_is_duration)
  1197. (__disable_if_is_duration): New alias templates to simplify SFINAE.
  1198. (duration_cast, floor, ceil): Use __enable_if_is_duration.
  1199. (duration::__is_float, duration::__is_harmonic): New alias templates
  1200. to simplify SFINAE.
  1201. (duration::duration(const _Rep2&)): Use _Require, __is_float and
  1202. __is_harmonic.
  1203. (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
  1204. (__common_rep_type): Remove, replace with ...
  1205. (__common_rep_t): New alias template.
  1206. (operator*, operator/, operator%): Use __common_rep_t and
  1207. __disable_if_is_duration.
  1208. (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
  1209. constraint from LWG DR 1177.
  1210. * testsuite/20_util/duration/cons/dr1177.cc: New.
  1211. * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
  1212. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
  1213. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
  1214. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
  1215. * testsuite/20_util/time_point/cons/81468.cc: New.
  1216. * doc/doxygen/mainpage.html: Fix broken URLs.
  1217. PR libstdc++/81835
  1218. * doc/xml/manual/extensions.xml: Replace unstable URL.
  1219. * doc/html/manual/ext_demangling.html: Regenerate.
  1220. * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
  1221. * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
  1222. __to_address.
  1223. (__allocated_ptr::_S_raw_ptr): Remove.
  1224. * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
  1225. __to_address.
  1226. * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
  1227. * include/bits/ptr_traits.h (__to_address): Define new function
  1228. template.
  1229. * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
  1230. (__shared_ptr::_S_raw_ptr): Remove.
  1231. * include/bits/stl_vector.h [__cplusplus >= 201103L]
  1232. (vector::_M_data_ptr): Use __to_address.
  1233. [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
  1234. possibly invalid pointers.
  1235. * include/ext/alloc_traits.h (__alloc_traits::construct)
  1236. (__alloc_traits::destroy): Use __to_address.
  1237. 2017-09-12 Jonathan Wakely <jwakely@redhat.com>
  1238. PR libstdc++/79433
  1239. * include/Makefile.am: Remove <bits/c++14_warning.h>.
  1240. * include/Makefile.in: Regenerate.
  1241. * include/bits/c++14_warning.h: Remove.
  1242. * include/experimental/algorithm: Do not include <c++14_warning.h>.
  1243. * include/experimental/any: Likewise.
  1244. * include/experimental/array: Likewise.
  1245. * include/experimental/bits/erase_if.h: Likewise.
  1246. * include/experimental/bits/lfts_config.h: Likewise.
  1247. * include/experimental/bits/shared_ptr.h: Likewise.
  1248. * include/experimental/bits/string_view.tcc: Likewise.
  1249. * include/experimental/chrono: Likewise.
  1250. * include/experimental/deque: Likewise.
  1251. * include/experimental/filesystem: Do not include <c++0x_warning.h>.
  1252. * include/experimental/forward_list: Do not include <c++14_warning.h>.
  1253. * include/experimental/functional: Likewise.
  1254. * include/experimental/iterator: Likewise.
  1255. * include/experimental/list: Likewise.
  1256. * include/experimental/map: Likewise.
  1257. * include/experimental/memory: Likewise.
  1258. * include/experimental/numeric: Likewise.
  1259. * include/experimental/optional: Likewise.
  1260. * include/experimental/propagate_const: Likewise.
  1261. * include/experimental/ratio: Likewise.
  1262. * include/experimental/regex: Likewise.
  1263. * include/experimental/set: Likewise.
  1264. * include/experimental/string: Likewise.
  1265. * include/experimental/string_view: Likewise.
  1266. * include/experimental/system_error: Likewise.
  1267. * include/experimental/tuple: Likewise.
  1268. * include/experimental/type_traits: Likewise.
  1269. * include/experimental/unordered_map: Likewise.
  1270. * include/experimental/unordered_set: Likewise.
  1271. * include/experimental/vector: Likewise.
  1272. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
  1273. line number.
  1274. * testsuite/experimental/array/neg.cc: Likewise.
  1275. * testsuite/experimental/propagate_const/assignment/move_neg.cc:
  1276. Likewise.
  1277. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
  1278. * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
  1279. * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
  1280. * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
  1281. * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
  1282. PR libstdc++/79433
  1283. * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
  1284. * doc/html/*: Regenerate.
  1285. * include/Makefile.am: Remove <bits/c++17_warning.h>.
  1286. * include/Makefile.in: Regenerate.
  1287. * include/bits/c++17_warning.h: Remove.
  1288. * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
  1289. for pre-C++17 modes.
  1290. * include/std/any: Likewise.
  1291. (__cpp_lib_any): Define.
  1292. * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
  1293. SD-6 draft.
  1294. * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
  1295. draft.
  1296. * include/std/optional: Do not include <bits/c++17_warning.h>.
  1297. (__cpp_lib_optional): Define.
  1298. * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
  1299. * include/std/string_view: Do not include <bits/c++17_warning.h>.
  1300. (__cpp_lib_string_view): Define.
  1301. * include/std/variant: Do not include <bits/c++17_warning.h>.
  1302. (__cpp_lib_variant): Define.
  1303. * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
  1304. numbers.
  1305. * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
  1306. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
  1307. numbers.
  1308. * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
  1309. * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
  1310. numbers.
  1311. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
  1312. expected value of __cpp_lib_scoped_lock.
  1313. PR libstdc++/70483
  1314. * include/experimental/bits/string_view.tcc (basic_string_view::find)
  1315. (basic_string_view::rfind, basic_string_view::find_first_of)
  1316. (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
  1317. (basic_string_view::find_last_not_of): Add constexpr specifier.
  1318. * include/experimental/string_view (basic_string_view::remove_prefix)
  1319. (basic_string_view::remove_suffix, basic_string_view::swap)
  1320. (basic_string_view::compare, basic_string_view::find)
  1321. (basic_string_view::rfind, basic_string_view::find_first_of)
  1322. (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
  1323. (basic_string_view::find_last_not_of, operator==, operator!=)
  1324. (operator<, operator>, operator<=, operator>=): Likewise.
  1325. * testsuite/experimental/string_view/operations/compare/char/70483.cc:
  1326. New.
  1327. 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
  1328. PR libstdc++/70483
  1329. * include/bits/string_view.tcc (basic_string_view::find)
  1330. (basic_string_view::rfind, basic_string_view::find_first_of)
  1331. (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
  1332. (basic_string_view::find_last_not_of): Add constexpr specifier.
  1333. * include/std/string_view (basic_string_view::operator=)
  1334. (basic_string_view::rbegin, basic_string_view::rend)
  1335. (basic_string_view::crbegin, basic_string_view::crend)
  1336. (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
  1337. (basic_string_view::swap, basic_string_view::compare)
  1338. (basic_string_view::find, basic_string_view::rfind)
  1339. (basic_string_view::find_first_of, basic_string_view::find_last_of)
  1340. (basic_string_view::find_first_not_of)
  1341. (basic_string_view::find_last_not_of, basic_string_view::_M_check)
  1342. (basic_string_view::_M_limit, operator==, operator!=, operator<)
  1343. (operator>, operator<=, operator>=): Likewise.
  1344. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
  1345. char/1.cc: Repeat tests in constexpr context.
  1346. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
  1347. wchar_t/1.cc: Likewise.
  1348. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
  1349. char/1.cc: Likewise.
  1350. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
  1351. wchar_t/1.cc: Likewise.
  1352. * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
  1353. Likewise.
  1354. * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
  1355. Likewise.
  1356. * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
  1357. Likewise.
  1358. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
  1359. Likewise.
  1360. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
  1361. Likewise.
  1362. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
  1363. Likewise.
  1364. * testsuite/21_strings/basic_string_view/operators/char/2.cc:
  1365. Likewise.
  1366. * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
  1367. Likewise.
  1368. * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
  1369. cbegin, cend, rbegin, rend, crbegin and crend.
  1370. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
  1371. Likewise.
  1372. * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
  1373. Remove trailing whitespace.
  1374. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
  1375. 1.cc: Likewise.
  1376. * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
  1377. New.
  1378. * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
  1379. New.
  1380. * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
  1381. New.
  1382. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
  1383. 2.cc: New.
  1384. 2017-09-11 Tim Shen <timshen@google.com>
  1385. PR libstdc++/71500
  1386. * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
  1387. for back reference matches.
  1388. * testsuite/28_regex/regression.cc: Test case.
  1389. 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
  1390. * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
  1391. compatibility with old COW std::string.
  1392. 2017-09-09 Gerald Pfeifer <gerald@pfeifer.com>
  1393. * doc/xml/manual/allocator.xml: Adjust link for Hoard.
  1394. * doc/html/manual/memory.html: Regenerate.
  1395. 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
  1396. PR libstdc++/79162
  1397. Implement LWG 2946, LWG 2758's resolution missed further corrections
  1398. * include/bits/basic_string.h (basic_string::compare): Add missing
  1399. required noexcept specifications.
  1400. (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
  1401. for implicit string_view conversion.
  1402. (basic_string::basic_string): Fix explicit string_view conversion by
  1403. implicit conversion using _S_to_string_view and __sv_wrapper.
  1404. (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
  1405. constructor.
  1406. (basic_string): Fix operator=(T) template by operator=(const T&)
  1407. template for uncopyable types (PR 79162).
  1408. (basic_string::operator+=, basic_string::append, basic_string::assign)
  1409. (basic_string::insert, basic_string::replace, basic_string::find)
  1410. (basic_string::rfind, basic_string::find_first_of)
  1411. (basic_string::find_last_of, basic_string::find_first_not_of)
  1412. (basic_string::find_last_not_of, basic_string::compare): Replace
  1413. __sv_type argument by template const T& (LWG 2946) and correct
  1414. documentation describing __sv_type argument.
  1415. (basic_string::find, basic_string::rfind, basic_string::find_first_of)
  1416. (basic_string::find_last_of, basic_string::find_first_not_of)
  1417. (basic_string::find_last_not_of, basic_string::compare): Replace
  1418. unconditional noexcept specification by conditional noexcept
  1419. specification to partially balance the removal of noexcept by LWG 2946.
  1420. * testsuite/21_strings/basic_string/79162.cc: New.
  1421. * testsuite/21_strings/basic_string/lwg2946.cc: New.
  1422. 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
  1423. PR c++/82039
  1424. * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
  1425. Adjust null pointer constant to avoid warning.
  1426. 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
  1427. * include/bits/stl_list.h
  1428. [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
  1429. (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
  1430. (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
  1431. [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
  1432. Remove.
  1433. (_List_base(_Node_alloc_type&&)): New.
  1434. [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
  1435. [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
  1436. (list<>::_M_node_count): New.
  1437. (list<>::size()): Adapt to call latter.
  1438. (list<>::_S_distance(const_iterator, const_iterator)): New.
  1439. (list<>::splice(iterator, list&, const_iterator, const_iterator)):
  1440. Adapt to call latter.
  1441. (list(list&&, const allocator_type&, true_type)): New.
  1442. (list(list&&, const allocator_type&, false_type)): New.
  1443. (list(list&&, const allocator_type&)): Adapt to call latters.
  1444. 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
  1445. PR libstdc++/81912
  1446. * include/bits/stl_iterator_base_types.h (__iterator_category): Add
  1447. constexpr for C++11 and later.
  1448. * testsuite/24_iterators/container_access.cc: Add target selector.
  1449. * testsuite/24_iterators/range_access.cc: Fix clause number in
  1450. comment.
  1451. * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
  1452. * testsuite/24_iterators/range_access_cpp17.cc: New.
  1453. 2017-08-21 Richard Biener <rguenther@suse.de>
  1454. * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
  1455. tests with -flto as well if supported.
  1456. 2017-08-20 Martin Sebor <msebor@redhat.com>
  1457. PR c/81854
  1458. * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
  1459. target as a C++ function with no prototype.
  1460. (_GLIBCXX_3_4_5_SYMVER): Ditto.
  1461. 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
  1462. PR testsuite/81056
  1463. * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
  1464. 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
  1465. * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
  1466. __value_alloc_type and __value_alloc_traits typedefs.
  1467. (_ReuseOrAllocNode::operator()): Call construct and destroy on the
  1468. node allocator.
  1469. (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
  1470. (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
  1471. construct on the node allocator.
  1472. (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
  1473. destroy on the node allocator.
  1474. PR libstdc++/81891
  1475. * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
  1476. size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
  1477. const _ExtractKey&, const allocator_type&)): Let destructor do clean
  1478. up if an exception is thrown.
  1479. * testsuite/23_containers/unordered_map/cons/81891.cc: New.
  1480. 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
  1481. PR libstdc++/81808
  1482. * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
  1483. that allow opening a directory as a FILE and reading from it.
  1484. 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
  1485. * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
  1486. Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
  1487. __is_identifier to set it.
  1488. 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
  1489. * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
  1490. __is_identifier instead of __has_builtin.
  1491. 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
  1492. PR libstdc++/79820
  1493. PR libstdc++/81751
  1494. * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
  1495. Call fflush on the stream instead of calling sync() while _M_cfile is
  1496. null. Restore original value of errno.
  1497. * testsuite/ext/stdio_filebuf/char/79820.cc: New.
  1498. * testsuite/ext/stdio_filebuf/char/81751.cc: New.
  1499. 2017-07-31 Marek Polacek <polacek@redhat.com>
  1500. PR libstdc++/81599
  1501. * include/bits/stl_stack.h: Fix typo.
  1502. 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
  1503. * testsuite/27_io/basic_fstream/53984.cc: Fix test.
  1504. 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
  1505. * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
  1506. directive.
  1507. 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
  1508. PR libstdc++/53984
  1509. * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
  1510. * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
  1511. during construction.
  1512. * include/std/istream: Adjust comments for formatted input functions
  1513. and unformatted input functions.
  1514. * testsuite/27_io/basic_fstream/53984.cc: New.
  1515. * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
  1516. * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
  1517. (ios_base::seek_dir): Remove for C++17.
  1518. * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
  1519. Add deprecated attribute for C++11 and C++14.
  1520. * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
  1521. * testsuite/27_io/types/4.cc: New.
  1522. 2017-07-23 Michael Collison <michael.collison@arm.com>
  1523. Add optimized implementation of mersenne twister for aarch64
  1524. * config/cpu/aarch64/opt/ext/opt_random.h: New file.
  1525. (__arch64_recursion): New function.
  1526. (__aarch64_lsr_128): New function.
  1527. (__aarch64_lsl_128): New function.
  1528. (operator==): New function.
  1529. (simd_fast_mersenne_twister_engine): Implement
  1530. method _M_gen_rand.
  1531. * config/cpu/aarch64/opt/bits/opt_random.h: New file.
  1532. * include/ext/random: (simd_fast_mersenne_twister_engine):
  1533. add _M_state private array.
  1534. 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
  1535. PR libstdc++/81064
  1536. * include/bits/algorithmfwd.h: Reorganize versioned namespace.
  1537. * include/bits/basic_string.h: Likewise.
  1538. * include/bits/c++config: Likewise.
  1539. * include/bits/deque.tcc: Likewise.
  1540. * include/bits/forward_list.h: Likewise.
  1541. * include/bits/forward_list.tcc: Likewise.
  1542. * include/bits/hashtable_policy.h: Likewise.
  1543. * include/bits/list.tcc: Likewise.
  1544. * include/bits/move.h: Likewise.
  1545. * include/bits/quoted_string.h: Likewise.
  1546. * include/bits/random.h: Likewise.
  1547. * include/bits/random.tcc: Likewise.
  1548. * include/bits/regex.h: Likewise.
  1549. * include/bits/regex.tcc: Likewise.
  1550. * include/bits/regex_automaton.h: Likewise.
  1551. * include/bits/regex_automaton.tcc: Likewise.
  1552. * include/bits/regex_compiler.h: Likewise.
  1553. * include/bits/regex_compiler.tcc: Likewise.
  1554. * include/bits/regex_constants.h: Likewise.
  1555. * include/bits/regex_error.h: Likewise.
  1556. * include/bits/regex_executor.h: Likewise.
  1557. * include/bits/regex_executor.tcc: Likewise.
  1558. * include/bits/regex_scanner.h: Likewise.
  1559. * include/bits/regex_scanner.tcc: Likewise.
  1560. * include/bits/specfun.h: Likewise.
  1561. * include/bits/stl_algo.h: Likewise.
  1562. * include/bits/stl_algobase.h: Likewise.
  1563. * include/bits/stl_bvector.h: Likewise.
  1564. * include/bits/stl_deque.h: Likewise.
  1565. * include/bits/stl_iterator.h: Likewise.
  1566. * include/bits/stl_iterator_base_funcs.h: Likewise.
  1567. * include/bits/stl_list.h: Likewise.
  1568. * include/bits/stl_map.h: Likewise.
  1569. * include/bits/stl_multimap.h: Likewise.
  1570. * include/bits/stl_multiset.h: Likewise.
  1571. * include/bits/stl_relops.h: Likewise.
  1572. * include/bits/stl_set.h: Likewise.
  1573. * include/bits/stl_vector.h: Likewise.
  1574. * include/bits/uniform_int_dist.h: Likewise.
  1575. * include/bits/unordered_map.h: Likewise.
  1576. * include/bits/unordered_set.h: Likewise.
  1577. * include/bits/vector.tcc: Likewise.
  1578. * include/c_global/cmath: Likewise.
  1579. * include/c_std/cmath: Likewise.
  1580. * include/decimal/decimal: Likewise.
  1581. * include/decimal/decimal.h: Likewise.
  1582. * include/experimental/algorithm: Likewise.
  1583. * include/experimental/any: Likewise.
  1584. * include/experimental/array: Likewise.
  1585. * include/experimental/bits/erase_if.h: Likewise.
  1586. * include/experimental/bits/fs_dir.h: Likewise.
  1587. * include/experimental/bits/fs_fwd.h: Likewise.
  1588. * include/experimental/bits/fs_ops.h: Likewise.
  1589. * include/experimental/bits/fs_path.h: Likewise.
  1590. * include/experimental/bits/lfts_config.h: Likewise.
  1591. * include/experimental/bits/shared_ptr.h: Likewise.
  1592. * include/experimental/bits/string_view.tcc: Likewise.
  1593. * include/experimental/chrono: Likewise.
  1594. * include/experimental/deque: Likewise.
  1595. * include/experimental/filesystem: Likewise.
  1596. * include/experimental/forward_list: Likewise.
  1597. * include/experimental/functional: Likewise.
  1598. * include/experimental/iterator: Likewise.
  1599. * include/experimental/list: Likewise.
  1600. * include/experimental/map: Likewise.
  1601. * include/experimental/memory: Likewise.
  1602. * include/experimental/memory_resource: Likewise.
  1603. * include/experimental/numeric: Likewise.
  1604. * include/experimental/optional: Likewise.
  1605. * include/experimental/propagate_const: Likewise.
  1606. * include/experimental/random: Likewise.
  1607. * include/experimental/ratio: Likewise.
  1608. * include/experimental/regex: Likewise.
  1609. * include/experimental/set: Likewise.
  1610. * include/experimental/source_location: Likewise.
  1611. * include/experimental/string: Likewise.
  1612. * include/experimental/string_view: Likewise.
  1613. * include/experimental/system_error: Likewise.
  1614. * include/experimental/tuple: Likewise.
  1615. * include/experimental/type_traits: Likewise.
  1616. * include/experimental/unordered_map: Likewise.
  1617. * include/experimental/unordered_set: Likewise.
  1618. * include/experimental/utility: Likewise.
  1619. * include/experimental/vector: Likewise.
  1620. * include/ext/bitmap_allocator.h: Likewise.
  1621. * include/ext/codecvt_specializations.h: Likewise.
  1622. * include/ext/rope: Likewise.
  1623. * include/ext/typelist.h: Likewise.
  1624. * include/std/chrono: Likewise.
  1625. * include/std/complex: Likewise.
  1626. * include/std/functional: Likewise.
  1627. * include/std/numeric: Likewise.
  1628. * include/std/string_view: Likewise.
  1629. * include/std/thread: Likewise.
  1630. * include/std/variant: Likewise.
  1631. * include/tr1/array: Likewise.
  1632. * include/tr1/bessel_function.tcc: Likewise.
  1633. * include/tr1/beta_function.tcc: Likewise.
  1634. * include/tr1/cmath: Likewise.
  1635. * include/tr1/complex: Likewise.
  1636. * include/tr1/ell_integral.tcc: Likewise.
  1637. * include/tr1/exp_integral.tcc: Likewise.
  1638. * include/tr1/functional: Likewise.
  1639. * include/tr1/functional_hash.h: Likewise.
  1640. * include/tr1/gamma.tcc: Likewise.
  1641. * include/tr1/hashtable.h: Likewise.
  1642. * include/tr1/hashtable_policy.h: Likewise.
  1643. * include/tr1/hypergeometric.tcc: Likewise.
  1644. * include/tr1/legendre_function.tcc: Likewise.
  1645. * include/tr1/modified_bessel_func.tcc: Likewise.
  1646. * include/tr1/poly_hermite.tcc: Likewise.
  1647. * include/tr1/poly_laguerre.tcc: Likewise.
  1648. * include/tr1/random.h: Likewise.
  1649. * include/tr1/random.tcc: Likewise.
  1650. * include/tr1/regex: Likewise.
  1651. * include/tr1/riemann_zeta.tcc: Likewise.
  1652. * include/tr1/shared_ptr.h: Likewise.
  1653. * include/tr1/special_function_util.h: Likewise.
  1654. * include/tr1/tuple: Likewise.
  1655. * include/tr1/type_traits: Likewise.
  1656. * include/tr1/unordered_map.h: Likewise.
  1657. * include/tr1/unordered_set.h: Likewise.
  1658. * include/tr1/utility: Likewise.
  1659. * include/tr2/bool_set: Likewise.
  1660. * include/tr2/bool_set.tcc: Likewise.
  1661. * include/tr2/dynamic_bitset: Likewise.
  1662. * include/tr2/dynamic_bitset.tcc: Likewise.
  1663. * include/tr2/ratio: Likewise.
  1664. * include/tr2/type_traits: Likewise.
  1665. * src/c++11/chrono.cc: Likewise.
  1666. * src/c++11/compatibility-c++0x.cc: Likewise.
  1667. * src/c++11/compatibility-chrono.cc: Likewise.
  1668. * src/c++11/cxx11-shim_facets.cc: Likewise.
  1669. * src/c++11/hashtable_c++0x.cc: Likewise.
  1670. * src/c++11/placeholders.cc: Likewise.
  1671. * src/c++11/thread.cc: Likewise.
  1672. * src/c++98/bitmap_allocator.cc: Likewise.
  1673. * src/c++98/hashtable_tr1.cc: Likewise.
  1674. * src/c++98/list.cc: Likewise.
  1675. * src/shared/hashtable-aux.cc: Likewise.
  1676. * testsuite/20_util/duration/literals/range.cc: Adapt line number.
  1677. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
  1678. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
  1679. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
  1680. * testsuite/20_util/forward/c_neg.cc: Likewise.
  1681. * testsuite/20_util/forward/f_neg.cc: Likewise.
  1682. * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
  1683. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
  1684. * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
  1685. * python/libstdcxx/v6/printers.py: Adapt.
  1686. 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
  1687. * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
  1688. (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
  1689. * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
  1690. (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
  1691. * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
  1692. * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
  1693. (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
  1694. (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
  1695. (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
  1696. (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
  1697. Define annotation helper types and macros.
  1698. (vector::~vector, vector::push_back, vector::pop_back)
  1699. (vector::_M_erase_at_end): Add annotations.
  1700. * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
  1701. (vector::insert, vector::_M_erase, vector::operator=)
  1702. (vector::_M_fill_assign, vector::_M_assign_aux)
  1703. (vector::_M_insert_rval, vector::_M_emplace_aux)
  1704. (vector::_M_insert_aux, vector::_M_realloc_insert)
  1705. (vector::_M_fill_insert, vector::_M_default_append)
  1706. (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
  1707. 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
  1708. PR libstdc++/81476
  1709. * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
  1710. Only insert elements one-by-one when inserting at the end.
  1711. * testsuite/performance/23_containers/insert/81476.cc: New.
  1712. 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
  1713. * libsupc++/new (bad_array_new_length): Remove redundant
  1714. semicolon after in-class member function definition.
  1715. * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
  1716. * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
  1717. * include/bits/random.h (mersenne_twister_engine): Likewise.
  1718. * include/tr1/random.h (mersenne_twister): Likewise
  1719. * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
  1720. * include/ext/rope (char_producer, _Rope_char_consumer,
  1721. _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
  1722. Likewise.
  1723. * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
  1724. _Rope_insert_char_consumer): Likewise.
  1725. 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
  1726. * include/bits/fstream.tcc (basic_filebuf::xsgetn)
  1727. (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
  1728. * testsuite/util/testsuite_iterators.h: Fix indentation.
  1729. * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
  1730. 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
  1731. PR libstdc++/81395
  1732. * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
  1733. pointers for write mode after reading.
  1734. * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
  1735. 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
  1736. * include/bits/stl_list.h
  1737. (struct _List_node_header): New.
  1738. (_List_impl()): Fix noexcept qualification.
  1739. (_List_impl(_List_impl&&)): New, default.
  1740. (_List_base()): Default.
  1741. (_List_base(_List_base&&)): Default.
  1742. (_List_base::_M_move_nodes): Adapt to use
  1743. _List_node_header._M_move_nodes.
  1744. (_List_base::_M_init): Likewise.
  1745. (list<>()): Default.
  1746. (list<>(list&&)): Default.
  1747. (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
  1748. (__distance(_List_const_iterator<>, _List_const_iterator<>,
  1749. input_iterator_tag)): Adapt.
  1750. * testsuite/23_containers/list/allocator/default_init.cc: New.
  1751. 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
  1752. * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
  1753. as per P0739R0.
  1754. * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
  1755. * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
  1756. with std::adopt_lock_t.
  1757. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
  1758. feature-test macro.
  1759. 2017-07-14 Jason Merrill <jason@redhat.com>
  1760. Jonathan Wakely <jwakely@redhat.com>
  1761. * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
  1762. the constructor for empty variants from the candidate functions
  1763. during class template argument deduction.
  1764. * testsuite/20_util/variant/deduction.cc: New.
  1765. 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
  1766. * doc/xml/faq.xml: Update several old entries. Improve
  1767. cross-references.
  1768. * doc/xml/manual/intro.xml: Add anchors to each DR.
  1769. * doc/html/*: Regenerate.
  1770. 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
  1771. * testsuite/abi/pr42230.cc: Add header for std::free.
  1772. PR libstdc++/81381
  1773. * include/bits/sstream.tcc (basic_stringbuf::overflow)
  1774. (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
  1775. (basic_stringbuf::str()): Construct new strings with an allocator.
  1776. * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
  1777. PR libstdc++/81338
  1778. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
  1779. Declare basic_stringbuf to be a friend.
  1780. * include/bits/sstream.tcc (basic_stringbuf::overflow)
  1781. [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
  1782. * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
  1783. length to buffer length.
  1784. * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
  1785. 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
  1786. * testsuite/20_util/specialized_algorithms/memory_management_tools/
  1787. 1.cc: Free memory.
  1788. * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
  1789. of original environment and free memory.
  1790. * testsuite/abi/pr42230.cc: Free memory.
  1791. * testsuite/util/testsuite_abi.cc (demangle): Return std::string
  1792. instead of pointer that might need freeing.
  1793. * testsuite/util/testsuite_abi.h (demangle): Likewise.
  1794. * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
  1795. * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
  1796. deleted overload to prevent dangling references to rvalues.
  1797. * include/experimental/memory_resource
  1798. (polymorphic_allocator::construct): Do not call __use_alloc with
  1799. rvalue arguments.
  1800. 2017-06-27 Tim Shen <timshen@google.com>
  1801. PR libstdc++/80187
  1802. * include/std/variant (variant::variant, variant::~variant,
  1803. variant::operator=): Implement triviality forwarding for four
  1804. special member functions.
  1805. * testsuite/20_util/variant/compile.cc: Tests.
  1806. 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
  1807. PR libstdc++/81221
  1808. * testsuite/25_algorithms/sample/81221.cc: Disable except for
  1809. check-parallel.
  1810. PR libstdc++/81221
  1811. * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
  1812. std.
  1813. * testsuite/25_algorithms/sample/81221.cc: New.
  1814. 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
  1815. PR libstdc++/81173
  1816. * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
  1817. Do not pass null pointer to memset.
  1818. 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
  1819. PR libstdc++/80675
  1820. PR libstdc++/80940
  1821. * include/std/istream:
  1822. (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
  1823. (__do_is_convertible_to_basic_istream_impl): Likewise.
  1824. (__is_convertible_to_basic_istream_impl): Likewise.
  1825. (__is_convertible_to_basic_istream): Use the new base.
  1826. (__rvalue_istream_type): New.
  1827. (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
  1828. for the SFINAE check, convert to the helper alias type before
  1829. doing the actual extraction.
  1830. * include/std/ostream:
  1831. (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
  1832. (__do_is_convertible_to_basic_ostream_impl): Likewise.
  1833. (__is_convertible_to_basic_ostream_impl): Likewise.
  1834. (__is_convertible_to_basic_ostream): Use the new base.
  1835. (__rvalue_ostream_type): New.
  1836. (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
  1837. for the SFINAE check, convert to the helper alias type before
  1838. doing the actual insertion.
  1839. * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
  1840. 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
  1841. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
  1842. 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
  1843. PR libstdc++/81092
  1844. * configure: Regenerate.
  1845. 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
  1846. * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
  1847. 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1848. * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
  1849. lp64 targets.
  1850. 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1851. * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
  1852. * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
  1853. * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
  1854. * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
  1855. * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
  1856. * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
  1857. Likewise.
  1858. * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
  1859. * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
  1860. Likewise.
  1861. 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
  1862. PR libstdc++/81092
  1863. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
  1864. 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
  1865. PR libstdc++/81092
  1866. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
  1867. 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1868. * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
  1869. default args.
  1870. 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
  1871. PR libstdc++/80893
  1872. * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
  1873. 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
  1874. * include/bits/shared_ptr.h (get_deleter): Add overload matching
  1875. standard signature.
  1876. * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
  1877. get_deleter overload as a friend.
  1878. * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
  1879. 2017-06-16 Jakub Jelinek <jakub@redhat.com>
  1880. PR libstdc++/81092
  1881. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
  1882. * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
  1883. * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
  1884. 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
  1885. * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
  1886. * testsuite/22_locale/conversions/buffer/2.cc: New.
  1887. PR libstdc++/81092
  1888. * acinclude.m4: Bump libtool_VERSION.
  1889. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
  1890. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
  1891. * config/abi/pre/gnu.ver: Add wstring constructor symbols to
  1892. GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
  1893. to new GLIBCXX_3.4.25 version.
  1894. * doc/xml/manual/abi.xml: Document new versions.
  1895. * doc/html/*: Regenerate.
  1896. * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
  1897. constructors to ensure required symbols are exported.
  1898. * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
  1899. * testsuite/util/testsuite_abi.cc: Add new version.
  1900. * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
  1901. return statement.
  1902. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
  1903. Return void.
  1904. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
  1905. Likewise.
  1906. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
  1907. missing return statements.
  1908. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
  1909. Likewise.
  1910. * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
  1911. Return void.
  1912. * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
  1913. 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
  1914. * include/bits/stl_bvector.h
  1915. (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
  1916. Change signature.
  1917. (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
  1918. (_Bvector_impl_data): New.
  1919. (_Bvector_impl): Inherits from latter.
  1920. (_Bvector_impl(_Bit_alloc_type&&)): Delete.
  1921. (_Bvector_impl(_Bvector_impl&&)): New, default.
  1922. (_Bvector_base()): Default.
  1923. (_Bvector_base(_Bvector_base&&)): Default.
  1924. (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
  1925. (vector(vector&&, const allocator_type&)): Use latter.
  1926. (vector<bool>::operator=(vector&&)): Likewise.
  1927. (vector<bool>::vector()): Default.
  1928. (vector<bool>::vector(vector&&)): Default.
  1929. (vector<bool>::assign(_InputIterator, _InputIterator)): Use
  1930. _M_assign_aux.
  1931. (vector<bool>::assign(initializer_list<bool>)): Likewise.
  1932. (vector<bool>::_M_initialize_value(bool)): New.
  1933. (vector<bool>(size_type, const bool&, const allocator_type&)): Use
  1934. latter.
  1935. (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
  1936. Likewise.
  1937. (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
  1938. 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
  1939. * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
  1940. (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
  1941. 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  1942. * testsuite: Add dg-require-effective-target pthread to -pthread
  1943. tests.
  1944. Remove explicit target lists from dg-do and dg-options.
  1945. * testsuite/30_threads/async/forced_unwind.cc: Remove explit
  1946. target list from dg-options.
  1947. * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
  1948. * 30_threads/shared_mutex/cons/1.cc: Likewise.
  1949. Pass -pthread for all targets.
  1950. * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
  1951. * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
  1952. * 30_threads/shared_mutex/unlock/1.cc: Likewise.
  1953. * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
  1954. dg-require-effective-target.
  1955. 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
  1956. * doc/xml/manual/test.xml: Correct instructions on running tests.
  1957. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
  1958. pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
  1959. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
  1960. Likewise.
  1961. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
  1962. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
  1963. * testsuite/27_io/basic_istream/extractors_arithmetic/char/
  1964. exceptions_failbit.cc: Likewise.
  1965. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
  1966. exceptions_failbit.cc: Likewise.
  1967. * testsuite/27_io/basic_istream/extractors_other/char/
  1968. exceptions_null.cc: Likewise.
  1969. * testsuite/27_io/basic_istream/extractors_other/wchar_t/
  1970. exceptions_null.cc: Likewise.
  1971. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
  1972. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
  1973. * testsuite/27_io/basic_ostream/inserters_other/char/
  1974. exceptions_null.cc: Likewise.
  1975. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
  1976. exceptions_null.cc: Likewise.
  1977. * testsuite/27_io/ios_base/storage/2.cc: Likewise.
  1978. 2017-06-12 Pedro Alves <palves@redhat.com>
  1979. * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
  1980. char_traits status.
  1981. * doc/html/*: Regenerate.
  1982. * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
  1983. not already defined.
  1984. (__cpp_lib_constexpr_char_traits): Uncomment.
  1985. (__constant_string_p, __constant_char_array_p): New.
  1986. (std::char_traits<char>, std::char_traits<wchar_t>): Add
  1987. _GLIBCXX17_CONSTEXPR on compare, length and find and use
  1988. __constant_string_p, __constant_char_array_p and
  1989. __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
  1990. time.
  1991. * testsuite/21_strings/char_traits/requirements/
  1992. constexpr_functions_c++17.cc: Uncomment
  1993. __cpp_lib_constexpr_char_traits tests. Uncomment
  1994. test_compare<char>, test_length<char>, test_find<char>,
  1995. test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
  1996. static_assert tests.
  1997. 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
  1998. * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
  1999. default init.
  2000. * testsuite/util/testsuite_allocator.h
  2001. (__gnu_test::default_init_allocator<>) New.
  2002. * testsuite/23_containers/set/allocator/default_init.cc: New.
  2003. * testsuite/23_containers/map/allocator/default_init.cc: New.
  2004. 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
  2005. PR libstdc++/55917
  2006. * src/c++11/thread.cc (execute_native_thread_routine): Remove
  2007. try-block so that exceptions propagate out of the thread and terminate
  2008. is called by the exception-handling runtime.
  2009. (execute_native_thread_routine_compat): Likewise.
  2010. * testsuite/30_threads/thread/cons/terminate.cc: New.
  2011. 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
  2012. * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
  2013. * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
  2014. (LWG 2802).
  2015. * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
  2016. (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
  2017. * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
  2018. * include/bits/forward_list.h (forward_list): Add deduction guide.
  2019. * include/bits/stl_deque.h (deque): Likewise.
  2020. * include/bits/stl_list.h (list): Likewise.
  2021. * include/bits/stl_vector.h (vector): Likewise.
  2022. * testsuite/23_containers/deque/cons/deduction.cc: New.
  2023. * testsuite/23_containers/forward_list/cons/deduction.cc: New.
  2024. * testsuite/23_containers/list/cons/deduction.cc: New.
  2025. * testsuite/23_containers/vector/cons/deduction.cc: New.
  2026. 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
  2027. PR libstdc++/81017
  2028. * include/bits/std_function.h (function::function(function&&))
  2029. (function::operator=(funtion&&)): Add noexcept.
  2030. * testsuite/20_util/function/assign/move.cc: Check for noexcept.
  2031. * testsuite/20_util/function/cons/move.cc: Likewise.
  2032. 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
  2033. * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
  2034. * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
  2035. PR libstdc++/81002
  2036. * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
  2037. so iterator type is deduced.
  2038. * include/bits/regex_compiler.h (__compile_nfa): Reorder template
  2039. parameters to allow iterator type to be deduced.
  2040. * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
  2041. * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
  2042. New trait and alias for detecting Allocator-like types.
  2043. * include/bits/basic_string.h (basic_string): Add deduction guide
  2044. from P0433.
  2045. * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
  2046. parameter with default template argument that causes substitution
  2047. failures for types that cannot be allocators.
  2048. * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
  2049. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
  2050. 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
  2051. PR libstdc++/80939
  2052. * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
  2053. (__erased_hash): Remove constexpr specifier and qualify calls to
  2054. __ref_cast.
  2055. (__erased_dtor): Remove constexpr specifier and use _Destroy.
  2056. 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
  2057. * include/bits/stl_iterator_base_funcs.h
  2058. (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
  2059. cases where incrementing or decrementing a single step.
  2060. * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
  2061. (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
  2062. specifiers as per LWG 2873 and LWG 2942.
  2063. * testsuite/20_util/owner_less/noexcept.cc: New.
  2064. * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
  2065. noexcept guarantees.
  2066. * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
  2067. 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
  2068. * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
  2069. 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
  2070. * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
  2071. 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
  2072. PR libstdc++/80624
  2073. * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
  2074. * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
  2075. Transform eof value to U+FFFD.
  2076. * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
  2077. * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
  2078. * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
  2079. * libsupc++/Makefile.am: Remove custom targets for files that need to
  2080. be compiled as C++11 or C++14.
  2081. * libsupc++/Makefile.in: Regenerate.
  2082. * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
  2083. warnings.
  2084. * libsupc++/del_opvs.cc: Likewise.
  2085. 2017-06-02 Richard Biener <rguenther@suse.de>
  2086. Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
  2087. PR libstdc++/80721
  2088. * libsupc++/eh_alloc.cc (pool::free): Keep list properly
  2089. sorted and add missing freelist item merging cases.
  2090. 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  2091. (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
  2092. Remove *-solaris* section.
  2093. * configure: Regenerate.
  2094. 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
  2095. PR libstdc++/80893
  2096. * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
  2097. null pointer dereference when size is zero.
  2098. * testsuite/23_containers/vector/bool/80893.cc: New.
  2099. * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
  2100. Add non-explicit constructor from nullptr.
  2101. (PointerBase::derived() const): Add const-qualified overload.
  2102. 2017-05-20 Tim Shen <timshen@google.com>
  2103. PR libstdc++/80737
  2104. * include/std/variant(variant::variant): SFINAE on is_same first.
  2105. * testsuite/20_util/variant/any.cc: test case.
  2106. 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
  2107. * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
  2108. instead of fixed number of bits.
  2109. 2017-05-24 Andreas Schwab <schwab@suse.de>
  2110. * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
  2111. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
  2112. 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
  2113. Jonathan Wakely <jwakely@redhat.com>
  2114. PR libstdc++/67578
  2115. * acinclude.m4: Bump libtool_VERSION.
  2116. * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
  2117. * config.h.in: Regenerate.
  2118. * configure: Regenerate.
  2119. * configure.ac: Add test for <linux/random.h>.
  2120. * doc/xml/manual/abi.xml: Document new library version.
  2121. * include/bits/random.h (random_device::entropy)
  2122. [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
  2123. (random_device::_M_getentropy): Declare.
  2124. * src/c++11/random.cc (random_device::_M_getentropy): Define.
  2125. * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
  2126. versions, and make it the latest version.
  2127. 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
  2128. PR libstdc++/67214
  2129. * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
  2130. explicit conversion to avoid signed overflow.
  2131. 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
  2132. PR libstdc++/80796
  2133. * include/bits/stl_algo.h (search): Add new overload for C++17.
  2134. * testsuite/25_algorithms/search/searcher.cc: New.
  2135. 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
  2136. PR libstdc++/80478
  2137. * include/std/functional (_Mem_fn_traits_base): Add specializations
  2138. for noexcept member function types.
  2139. * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
  2140. 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
  2141. * doc/xml/manual/policy_data_structures.xml: Fix typo.
  2142. * doc/xml/manual/test_policy_data_structures.xml: Likewise.
  2143. * doc/html/*: Regenerate.
  2144. * doc/xml/manual/abi.xml: Document latest library versions.
  2145. * doc/xml/manual/build_hacking.xml: Document requirement to update
  2146. abi.xml when bumping library versions.
  2147. * doc/html/*: Regenerate.
  2148. 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
  2149. * include/bits/refwrap.h: Fix Doxygen warning.
  2150. * include/bits/specfun.h: Likewise.
  2151. * include/bits/std_function.h: Likewise.
  2152. * include/bits/stl_algo.h (set_union, set_intersection)
  2153. (set_difference, set_symmetric_difference): Add Doxygen @param tags
  2154. for output iterator parameters.
  2155. * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
  2156. iterator parameter.
  2157. * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
  2158. Doxygen comments.
  2159. 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
  2160. Implement new C++ intrinsics __is_assignable and __is_constructible.
  2161. * include/std/type_traits (__do_is_static_castable_impl): Remove.
  2162. (__is_static_castable_impl, __is_static_castable_safe): Likewise.
  2163. (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
  2164. (__is_direct_constructible_impl): Likewise.
  2165. (__is_direct_constructible_new_safe): Likewise.
  2166. (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
  2167. (__is_direct_constructible_ref_cast): Likewise.
  2168. (__is_direct_constructible_new, __is_direct_constructible): Likewise.
  2169. (__do_is_nary_constructible_impl): Likewise.
  2170. (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
  2171. (__is_constructible_impl): Likewise.
  2172. (is_constructible): Call the intrinsic.
  2173. (__is_assignable_helper): Remove.
  2174. (is_assignable): Call the intrinsic.
  2175. (is_trivially_constructible): Likewise.
  2176. (__is_trivially_copy_constructible_impl): New.
  2177. (is_trivially_copy_constructible): Use it.
  2178. (__is_trivially_move_constructible_impl): New.
  2179. (is_trivially_move_constructible): Use it.
  2180. (is_trivially_assignable): Call the intrinsic.
  2181. (__is_trivially_copy_assignable_impl): New.
  2182. (is_trivially_copy_assignable): Use it.
  2183. (__is_trivially_move_assignable_impl): New.
  2184. (is_trivially_move_assignable): Use it.
  2185. (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
  2186. (testsuite/20_util/is_trivially_copy_assignable/value.cc):
  2187. Add test for void.
  2188. (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
  2189. (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
  2190. (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
  2191. (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
  2192. (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
  2193. Likewise.
  2194. 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
  2195. * testsuite/experimental/source_location/1.cc: Change expected result
  2196. for source_location::current() used in default member initializer.
  2197. * doc/xml/manual/status_cxx2017.xml: Update status table.
  2198. * doc/html/*: Regenerate.
  2199. * include/Makefile.am: Add new header.
  2200. * include/Makefile.in: Regenerate.
  2201. * include/experimental/source_location: New header implementing N4519.
  2202. * testsuite/experimental/source_location/1.cc: New test.
  2203. PR libstdc++/80285
  2204. * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
  2205. outside versioned namespace.
  2206. * configure: Regenerate.
  2207. 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
  2208. * include/std/optional (_Optional_base::_M_get): Check precondition.
  2209. * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
  2210. 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
  2211. * doc/xml/manual/appendix_contributing.xml: Link to test docs and
  2212. note higher DejaGnu version requirement.
  2213. * doc/html/*: Regenerate.
  2214. * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
  2215. identifiers.
  2216. * doc/html/*: Regenerate.
  2217. 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
  2218. PR libstdc++/80761
  2219. * include/bits/node_handle.h (_Node_insert_return): Reorder members.
  2220. (tuple_size, tuple_element): Remove partial specializations.
  2221. * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
  2222. const_iterator for std::set.
  2223. * testsuite/23_containers/map/modifiers/extract.cc: New.
  2224. * testsuite/23_containers/set/modifiers/extract.cc: New.
  2225. * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
  2226. * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
  2227. 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
  2228. PR libstdc++/78939
  2229. * include/std/utility (tuple_size<cv T>): Only define partial
  2230. specializations when tuple_size<T>::value is valid.
  2231. * testsuite/20_util/tuple/78939.cc: New.
  2232. * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
  2233. 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
  2234. * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
  2235. (_Rb_tree_impl<>): Remove _Is_pod_comparator
  2236. template parameter.
  2237. * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
  2238. (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
  2239. (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
  2240. Remove.
  2241. (__gnu_debug::_Error_formatter::_M_format_word): Remove.
  2242. (__gnu_debug::_Error_formatter::_M_print_word): Remove.
  2243. (__gnu_debug::_Error_formatter::_M_print_string): Remove.
  2244. (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
  2245. * src/c++11/debug.cc: Adapt.
  2246. * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
  2247. 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
  2248. * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
  2249. * doc/xml/manual/mt_allocator.xml: Likewise.
  2250. * doc/html/*: Regenerate.
  2251. PR libstdc++/80285
  2252. * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
  2253. function to get unique fake std::type_info reference.
  2254. (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
  2255. _S_ti() fake reference.
  2256. (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
  2257. single implementation with or without RTTI enable.
  2258. [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
  2259. * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
  2260. allocation and deallocation counts.
  2261. * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
  2262. * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
  2263. New.
  2264. 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
  2265. Bump version namespace.
  2266. * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
  2267. from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
  2268. * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
  2269. * include/bits/c++config: Adapt.
  2270. * include/bits/regex.h: Adapt.
  2271. * include/experimental/bits/fs_fwd.h: Adapt.
  2272. * include/experimental/bits/lfts_config.h: Adapt.
  2273. * include/std/variant: Adapt.
  2274. * python/libstdcxx/v6/printers.py: Adapt.
  2275. * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
  2276. * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
  2277. _GLIBCXX_MOVE usage.
  2278. 2017-05-09 Jason Merrill <jason@redhat.com>
  2279. * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
  2280. 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
  2281. * include/std/optional: Use a separate static_assert per condition.
  2282. * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
  2283. numbers.
  2284. * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
  2285. * doc/html/*: Regenerate.
  2286. 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
  2287. PR libstdc++/69506
  2288. * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
  2289. 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
  2290. * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
  2291. by a note-test.
  2292. 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
  2293. PR libstdc++/80553
  2294. * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
  2295. assertions to ensure type is destructible.
  2296. (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
  2297. * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
  2298. Move to stl_construct.h.
  2299. * testsuite/20_util/specialized_algorithms/memory_management_tools/
  2300. destroy_neg.cc: New test.
  2301. * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
  2302. * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
  2303. superfluous "" in dg-error.
  2304. 2017-04-28 Tom de Vries <tom@codesourcery.com>
  2305. * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
  2306. superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
  2307. 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
  2308. * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
  2309. (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
  2310. * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
  2311. Likewise.
  2312. 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
  2313. * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
  2314. comment. Ensure first test works because allocator type propagates and
  2315. not because is_always_equal is true.
  2316. * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
  2317. testcase that instantiates the move-assignment operator.
  2318. 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
  2319. PR libstdc++/80506
  2320. * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
  2321. number used in loop condition.
  2322. PR libstdc++/80504
  2323. * include/bits/refwrap.h (ref, cref): Qualify calls.
  2324. * testsuite/20_util/reference_wrapper/80504.cc: New test.
  2325. PR libstdc++/80493
  2326. * include/experimental/optional (optional::swap): Fix exception
  2327. specification.
  2328. 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
  2329. PR libstdc++/80316
  2330. * include/std/future (_State_baseV2::_Setter::operator()): Remove
  2331. _S_check calls that are done after the pointer to the shared state is
  2332. already dereferenced.
  2333. (_State_baseV2::_Setter<_Res, void>): Define specialization for void
  2334. as partial specialization so it can be defined within the definition
  2335. of _State_baseV2.
  2336. (_State_baseV2::__setter): Call _S_check.
  2337. (_State_baseV2::__setter(promise<void>*)): Add overload for use by
  2338. promise<void>::set_value and promise<void>::set_value_at_thread_exit.
  2339. (promise<T>, promise<T&>, promise<void>): Make _State a friend.
  2340. (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
  2341. (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
  2342. Use new __setter overload.
  2343. * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
  2344. * testsuite/30_threads/promise/members/set_exception.cc: Test
  2345. promise<T&> and promise<void> specializations.
  2346. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
  2347. Test for no_state error condition.
  2348. * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
  2349. * include/backward/auto_ptr.h: Ignore deprecated warnings from use
  2350. of auto_ptr.
  2351. * include/bits/shared_ptr.h: Likewise.
  2352. * include/bits/shared_ptr_base.h: Likewise.
  2353. * include/bits/unique_ptr.h: Likewise.
  2354. * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
  2355. dg-error lineno.
  2356. * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
  2357. * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
  2358. Likewise.
  2359. * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
  2360. Likewise.
  2361. 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
  2362. PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
  2363. * include/tr1/exp_integral.tcc: Increase iteration limits.
  2364. * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
  2365. pr68397.cc: New test.
  2366. * testsuite/special_functions/14_expint/pr68397.cc: New test.
  2367. 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
  2368. PR libstdc++/79862
  2369. * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
  2370. (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
  2371. (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
  2372. (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
  2373. (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
  2374. (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
  2375. (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
  2376. (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
  2377. (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
  2378. define.
  2379. 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
  2380. * doc/xml/manual/abi.xml: Rephrase one of the references to the
  2381. Itanium C++ ABI.
  2382. * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
  2383. * doc/html/*: Regenerate.
  2384. * libsupc++/new: Update comment on #endif directive.
  2385. PR libstdc++/80448
  2386. * include/experimental/bits/fs_dir.h (directory_iterator)
  2387. (recursive_directory_iterator): Remove noexcept from defaulted
  2388. constructors.
  2389. PR libstdc++/80446
  2390. * include/std/type_traits (is_aggregate): Change __has_builtin checks.
  2391. * libsupc++/new (launder): Likewise.
  2392. 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
  2393. * include/std/functional (default_searcher, __boyer_moore_array_base)
  2394. (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
  2395. (boyer_moore_horspool_searcher): Remove redundant namespace
  2396. qualification.
  2397. (default_searcher::operator()): Construct return value early and
  2398. advance second member in-place.
  2399. (boyer_moore_horspool_searcher::operator()): Increment random access
  2400. iterator directly instead of using std::next.
  2401. (boyer_moore_searcher::operator()): Fix return value.
  2402. * testsuite/20_util/function_objects/searchers.cc: Check both parts
  2403. of return values.
  2404. 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
  2405. * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
  2406. * doc/xml/manual/abi.xml. Ditto (thrice).
  2407. 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
  2408. * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
  2409. * doc/html/*: Regenerate.
  2410. * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
  2411. that no longer fail.
  2412. * include/bits/ios_base.h: Correct comment.
  2413. * testsuite/util/testsuite_hooks.h: Likewise.
  2414. * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
  2415. * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
  2416. directories for debug, parallel and profile headers.
  2417. * doc/html/*: Regenerate.
  2418. * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
  2419. _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
  2420. (std::char_traits<char>, std::char_traits<wchar_t>): Add
  2421. _GLIBCXX17_CONSTEXPR on assign.
  2422. (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
  2423. _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
  2424. * testsuite/21_strings/char_traits/requirements/
  2425. constexpr_functions_c++17.cc: New test.
  2426. 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
  2427. PR libstdc++/79141
  2428. * include/bits/stl_pair.h (__nonesuch_no_braces): New.
  2429. (operator=(typename conditional<
  2430. __and_<is_copy_assignable<_T1>,
  2431. is_copy_assignable<_T2>>::value,
  2432. const pair&, const __nonesuch&>::type)): Change __nonesuch
  2433. to __nonesuch_no_braces.
  2434. (operator=(typename conditional<
  2435. __not_<__and_<is_copy_assignable<_T1>,
  2436. is_copy_assignable<_T2>>>::value,
  2437. const pair&, const __nonesuch&>::type)): Likewise.
  2438. (operator=(typename conditional<
  2439. __and_<is_move_assignable<_T1>,
  2440. is_move_assignable<_T2>>::value,
  2441. pair&&, __nonesuch&&>::type)): Likewise.
  2442. * testsuite/20_util/pair/79141.cc: New.
  2443. 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
  2444. Implement std::is_aggregate.
  2445. * include/std/type_traits (is_aggregate, is_aggregate_v): New.
  2446. * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
  2447. New.
  2448. * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
  2449. * testsuite/20_util/is_aggregate/value.cc: Likewise.
  2450. 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
  2451. Adjust optional's pretty printer for LWG 2900.
  2452. * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
  2453. Look at the nested payload in case of non-experimental optional.
  2454. 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
  2455. Implement LWG 2900, The copy and move constructors
  2456. of optional are not constexpr.
  2457. * include/std/optional (_Optional_payload): New.
  2458. (_Optional_base): Remove the bool parameter.
  2459. (_Optional_base<_Tp, false>): Remove.
  2460. (_Optional_base()): Adjust.
  2461. (_Optional_base(nullopt_t)): Likewise.
  2462. (_Optional_base(in_place_t, _Args&&...)): Likewise.
  2463. (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
  2464. Likewise.
  2465. (_Optional_base(const _Optional_base&)): Likewise.
  2466. (_Optional_base(_Optional_base&&)): Likewise.
  2467. (operator=(const _Optional_base&)): Likewise.
  2468. (operator=(_Optional_base&&)): Likewise.
  2469. (~_Optional_base()): Remove.
  2470. (_M_is_engaged()): Adjust.
  2471. (_M_get()): Likewise.
  2472. (_M_construct(_Args&&...)): Likewise.
  2473. (_M_destruct()): Likewise.
  2474. (_M_reset()): Likewise.
  2475. (_Optional_base::_Empty_byte): Remove.
  2476. (_Optional_base::_M_empty): Remove.
  2477. (_Optional_base::_M_payload): Adjust.
  2478. * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
  2479. * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
  2480. 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
  2481. PR libstdc++/80137
  2482. * include/bits/random.tcc (generate_canonical): Use std::nextafter
  2483. or numeric_limits::epsilon() to reduce out-of-range values.
  2484. * testsuite/26_numerics/random/uniform_real_distribution/operators/
  2485. 64351.cc: Verify complexity requirement is met.
  2486. * doc/xml/manual/abi.xml: Add xml:id anchor.
  2487. * doc/xml/manual/using.xml (manual.intro.using.macros): Document
  2488. _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
  2489. (concurrency.io.structure): Add markup.
  2490. * doc/html/*: Regenerate.
  2491. PR libstdc++/80229
  2492. * include/bits/shared_ptr_base.h
  2493. (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
  2494. non-const and then use remove_cv to get unqualified type.
  2495. * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
  2496. cast away constness on object created const.
  2497. * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
  2498. 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
  2499. PR libstdc++/80183
  2500. * include/bits/stl_tree.h:
  2501. (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
  2502. 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
  2503. * testsuite/23_containers/array/tuple_interface/
  2504. tuple_element_debug_neg.cc: Adjust dg-error.
  2505. * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
  2506. define a valid strict weak ordering.
  2507. * testsuite/23_containers/priority_queue/67085.cc: Disable test for
  2508. Debug Mode, due to debug checks making extra copies of predicate.
  2509. * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
  2510. Likewise.
  2511. * doc/xml/faq.xml: Add link.
  2512. * doc/xml/manual/backwards_compatibility.xml: Remove outdated
  2513. information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
  2514. * doc/xml/manual/io.xml: Update broken link.
  2515. * doc/html/*: Regenerate.
  2516. 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
  2517. Implement LWG 2686, Why is std::hash specialized for error_code,
  2518. but not error_condition?
  2519. * include/std/system_error (hash<error_condition>): Define for C++17.
  2520. * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
  2521. Instantiate test for error_condition.
  2522. * testsuite/20_util/hash/requirements/explicit_instantiation.cc
  2523. (hash<error_condition>): Instantiate hash<error_condition>.
  2524. * include/bits/c++config (_GLIBCXX17_INLINE): Define.
  2525. * include/bits/regex_constants.h (All std::regex_constants constants):
  2526. Add _GLIBCXX17_INLINE as per P0607R0.
  2527. * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
  2528. Likewise.
  2529. * include/bits/stl_pair.h (piecewise_construct): Likewise.
  2530. * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
  2531. (__is_uses_allocator_constructible_v)
  2532. (__is_nothrow_uses_allocator_constructible_v): Likewise.
  2533. * include/std/chrono (treat_as_floating_point_v): Likewise.
  2534. * include/std/functional (is_bind_expression_v, is_placeholder_v):
  2535. Likewise.
  2536. * include/std/optional (nullopt): Likewise.
  2537. * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
  2538. ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
  2539. * include/std/system_error (is_error_code_enum_v)
  2540. (is_error_condition_enum_v): Likewise.
  2541. * include/std/tuple (tuple_size_v, ignore): Likewise.
  2542. (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
  2543. constexpr as per LWG 2933.
  2544. * include/std/type_traits (All variable templates): Add
  2545. _GLIBCXX17_INLINE as per P0607R0.
  2546. * include/std/variant (variant_size_v, variant_npos, __index_of_v)
  2547. (__tuple_count_v, __exactly_once): Likewise.
  2548. * testsuite/18_support/headers/new/synopsis.cc
  2549. (hardware_destructive_interference_size)
  2550. (hardware_constructive_interference_size): Likewise for commented-out
  2551. variables.
  2552. * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
  2553. test function for constexpr std::ignore (LWG 2773).
  2554. * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
  2555. test for LWG 2933.
  2556. 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
  2557. * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
  2558. guides for C++17.
  2559. * include/bits/std_function.h (function): Likewise.
  2560. * include/bits/stl_pair.h (pair): Likewise.
  2561. * include/debug/array (__gnu_debug::array): Likewise.
  2562. * include/std/array (array): Likewise.
  2563. * include/std/functional (make_default_searcher)
  2564. (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
  2565. Remove generator functions.
  2566. * include/std/tuple (tuple): Add deduction guides.
  2567. * include/std/valarray (valarray): Likewise.
  2568. * testsuite/20_util/function_objects/searchers.cc: Adjust to use
  2569. class template argument deduction instead of generator functions.
  2570. * testsuite/20_util/function/cons/deduction.cc: New test.
  2571. * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
  2572. * testsuite/20_util/optional/cons/deduction.cc: ... here.
  2573. * testsuite/20_util/pair/cons/deduction.cc: New test.
  2574. * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
  2575. * testsuite/20_util/tuple/cons/deduction.cc: New test.
  2576. * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
  2577. * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
  2578. * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
  2579. * testsuite/23_containers/array/cons/deduction.cc: New test.
  2580. * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
  2581. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
  2582. Adjust dg-error.
  2583. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
  2584. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
  2585. Likewise.
  2586. * testsuite/26_numerics/valarray/deduction.cc: New test.
  2587. * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
  2588. * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
  2589. * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
  2590. 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
  2591. * include/bits/stl_deque.h (deque): Access allocator value_type only if
  2592. concept checks are enabled.
  2593. * include/bits/stl_stack.h (stack): Likewise.
  2594. * include/bits/stl_vector.h (vector): Likewise.
  2595. * include/bits/stl_list.h (list): Likewise and check
  2596. _SGIAssignableConcept only in C++03.
  2597. * include/bits/stl_map.h (map): Likewise.
  2598. * include/bits/stl_set.h (set): Likewise.
  2599. * include/bits/stl_multimap.h (multimap): Likewise.
  2600. * include/bits/stl_multiset.h (multiset): Likewise.
  2601. * include/bits/stl_queue.h (queue, priority_queue): Likewise.
  2602. 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
  2603. * doc/xml/manual/appendix_contributing.xml: Convert link to
  2604. ansi.org to https.
  2605. Update link to the C++ standard at ansi.org.
  2606. * doc/xml/faq.xml: Remove information redundant with the above;
  2607. instead add a reference.
  2608. 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
  2609. * src/c++11/codecvt.cc (range): Add non-type template parameter and
  2610. define oerloaded operators for reading and writing code units.
  2611. (range<Elem, false>): Define partial specialization for accessing
  2612. wide characters in potentially unaligned byte ranges.
  2613. (ucs2_span(const char16_t*, const char16_t*, ...))
  2614. (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
  2615. to range<const char16_t, false> in order to avoid unaligned reads.
  2616. (__codecvt_utf16_base<char16_t>::do_out)
  2617. (__codecvt_utf16_base<char32_t>::do_out)
  2618. (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
  2619. unaligned data to avoid unaligned writes.
  2620. (__codecvt_utf16_base<char16_t>::do_in)
  2621. (__codecvt_utf16_base<char32_t>::do_in)
  2622. (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
  2623. error if there are unprocessable trailing bytes.
  2624. (__codecvt_utf16_base<char16_t>::do_length)
  2625. (__codecvt_utf16_base<char32_t>::do_length)
  2626. (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
  2627. range<const char16_t, false> to span functions.
  2628. * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
  2629. 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
  2630. PR libstdc++/79980
  2631. * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
  2632. PR libstdc++/80041
  2633. * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
  2634. (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
  2635. char16_t to work with UTF-16 instead of UTF-8.
  2636. * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
  2637. * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
  2638. (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
  2639. (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
  2640. (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
  2641. (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
  2642. (__codecvt_utf8_utf16_base<char32_t>)
  2643. (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
  2644. do_max_length() return values.
  2645. * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
  2646. * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
  2647. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
  2648. PR libstdc++/79980
  2649. * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
  2650. error path.
  2651. * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
  2652. for manipulating codecvt_mode values.
  2653. (read_utf16_bom): Compare input to BOM constants instead of integral
  2654. constants that depend on endianness. Take mode parameter by
  2655. reference and adjust it, to distinguish between no BOM present and
  2656. UTF-16BE BOM present.
  2657. (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
  2658. (surrogates): New enumeration type.
  2659. (utf16_in, utf16_out): Add surrogates parameter to choose between
  2660. UTF-16 and UCS2 behaviour.
  2661. (utf16_span, ucs2_span): Use std::min not std::max.
  2662. (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
  2663. (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
  2664. * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
  2665. * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
  2666. PR libstdc++/79511
  2667. * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
  2668. as a surrogate pair.
  2669. (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
  2670. for internal representation.
  2671. (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
  2672. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
  2673. PR libstdc++/80064
  2674. * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
  2675. (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
  2676. invalid instantiations using function types for _Compare argument.
  2677. * testsuite/25_algorithms/make_heap/80064.cc: New test.
  2678. PR libstdc++/67440
  2679. * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
  2680. for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
  2681. 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
  2682. Implement LWG 2857, {variant,optional,any}::emplace should
  2683. return the constructed value.
  2684. * include/std/any (emplace(_Args&&...)): Change the return type and
  2685. return a reference to the constructed value.
  2686. (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
  2687. * include/std/optional (emplace(_Args&&...)): Likewise.
  2688. (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
  2689. * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
  2690. (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
  2691. (emplace<_Np>(_Args&&...)): Likewise.
  2692. (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
  2693. * testsuite/20_util/any/assign/emplace.cc: Add tests for
  2694. checking the return value of emplace.
  2695. * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
  2696. * testsuite/20_util/optional/assignment/6.cc: Add tests for
  2697. checking the return value of emplace.
  2698. * testsuite/20_util/variant/run.cc: Likewise.
  2699. 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
  2700. PR libstdc++/62045
  2701. * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
  2702. (is_heap): Remove.
  2703. (push_heap): Remove the wrong checking using is_heap.
  2704. (make_heap): Remove the assertion using is_heap.
  2705. * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
  2706. (modify): Ditto.
  2707. (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
  2708. calling make_heap.
  2709. 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
  2710. PR libstdc++/62045
  2711. * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
  2712. New test.
  2713. * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
  2714. error in comment.
  2715. 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
  2716. * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
  2717. comment.
  2718. * config.h.in: Regenerate.
  2719. * configure: Regenerate.
  2720. * doc/Makefile.in: Regenerate.
  2721. 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
  2722. PR libstdc++/79162
  2723. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  2724. (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
  2725. with a constrained template.
  2726. [!_GLIBCXX_USE_CXX11_ABI]
  2727. (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
  2728. * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
  2729. * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
  2730. 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
  2731. PR libstdc++/80034
  2732. * include/bits/list.tcc (merge(list&&)): Use const for the size_t
  2733. in the catch-block.
  2734. (merge(list&&, _StrictWeakOrdering)): Likewise.
  2735. * testsuite/23_containers/list/operations/80034.cc: New.
  2736. 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
  2737. Implement LWG 2806, Base class of bad_optional_access.
  2738. * include/std/optional (bad_optional_access):
  2739. Derive from std::exception.
  2740. (bad_optional_access::bad_optional_access): Adjust.
  2741. (bad_optional_access::what): New.
  2742. (__throw_bad_optional_access(const char*)):
  2743. Remove the parameter and adjust calls.
  2744. * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
  2745. * testsuite/20_util/optional/typedefs.cc: Likewise.
  2746. 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
  2747. Implement LWG 2934, optional<const T> doesn't compare with T.
  2748. * include/std/optional
  2749. (operator==(const optional<_Tp>&, const optional<_Tp>&)):
  2750. Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
  2751. (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
  2752. Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
  2753. (operator<(const optional<_Tp>&, const optional<_Tp>&)):
  2754. Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
  2755. (operator>(const optional<_Tp>&, const optional<_Tp>&)):
  2756. Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
  2757. (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
  2758. Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
  2759. (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
  2760. Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
  2761. (operator==(const optional<_Tp>&, const _Tp&)):
  2762. Turn into operator==(const optional<_Tp>&, const _Up&).
  2763. (operator==(const _Tp&, const optional<_Tp>&)):
  2764. Turn into operator==(const _Up&, const optional<_Tp>&).
  2765. (operator!=(const optional<_Tp>&, const _Tp&)):
  2766. Turn into operator!=(const optional<_Tp>&, const _Up&).
  2767. (operator!=(const _Tp&, const optional<_Tp>&)):
  2768. Turn into operator!=(const _Up&, const optional<_Tp>&).
  2769. (operator<(const optional<_Tp>&, const _Tp&)):
  2770. Turn into operator<(const optional<_Tp>&, const _Up&).
  2771. (operator<(const _Tp&, const optional<_Tp>&)):
  2772. Turn into operator<(const _Up&, const optional<_Tp>&).
  2773. (operator>(const optional<_Tp>&, const _Tp&)):
  2774. Turn into operator>(const optional<_Tp>&, const _Up&).
  2775. (operator>(const _Tp&, const optional<_Tp>&)):
  2776. Turn into operator>(const _Up&, const optional<_Tp>&).
  2777. (operator<=(const optional<_Tp>&, const _Tp&)):
  2778. Turn into operator<=(const optional<_Tp>&, const _Up&).
  2779. (operator<=(const _Tp&, const optional<_Tp>&)):
  2780. Turn into operator<=(const _Up&, const optional<_Tp>&).
  2781. (operator>=(const optional<_Tp>&, const _Tp&)):
  2782. Turn into operator>=(const optional<_Tp>&, const _Up&).
  2783. (operator>=(const _Tp&, const optional<_Tp>&)):
  2784. Turn into operator>=(const _Up&, const optional<_Tp>&).
  2785. * testsuite/20_util/optional/relops/7.cc: New.
  2786. 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
  2787. * testsuite/17_intro/names.cc: Undefine macros that clash with
  2788. identifiers in AIX system headers.
  2789. * include/bits/invoke.h (__invoke): Use __invoke_result instead of
  2790. result_of, and __is_nothrow_invocable instead of
  2791. __is_nothrow_callable.
  2792. * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
  2793. instead of __is_callable.
  2794. * include/std/functional (invoke): use invoke_result_t instead of
  2795. result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
  2796. (_Not_fn): Use __invoke_result instead of result_of.
  2797. * include/std/type_traits (__result_of_memobj, __result_of_memfun):
  2798. Remove partial specializations for reference_wrapper types.
  2799. (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
  2800. (__invoke_result): Define replacement for result_of and then use it to
  2801. define result_of.
  2802. (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
  2803. with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
  2804. respectively.
  2805. (invoke_result, invoke_result_t): Define for C++17.
  2806. (is_callable, is_nothrow_callable): Replace with is_invocable,
  2807. is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
  2808. (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
  2809. is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
  2810. * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
  2811. instead of is_nothrow_callable_v.
  2812. * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
  2813. main function.
  2814. * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
  2815. instead of is_callable.
  2816. * testsuite/20_util/is_callable/*: Rename directory and adjust tests
  2817. to use new traits.
  2818. * testsuite/20_util/is_nothrow_callable/*: Likewise.
  2819. * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
  2820. is_callable.
  2821. * testsuite/20_util/variant/hash.cc: Likewise.
  2822. 2017-03-10 George Lander <george.lander@arm.com>
  2823. * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
  2824. _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
  2825. * configure: Regenerate.
  2826. 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
  2827. * include/std/functional (_Not_fn): Define macro to simplify
  2828. repetitive function definitions.
  2829. * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
  2830. * include/c_global/cstddef (std::byte): Define for C++17.
  2831. * testsuite/18_support/byte/global_neg.cc: New test.
  2832. * testsuite/18_support/byte/ops.cc: New test.
  2833. * testsuite/18_support/byte/requirements.cc: New test.
  2834. 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
  2835. * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
  2836. * doc/html/*: Regenerate.
  2837. * include/std/mutex (scoped_lock): Implement new C++17 template.
  2838. * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
  2839. * testsuite/30_threads/scoped_lock/requirements/
  2840. explicit_instantiation.cc: New test.
  2841. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
  2842. 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
  2843. François Dumont <frs.dumont@gmail.com>
  2844. Jonathan Wakely <jwakely@redhat.com>
  2845. * doc/xml/manual/debug_mode.xml: Update and simplify note
  2846. on link- and run-time coexistence.
  2847. 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
  2848. * testsuite/17_intro/headers/names.cc: Rename to ...
  2849. * testsuite/17_intro/names.cc: ... here.
  2850. PR libstdc++/79789
  2851. * include/bits/hashtable_policy.h (__clp2): Use reserved names for
  2852. parameters and local variables.
  2853. * include/bits/ios_base.h (make_error_code, make_error_condition):
  2854. Likewise.
  2855. * include/bits/list.tcc (list::sort): Likewise.
  2856. * include/bits/mask_array.h (mask_array): Likewise.
  2857. * include/bits/regex.h (regex_token_iterator): Likewise.
  2858. * include/bits/slice_array.h (slice_array): Likewise.
  2859. * include/bits/stl_algo.h (__sample): Likewise.
  2860. * include/std/memory (undeclare_no_pointers): Likewise.
  2861. * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
  2862. Likewise.
  2863. * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
  2864. * testsuite/17_intro/headers/names.cc: New test.
  2865. PR libstdc++/79798
  2866. * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
  2867. result_of that loses top-level cv-qualifiers.
  2868. * testsuite/20_util/bind/79798.cc: New test.
  2869. 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
  2870. * doc/xml/manual/documentation_hacking.xml: Tweak link to
  2871. doxygen.org.
  2872. 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
  2873. * include/experimental/iterator: Include <iterator>.
  2874. * testsuite/experimental/iterator/requirements.cc: Check for contents
  2875. of <iterator>.
  2876. 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
  2877. C++17 GB50 resolution
  2878. * include/std/chrono (duration::operator++()): Add
  2879. _GLIBCXX17_CONSTEXPR.
  2880. (duration::operator++(int)): Likewise.
  2881. (duration::operator--()): Likewise.
  2882. (duration::operator--(int)): Likewise.
  2883. (duration::operator+=(const duration&)): Likewise.
  2884. (duration::operator-=(const duration&)): Likewise.
  2885. (duration::operator*=(const rep&)): Likewise.
  2886. (duration::operator/=(const rep&)): Likewise.
  2887. (duration::operator%=(const rep&)): Likewise.
  2888. (duration::operator%=(const duration&)): Likewise.
  2889. (time_point::operator+=(const duration&)): Likewise.
  2890. (time_point::operator-=(const duration&)): Likewise.
  2891. * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
  2892. * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
  2893. * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
  2894. 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
  2895. * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
  2896. 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
  2897. * doc/xml/manual/io.xml: Update link to groups.google.com.
  2898. Tweak link description.
  2899. 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
  2900. * doc/xml/manual/profile_mode.xml: Fix link.
  2901. 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
  2902. * doc/xml/manual/policy_data_structures.xml: Simplify and
  2903. standardize references to boost.org.
  2904. * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
  2905. * doc/xml/manual/shared_ptr.xml: Ditto.
  2906. 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
  2907. PR libstdc++/60936
  2908. * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
  2909. written to buffer, not length remaining in buffer.
  2910. 2017-02-15 Tim Shen <timshen@google.com>
  2911. PR libstdc++/78723
  2912. * include/std/variant (operator<(), operator>(), operator<=(),
  2913. operator>=(), operator==(), operator!=()): Implement P0393R3.
  2914. * testsuite/20_util/variant/compile.cc: Adjust tests.
  2915. * testsuite/20_util/variant/run.cc: Adjust tests.
  2916. 2017-02-15 Tim Shen <timshen@google.com>
  2917. PR libstdc++/79513
  2918. * include/std/variant (visit()): Forward variant types to the return
  2919. type detection code.
  2920. * testsuite/20_util/variant/compile.cc: Add test cases.
  2921. 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
  2922. PR libstdc++/79348
  2923. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
  2924. 2017-02-13 Jakub Jelinek <jakub@redhat.com>
  2925. PR libstdc++/79348
  2926. * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
  2927. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
  2928. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
  2929. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
  2930. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
  2931. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
  2932. * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
  2933. * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
  2934. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
  2935. 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
  2936. PR libstdc++/79486
  2937. * include/std/future (__future_base::_Task_state::_M_run)
  2938. (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
  2939. result_of expressions.
  2940. * testsuite/30_threads/packaged_task/79486.cc: New.
  2941. 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
  2942. PR libstdc++/79467
  2943. * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
  2944. (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
  2945. __is_callable check.
  2946. * testsuite/20_util/shared_ptr/cons/79467.cc: New.
  2947. * include/bits/atomic_base.h: Re-indent.
  2948. 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
  2949. * doc/xml/manual/profile_mode.xml: Update a paper reference.
  2950. 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
  2951. * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
  2952. 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
  2953. * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
  2954. name.
  2955. * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
  2956. broken links to texts that are no longer online.
  2957. * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
  2958. LCPC 2006 paper.
  2959. * doc/xml/manual/using.xml: Update links to memory model information.
  2960. * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
  2961. Standard-Library Exception Safety".
  2962. * doc/html/*: Regenerate.
  2963. 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
  2964. * doc/xml/manual/profile_mode.xml: Unbreak link to
  2965. "Optimizing Sorting with Machine Learning Algorithms".
  2966. 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
  2967. * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
  2968. 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
  2969. * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
  2970. Migration Guide".
  2971. 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
  2972. * doc/html/ext/lwg-active.html: Remove.
  2973. * doc/html/ext/lwg-closed.html: Ditto.
  2974. * doc/html/ext/lwg-defects.html: Ditto.
  2975. * doc/Makefile.am (xml_extradir): Remove.
  2976. (xml_extra): Ditto.
  2977. (stamp-html-docbook-lwg): Remove recipe...
  2978. (stamp-html-docbook-data): ...and its use here.
  2979. * doc/Makefile.in: Regenerate.
  2980. * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
  2981. the relationship to the upstream working group.
  2982. Replace a local link to ../ext/lwg-active.html by the upstream one.
  2983. Replace all reference to ../ext/lwg-defects.html by a new entity
  2984. &DR; which refers to the upstream address.
  2985. 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
  2986. * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
  2987. 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
  2988. PR libstdc++/79323
  2989. * testsuite/20_util/duration/literals/range.cc: Prune extra output
  2990. at -O0.
  2991. 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
  2992. * doc/xml/manual/documentation_hacking.xml: Update URL of the
  2993. DocBook Element Reference. Use that term as link description
  2994. instead of "online".
  2995. epubcheck has moved to GitHub.
  2996. Remove obsolete link to DocBook Publishing Tools.
  2997. 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
  2998. PR libstdc++/66145
  2999. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
  3000. so new ios::failure can be caught even when old ABI is the default.
  3001. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
  3002. * testsuite/27_io/basic_istream/extractors_arithmetic/char/
  3003. exceptions_failbit.cc: Likewise.
  3004. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
  3005. exceptions_failbit.cc: Likewise.
  3006. * testsuite/27_io/basic_istream/extractors_other/char/
  3007. exceptions_null.cc: Likewise.
  3008. * testsuite/27_io/basic_istream/extractors_other/wchar_t/
  3009. exceptions_null.cc: Likewise.
  3010. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
  3011. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
  3012. * testsuite/27_io/basic_ostream/inserters_other/char/
  3013. exceptions_null.cc: Likewise.
  3014. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
  3015. exceptions_null.cc: Likewise.
  3016. * testsuite/27_io/ios_base/storage/2.cc: Likewise.
  3017. PR libstdc++/60936
  3018. * src/c++11/Makefile.am: Add new files.
  3019. * src/c++11/Makefile.in: Regenerate.
  3020. * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
  3021. (operator<<, operator>>, getline): Move explicit instantiations to ...
  3022. * src/c++11/cow-string-io-inst.cc: ... new file.
  3023. * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
  3024. (operator<<, operator>>, getline): Move explicit instantiations to ...
  3025. * src/c++11/cow-wstring-io-inst.cc: ... new file.
  3026. * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
  3027. (__throw_future_error, __throw_bad_function_call):
  3028. (__throw_regex_error): Move functions for C++11 exceptions to the
  3029. files that define the exception types.
  3030. * src/c++11/functional.cc (__throw_bad_function_call): Move here.
  3031. * src/c++11/future.cc (__throw_future_error): Likewise.
  3032. * src/c++11/ios.cc (__throw_ios_failure): Likewise.
  3033. * src/c++11/regex.cc (__throw_regex_error): Likewise.
  3034. * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
  3035. representation directly instead of calling __int_to_char.
  3036. * src/c++11/sso_string.cc (__sso_string): New file for definition
  3037. of __sso_string type.
  3038. * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
  3039. explicit instantiations of narrow string I/O functions.
  3040. * src/c++11/system_error.cc (__throw_system_error): Move here.
  3041. (__sso_string): Move to new file.
  3042. * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
  3043. explicit instantiations of wide string I/O functions.
  3044. * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
  3045. (operator>>, getline): Remove explicit instantiations from here.
  3046. 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
  3047. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
  3048. 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  3049. * configure.host: Separate Solaris/SPARC and x86 baselines.
  3050. * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
  3051. * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
  3052. * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
  3053. * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
  3054. ... here.
  3055. * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
  3056. * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
  3057. * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
  3058. * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
  3059. * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
  3060. * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
  3061. * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
  3062. ... here.
  3063. * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
  3064. * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
  3065. * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
  3066. * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
  3067. * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
  3068. * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
  3069. * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
  3070. * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
  3071. * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
  3072. 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
  3073. PR libstdc++/78346
  3074. * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
  3075. not its referent.
  3076. (_Iter_comp_to_iter): Likewise.
  3077. * testsuite/25_algorithms/search/78346.cc: New test.
  3078. PR libstdc++/79254
  3079. * config/abi/pre/gnu.ver: Remove recently added symbols.
  3080. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  3081. (basic_string::_M_copy_assign): Remove.
  3082. (basic_string::operator=(const basic_string&)): Don't dispatch to
  3083. _M_copy_assign. If source object is small just deallocate, otherwise
  3084. perform new allocation before making any changes.
  3085. * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
  3086. (basic_string::_M_copy_assign(const basic_string&, true_type)):
  3087. Remove.
  3088. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
  3089. Test cases where the allocators are equal or the string is small.
  3090. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
  3091. Likewise.
  3092. 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
  3093. Implement LWG 2825, LWG 2756 breaks class template argument
  3094. deduction for optional.
  3095. * include/std/optional: Add a deduction guide.
  3096. * testsuite/20_util/optional/cons/deduction_guide.cc: New.
  3097. 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
  3098. PR libstdc++/79254
  3099. * config/abi/pre/gnu.ver: Add new symbols.
  3100. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
  3101. (basic_string::_M_copy_assign): New overloaded functions to perform
  3102. copy assignment.
  3103. (basic_string::operator=(const basic_string&)): Dispatch to
  3104. _M_copy_assign.
  3105. * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
  3106. (basic_string::_M_copy_assign(const basic_string&, true_type)):
  3107. Define, performing rollback on exception.
  3108. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
  3109. Test exception-safety guarantee.
  3110. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
  3111. Likewise.
  3112. * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
  3113. std::swap visible.
  3114. 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
  3115. PR libstdc++/70607
  3116. * include/tr1/complex (conj): Remove using-declaration and restore
  3117. overloads, reverting previous change.
  3118. * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
  3119. mode.
  3120. * testsuite/23_containers/priority_queue/requirements/constructible.cc:
  3121. Mark as unsupported in C++98 mode.
  3122. * testsuite/23_containers/queue/requirements/constructible.cc:
  3123. Likewise.
  3124. * testsuite/23_containers/stack/requirements/constructible.cc:
  3125. Likewise.
  3126. * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
  3127. PR libstdc++/79243
  3128. * include/bits/c++config (literals::string_view_literals::__7): Add.
  3129. Only declare versioned namespaces for the relevant C++ dialects.
  3130. * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
  3131. Add versioning macros.
  3132. * include/experimental/bits/lfts_config.h:
  3133. (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
  3134. * include/experimental/string_view (fundamentals_v2::__detail):
  3135. Add versioning macros.
  3136. (fundamentals_v2::__detail::__identity): Remove.
  3137. (fundamentals_v2::__detail::__idt): Use common_type instead of
  3138. __detail::__identity.
  3139. * include/std/string_view (__detail::__identity, __detail::__idt):
  3140. Likewise.
  3141. (literals::string_view_literals): Fix nesting of versioning macros.
  3142. PR libstdc++/79190
  3143. * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
  3144. [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
  3145. && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
  3146. Retrieve original pointer value allocated by malloc.
  3147. * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
  3148. && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
  3149. && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
  3150. Define, adjusting pointer value allocated by malloc and storing for
  3151. retrieval by operator delete.
  3152. 2017-01-26 Jakub Jelinek <jakub@redhat.com>
  3153. * libsupc++/eh_atomics.h: Update copyright years.
  3154. * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
  3155. 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
  3156. PR libstdc++/61791
  3157. PR libstdc++/70607
  3158. * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
  3159. (proj(T), conj(T)): Change return types per DR 1522.
  3160. * include/tr1/complex (conj): Remove overloads and use std::conj.
  3161. * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
  3162. * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
  3163. * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
  3164. real(T) and imag(T). Allow testing for C++11 too.
  3165. 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
  3166. PR libstdc++/79206
  3167. * include/experimental/string_view (operator==): Check sizes first.
  3168. * include/std/string_view (operator==): Likewise.
  3169. 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
  3170. * testsuite/experimental/array/make_array.cc: Restore <functional>
  3171. inclusion.
  3172. 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
  3173. * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
  3174. 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
  3175. PR libstdc++/79195
  3176. * include/experimental/array (__make_array_elem): New class template
  3177. and partial specialization.
  3178. (__is_reference_wrapper): Move into __make_array_elem specialization.
  3179. (make_array): Use __make_array_elem to determine element type and move
  3180. static assertion into specialization. Qualify std::forward call.
  3181. (to_array): Add exception specifiation.
  3182. * testsuite/experimental/array/make_array.cc: Test argument types
  3183. without a common type.
  3184. * testsuite/experimental/array/neg.cc: Adjust expected error message.
  3185. 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
  3186. * doc/xml/manual/debug.xml: code.google.com uses https now.
  3187. 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
  3188. * doc/xml/manual/test.xml: Fix link into gccint online manual.
  3189. 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
  3190. Make poisoned hashes SFINAE away the call operator of the hash.
  3191. * include/bits/functional_hash.h
  3192. (__poison_hash::__enable_hash_call): New.
  3193. * include/std/optional (__optional_hash_call_base): New.
  3194. (hash<optional<_Tp>>): Derive from the new base,
  3195. move the hash function into that base.
  3196. * include/std/variant (__variant_hash_call_base_impl): New.
  3197. (__variant_hash_call_base): Likewise.
  3198. (hash<variant<_Types...>>): Derive from the new base,
  3199. move the hash function into that base.
  3200. * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
  3201. * testsuite/20_util/variant/hash.cc: Likewise.
  3202. 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
  3203. * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
  3204. * configure: Regenerate.
  3205. 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
  3206. PR libstdc++/69240
  3207. * include/bits/random.h (uniform_real_distribution::param_type)
  3208. (normal_distribution::param_type, lognormal_distribution::param_type)
  3209. (gamma_distribution::param_type, chi_squared_distribution::param_type)
  3210. (cauchy_distribution::param_type, fisher_f_distribution::param_type)
  3211. (student_t_distribution::param_type)
  3212. (bernoulli_distribution::param_type, binomial_distribution::param_type)
  3213. (geometric_distribution::param_type)
  3214. (negative_binomial_distribution::param_type)
  3215. (poisson_distribution::param_type)
  3216. (exponential_distribution::param_type)
  3217. (weibull_distribution::param_type)
  3218. (extreme_value_distribution::param_type)
  3219. (discrete_distribution::param_type)
  3220. (piecewise_constant_distribution::param_type)
  3221. (piecewise_linear_distribution::param_type): Define operator!=.
  3222. * include/bits/uniform_int_dist.h
  3223. (uniform_int_distribution::param_type): Likewise.
  3224. * include/ext/random (beta_distribution::param_type)
  3225. (rice_distribution::param_type, nakagami_distribution::param_type)
  3226. (pareto_distribution::param_type, k_distribution::param_type)
  3227. (arcsine_distribution::param_type, hoyt_distribution::param_type)
  3228. (triangular_distribution::param_type)
  3229. (von_mises_distribution::param_type)
  3230. (hypergeometric_distribution::param_type)
  3231. (logistic_distribution::param_type)
  3232. (uniform_on_sphere_distribution::param_type)
  3233. (uniform_inside_sphere_distribution::param_type): Likewise.
  3234. * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
  3235. Test construction with param_type.
  3236. * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
  3237. Likewise.
  3238. * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
  3239. Likewise.
  3240. * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
  3241. Likewise.
  3242. * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
  3243. Likewise.
  3244. * testsuite/26_numerics/random/extreme_value_distribution/cons/
  3245. parms.cc: Likewise.
  3246. * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
  3247. Likewise.
  3248. * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
  3249. Likewise.
  3250. * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
  3251. Likewise.
  3252. * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
  3253. Likewise.
  3254. * testsuite/26_numerics/random/negative_binomial_distribution/cons/
  3255. parms.cc: Likewise.
  3256. * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
  3257. Likewise.
  3258. * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
  3259. Likewise.
  3260. * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
  3261. Likewise.
  3262. * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
  3263. Likewise.
  3264. * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
  3265. Likewise.
  3266. * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
  3267. Likewise.
  3268. * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
  3269. * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
  3270. * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
  3271. * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
  3272. Likewise.
  3273. * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
  3274. * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
  3275. * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
  3276. * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
  3277. * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
  3278. * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
  3279. * testsuite/ext/random/triangular_distribution/cons/parms.cc:
  3280. Likewise.
  3281. * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
  3282. parms.cc: Likewise.
  3283. * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
  3284. PR libstdc++/72792
  3285. * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
  3286. (__allocator_traits_base::__size_type): Remove.
  3287. (allocator_traits::_Ptr): New class template to detect const and void
  3288. pointer types without instantiating pointer_traits::rebind
  3289. unnecessarily.
  3290. (allocator_traits::_Diff): Likewise for detecting difference_type.
  3291. (allocator_traits::_Size): New class template to detect size_type
  3292. without instantiating make_unsigned unnecessarily.
  3293. * include/bits/ptr_traits.h (pointer_traits::element_type): Use
  3294. __detected_or_t instead of __detected_or_t_.
  3295. * include/std/type_traits (__detected_or_t_): Remove.
  3296. * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
  3297. PR libstdc++/72792
  3298. PR libstdc++/72793
  3299. * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
  3300. Replace with class template using void_t.
  3301. (__alloc_rebind): Define in terms of
  3302. __allocator_traits_base::__rebind.
  3303. (allocator_traits): Remove unconditional static_assert for
  3304. rebind_alloc.
  3305. * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
  3306. (pointer_traits::__rebind): Replace with class template using void_t.
  3307. (pointer_traits::rebind): Define in terms of __rebind.
  3308. (pointer_traits): Remove unconditional static_assert for rebind.
  3309. * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
  3310. * testsuite/20_util/pointer_traits/rebind.cc: New test.
  3311. PR libstdc++/69321
  3312. * include/experimental/any (__any_caster): Avoid instantiating
  3313. manager function for types that can't be stored in any.
  3314. * include/std/any (__any_caster): Likewise.
  3315. * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
  3316. * testsuite/experimental/any/misc/any_cast.cc: Likewise.
  3317. PR libstdc++/64903
  3318. * include/bits/stl_algo.h (is_partitioned): Use increment instead of
  3319. std::advance.
  3320. 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
  3321. PR libstdc++/79156
  3322. * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
  3323. Fix return type.
  3324. (__enable_shared_from_this): Declare __shared_ptr as a friend.
  3325. * testsuite/ext/shared_ptr/1.cc: New test.
  3326. PR libstdc++/64903
  3327. * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
  3328. point.
  3329. * testsuite/25_algorithms/is_partitioned/2.cc: New test.
  3330. * doc/xml/manual/abi.xml: Fix typo.
  3331. * doc/html/manual/abi.html: Likewise.
  3332. PR libstdc++/67085
  3333. * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
  3334. converting constructors from _Iter_less_iter.
  3335. (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
  3336. _Iter_comp_iter.
  3337. (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
  3338. (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
  3339. * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
  3340. (__make_heap, __sort_heap): Change _Compare parameters to references.
  3341. (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
  3342. (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
  3343. functions as lvalues.
  3344. (is_heap): Call __is_heap_until directly to avoid copying __comp.
  3345. * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
  3346. count copies during construction with empty sequence.
  3347. PR libstdc++/67085
  3348. * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
  3349. (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
  3350. * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
  3351. number of copies.
  3352. * testsuite/25_algorithms/make_heap/movable.cc: New test.
  3353. PR libstdc++/67085
  3354. * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
  3355. (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
  3356. _GLIBCXX_MOVE when passing comparison function to other functions.
  3357. (is_heap_until, is_heap): Use std::move when passing comparison
  3358. function.
  3359. * testsuite/23_containers/priority_queue/67085.cc: New test.
  3360. PR libstdc++/78905
  3361. * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
  3362. macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
  3363. Document that the deprecated _GLIBCXX_VERSION macro was removed for
  3364. the 4.0.0 release.
  3365. * doc/html/*: Regenerate.
  3366. * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
  3367. * include/Makefile.in: Regenerate.
  3368. * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
  3369. * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
  3370. dg-error.
  3371. 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
  3372. PR libstdc++/69301
  3373. * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
  3374. aligned buffer instead of default-initialized variable.
  3375. * testsuite/29_atomics/atomic/69301.cc: New test.
  3376. * include/experimental/memory (observer_ptr::release): Use reserved
  3377. name.
  3378. * include/ext/pointer.h (_Pointer_adapter::operator++(int))
  3379. (_Pointer_adapter::operator--(int)): Likewise.
  3380. PR libstdc++/68925
  3381. * include/experimental/random (randint): Use temporary instead of
  3382. thread_local static.
  3383. 2017-01-17 Joshua Conner <joshconner@google.com>
  3384. * crossconfig.m4: Add fuchsia OS.
  3385. * configure: Regenerate.
  3386. 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
  3387. PR libstdc++/69699
  3388. * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
  3389. __GLIBCXX__ macro is not useful. Remove redundant date information
  3390. and link to the GCC release timeline.
  3391. (abi.versioning.active): Move partial sentence into the previous
  3392. paragraph.
  3393. * doc/html/*: Regenerate.
  3394. PR libstdc++/79114
  3395. * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
  3396. of remove_reference.
  3397. * testsuite/18_support/nested_exception/79114.cc: New test.
  3398. 2017-01-17 Jakub Jelinek <jakub@redhat.com>
  3399. PR other/79046
  3400. * configure.ac: Add GCC_BASE_VER.
  3401. * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
  3402. get version from BASE-VER file.
  3403. * po/Makefile.in: Regenerated.
  3404. * libsupc++/Makefile.in: Regenerated.
  3405. * testsuite/Makefile.in: Regenerated.
  3406. * src/Makefile.in: Regenerated.
  3407. * configure: Regenerated.
  3408. * Makefile.in: Regenerated.
  3409. * include/Makefile.in: Regenerated.
  3410. * doc/Makefile.in: Regenerated.
  3411. * python/Makefile.in: Regenerated.
  3412. * src/c++11/Makefile.in: Regenerated.
  3413. * src/c++98/Makefile.in: Regenerated.
  3414. * src/filesystem/Makefile.in: Regenerated.
  3415. 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
  3416. PR libstdc++/66145
  3417. * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
  3418. exceptions.
  3419. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
  3420. for test, so new ios::failure can be caught.
  3421. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
  3422. * testsuite/27_io/basic_istream/extractors_arithmetic/char/
  3423. exceptions_failbit.cc: Likewise.
  3424. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
  3425. exceptions_failbit.cc: Likewise.
  3426. * testsuite/27_io/basic_istream/extractors_other/char/
  3427. exceptions_null.cc: Likewise.
  3428. * testsuite/27_io/basic_istream/extractors_other/wchar_t/
  3429. exceptions_null.cc: Likewise.
  3430. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
  3431. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
  3432. * testsuite/27_io/basic_ostream/inserters_other/char/
  3433. exceptions_null.cc: Likewise.
  3434. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
  3435. exceptions_null.cc: Likewise.
  3436. * testsuite/27_io/ios_base/storage/2.cc: Likewise.
  3437. PR libstdc++/78702
  3438. * include/bits/locale_classes.h (locale::facet::__shim): Change from
  3439. private to protected.
  3440. * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
  3441. make locale::facet::__shim accessible.
  3442. 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
  3443. PR libstdc++/78389
  3444. * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
  3445. (merge(list&&, _StrictWeakOrdering)): Likewise.
  3446. * testsuite/23_containers/list/operations/78389.cc: Add
  3447. better test for the sizes.
  3448. 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
  3449. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
  3450. Skip test when -D_GLIBCXX_PROFILE mode is included in options.
  3451. * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
  3452. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
  3453. Likewise.
  3454. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
  3455. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
  3456. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
  3457. * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
  3458. * testsuite/23_containers/unordered_map/modifiers/extract.cc:
  3459. Likewise.
  3460. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
  3461. Likewise.
  3462. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
  3463. Likewise.
  3464. * testsuite/23_containers/unordered_set/modifiers/extract.cc:
  3465. Likewise.
  3466. * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
  3467. Likewise.
  3468. * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
  3469. * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
  3470. * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
  3471. * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
  3472. * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
  3473. * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
  3474. * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
  3475. * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
  3476. * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
  3477. * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
  3478. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
  3479. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
  3480. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
  3481. 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
  3482. PR libstdc++/65411
  3483. * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
  3484. retry fclose on EINTR.
  3485. * include/profile/base.h: Remove unused header that leads to header
  3486. cycle in C++17 mode.
  3487. PR libstdc++/79075
  3488. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
  3489. Make _If_sv private.
  3490. [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
  3491. basic_string_view arguments.
  3492. PR libstdc++/79075
  3493. * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
  3494. redundant option from cxxflags.
  3495. (check_effective_target_cxx11-abi): Define.
  3496. * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
  3497. effective target.
  3498. * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
  3499. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
  3500. Likewise.
  3501. * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
  3502. Likewise.
  3503. * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
  3504. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
  3505. Likewise.
  3506. * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
  3507. Likewise.
  3508. * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
  3509. * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
  3510. Likewise.
  3511. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
  3512. Likewise.
  3513. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
  3514. Likewise.
  3515. * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
  3516. Likewise.
  3517. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
  3518. Likewise.
  3519. * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
  3520. Likewise.
  3521. * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
  3522. Likewise.
  3523. * testsuite/23_containers/list/61347.cc: Likewise.
  3524. * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
  3525. * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
  3526. 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
  3527. PR libstdc++/78389
  3528. * include/bits/list.tcc (merge(list&&)):
  3529. Adjust list sizes if the comparator throws.
  3530. (merge(list&&, _StrictWeakOrdering)): Likewise.
  3531. (sort()): Splice elements back from the scratch buffers
  3532. if the comparator throws.
  3533. (sort(_StrictWeakOrdering)): Likewise.
  3534. * testsuite/23_containers/list/operations/78389.cc: New.
  3535. 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
  3536. * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
  3537. XFAIL for C++17 until node reinsertion supports fancy pointers.
  3538. PR libstdc++/78361
  3539. * testsuite/20_util/add_pointer/value.cc: Test forming function
  3540. pointers.
  3541. 2017-01-13 Michael Brune <lucdanton@free.fr>
  3542. PR libstdc++/78361
  3543. * include/std/type_traits (__is_referenceable): Handle noexcept
  3544. function types.
  3545. 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
  3546. PR libstdc++/77528
  3547. * include/bits/stl_queue.h (queue, priority_queue): Remove default
  3548. member-initializers and define default constructors as templates with
  3549. constraints.
  3550. * include/bits/stl_stack.h (stack): Likewise.
  3551. * testsuite/23_containers/priority_queue/requirements/constructible.cc:
  3552. New.
  3553. * testsuite/23_containers/priority_queue/requirements/
  3554. explicit_instantiation/1.cc: Test more instantiations.
  3555. * testsuite/23_containers/priority_queue/requirements/
  3556. explicit_instantiation/1_c++98.cc: Likewise.
  3557. * testsuite/23_containers/queue/requirements/constructible.cc: New.
  3558. * testsuite/23_containers/stack/requirements/constructible.cc: New.
  3559. PR libstdc++/66284
  3560. * doc/xml/manual/intro.xml: Document LWG 2781 change.
  3561. * doc/html/*: Regenerate.
  3562. * include/std/functional (_Function_base::_Ref_manager): Remove.
  3563. (_Function_handler): Remove partial specializations for
  3564. reference_wrapper.
  3565. (function::target): Remove special case for const qualification.
  3566. * testsuite/20_util/function/6.cc: Adjust tests for target type.
  3567. * testsuite/20_util/function/7.cc: Likewise.
  3568. * testsuite/20_util/function/8.cc: Likewise.
  3569. 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
  3570. PR libstdc++/78134
  3571. * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
  3572. (map::equal_range): Fix return type of heterogeneous overloads.
  3573. * include/bits/stl_multimap.h (multimap::lower_bound)
  3574. (multimap::upper_bound, multimap::equal_range): Likewise.
  3575. * include/bits/stl_multiset.h (multiset::lower_bound)
  3576. (multiset::upper_bound, multiset::equal_range): Likewise.
  3577. * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
  3578. (set::equal_range): Likewise.
  3579. * testsuite/23_containers/map/operations/2.cc
  3580. * testsuite/23_containers/multimap/operations/2.cc
  3581. * testsuite/23_containers/multiset/operations/2.cc
  3582. * testsuite/23_containers/set/operations/2.cc
  3583. PR libstdc++/78273
  3584. * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
  3585. the heterogeneous comparison can only find one match.
  3586. * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
  3587. * testsuite/23_containers/map/operations/2.cc: Test count works with
  3588. comparison function that just partitions rather than sorting.
  3589. * testsuite/23_containers/set/operations/2.cc: Likewise.
  3590. 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
  3591. Reduce the size of variant, it doesn't need an index of
  3592. type size_t internally.
  3593. * include/std/variant (parse_numbers.h): New include.
  3594. (__select_index): New.
  3595. (_Variant_storage<false, _Types...>::_M_reset_impl): Use
  3596. _index_type for comparison with variant_npos.
  3597. (_Variant_storage<false, _Types...>::__index_type): New.
  3598. (_Variant_storage<false, _Types...>::_M_index): Change the
  3599. type from size_t to __index_type.
  3600. (_Variant_storage<true, _Types...>::__index_type): New.
  3601. (_Variant_storage<true, _Types...>::_M_index): Change the
  3602. type from size_t to __index_type.
  3603. (_Variant_base::_M_valid): Use _Storage::__index_type
  3604. for comparison with variant_npos.
  3605. (variant::index): Use _Base::_Storage::__index_type
  3606. for comparison with variant_npos.
  3607. * testsuite/20_util/variant/index_type.cc: New.
  3608. 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
  3609. * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
  3610. effective target selector to prevent running in C++17 mode.
  3611. PR libstdc++/77528
  3612. * include/bits/stl_queue.h (queue::c): Add default member initializer.
  3613. (queue::queue()): Add constructor and define as defaulted.
  3614. (queue::queue(_Sequence&&)): Remove default argument.
  3615. (priority_queue::c, priority_queue::comp): Add default member
  3616. initializers.
  3617. (priority_queue::priority_queue()): Add constructor and define as
  3618. defaulted.
  3619. (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
  3620. Remove default argument for first parameter.
  3621. * include/bits/stl_stack.h (stack::c): Add default member initializer.
  3622. (stack::stack()): Add constructor and define as defaulted.
  3623. (stack::stack(const _Sequence&)): Remove default argument.
  3624. * testsuite/23_containers/priority_queue/requirements/
  3625. explicit_instantiation/1.cc: Test explicit instantiation with
  3626. non-DefaultConstructible sequence.
  3627. * testsuite/23_containers/priority_queue/77528.cc: New test.
  3628. * testsuite/23_containers/priority_queue/requirements/
  3629. explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
  3630. * testsuite/23_containers/queue/77528.cc: New test.
  3631. * testsuite/23_containers/queue/requirements/explicit_instantiation/
  3632. 1.cc: Test explicit instantiation with non-DefaultConstructible
  3633. sequence.
  3634. * testsuite/23_containers/queue/requirements/explicit_instantiation/
  3635. 1_c++0x.cc: Replace with 1_c++98.cc.
  3636. * testsuite/23_containers/stack/77528.cc: New test.
  3637. * testsuite/23_containers/stack/requirements/explicit_instantiation/
  3638. 1.cc: Test explicit instantiation with non-DefaultConstructible
  3639. sequence.
  3640. * testsuite/23_containers/stack/requirements/explicit_instantiation/
  3641. 1_c++0x.cc: Replace with 1_c++98.cc.
  3642. 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
  3643. * include/bits/locale_facets_nonio.tcc
  3644. (time_get::_M_extract_via_format): Avoid compilation errors with
  3645. non-standard struct tm.
  3646. 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
  3647. Jonathan Wakely <jwakely@redhat.com>
  3648. * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
  3649. (is_specialization, strip_versioned_namespace): New helpers functions
  3650. to work with symbols in the versioned namespace.
  3651. (Printer.add_version): Add second name using versioned namespace.
  3652. (add_one_template_type_printer, add_one_type_printer): Add second
  3653. type printers using versioned namespace.
  3654. (register_type_printers): Add template type printer for basic_string.
  3655. (build_libstdcxx_dictionary): Remove dead code.
  3656. * python/libstdcxx/v6/xmethods.py: Make all matchers look for
  3657. versioned namespace.
  3658. * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
  3659. results.
  3660. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
  3661. 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
  3662. PR libstdc++/79017
  3663. * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
  3664. functions separately on darwin and if they're missing define
  3665. _GLIBCXX_NO_C99_ROUNDING_FUNCS.
  3666. * config.h.in: Regenerate.
  3667. * configure: Regenerate.
  3668. * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
  3669. (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
  3670. * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
  3671. to detect correct thread_local destructors.
  3672. * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
  3673. Define.
  3674. 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
  3675. Aditya Kumar <hiraditya@msn.com>
  3676. PR libstdc++/66414
  3677. * include/bits/basic_string.tcc
  3678. (basic_string::find(const CharT*, size_type, size_type)): Optimize.
  3679. 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
  3680. * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
  3681. * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
  3682. * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
  3683. Include <cassert> header.
  3684. PR libstdc++/78968
  3685. * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
  3686. * configure: Regenerate.
  3687. 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
  3688. Jonathan Wakely <jwakely@redhat.com>
  3689. * include/std/variant (variant, swap): Replace __and_ usage with fold
  3690. expressions.
  3691. 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  3692. PR go/78978
  3693. * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
  3694. * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
  3695. GLIBCXX_CHECK_ASSEMBLER_HWCAP.
  3696. * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
  3697. HWCAP_FLAGS.
  3698. * aclocal.m4: Regenerate.
  3699. * configure: Regenerate.
  3700. * Makefile.in, doc/Makefile.in, include/Makefile.in,
  3701. libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
  3702. src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
  3703. src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
  3704. 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
  3705. * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
  3706. PR libstdc++/78991
  3707. * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
  3708. (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
  3709. (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
  3710. move function objects.
  3711. (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
  3712. (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
  3713. * testsuite/25_algorithms/sort/78991.cc: New test.
  3714. 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
  3715. * include/bits/std_function.h (function::_Signature_type): Remove.
  3716. (function::function(_Functor)): Adjust.
  3717. 2017-01-05 Tim Shen <timshen@google.com>
  3718. PR libstdc++/78996
  3719. * include/std/variant (__gen_vtable_impl): rename __unused to
  3720. __dimensions to avoid naming conflict.
  3721. 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
  3722. PR libstdc++/78968
  3723. * config.h.in: Regenerate.
  3724. * configure: Likewise.
  3725. * configure.ac: Check for __cxa_thread_atexit.
  3726. * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
  3727. Don't define __cxa_thread_atexit if libc provides it.
  3728. 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
  3729. Implement 2801, Default-constructibility of unique_ptr.
  3730. * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
  3731. (unique_ptr::_DeleterConstraint): Likewise.
  3732. (unique_ptr()): Constrain.
  3733. (unique_ptr(pointer)): Likewise.
  3734. (unique_ptr(nullptr_t)): Likewise.
  3735. (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
  3736. (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
  3737. (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
  3738. (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
  3739. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
  3740. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
  3741. * testsuite/20_util/unique_ptr/cons/default.cc: New.
  3742. * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
  3743. 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
  3744. Jonathan Wakely <jwakely@redhat.com>
  3745. PR libstdc++/64735
  3746. * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
  3747. * config.h.in: Regenerate.
  3748. * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
  3749. (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
  3750. exports for exception_ptr, nested_exception, and future conditional.
  3751. [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
  3752. exports for exception_ptr, nested_exception, and future conditional.
  3753. * configure: Regenerate.
  3754. * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
  3755. * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
  3756. * libsupc++/eh_atomics.h: New file for internal use only.
  3757. (__eh_atomic_inc, __eh_atomic_dec): New.
  3758. * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
  3759. (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
  3760. (rethrow_exception): Use eh_atomics.h reference counting helpers.
  3761. * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
  3762. * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
  3763. * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
  3764. * libsupc++/exception_ptr.h: Likewise.
  3765. * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
  3766. * libsupc++/nested_exception.cc: Remove check for
  3767. ATOMIC_INT_LOCK_FREE.
  3768. * libsupc++/nested_exception.h: Likewise.
  3769. * src/c++11/future.cc: Likewise.
  3770. * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
  3771. * testsuite/18_support/nested_exception/*: Likewise.
  3772. * testsuite/30_threads/async/*: Likewise.
  3773. * testsuite/30_threads/future/*: Likewise.
  3774. * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
  3775. * testsuite/30_threads/packaged_task/*: Likewise.
  3776. * testsuite/30_threads/promise/*: Likewise.
  3777. * testsuite/30_threads/shared_future/*: Likewise.
  3778. 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
  3779. * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
  3780. defaults to https; adjust reference.
  3781. 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
  3782. PR libstdc++/78956
  3783. * include/std/thread (thread(const thread&&)): Add deleted
  3784. constructor.
  3785. * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
  3786. * doc/xml/manual/spine.xml: Update copyright years.
  3787. * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
  3788. * doc/xml/manual/test.xml: Likewise.
  3789. * doc/html/*: Regenerate.
  3790. 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
  3791. * doc/xml/faq.xml: Update address of C++ ABI link.
  3792. * doc/xml/manual/abi.xml: Ditto.
  3793. 2017-01-01 Jakub Jelinek <jakub@redhat.com>
  3794. Update copyright years.
  3795. Copyright (C) 2017 Free Software Foundation, Inc.
  3796. Copying and distribution of this file, with or without modification,
  3797. are permitted in any medium without royalty provided the copyright
  3798. notice and this notice are preserved.