ChangeLog 64 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718
  1. 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
  2. PR libstdc++/105153
  3. * include/std/expected
  4. (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
  5. * testsuite/20_util/expected/cons.cc: Check constructor.
  6. 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
  7. PR libstdc++/105154
  8. * include/std/expected (expected<void, E>::swap): Set
  9. _M_has_value to false for objects that previously had a value.
  10. * testsuite/20_util/expected/swap.cc: Fix test to check void
  11. specialization.
  12. 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
  13. PR libstdc++/105146
  14. * include/std/expected (bad_expected_access): Move constructor
  15. parameter.
  16. * testsuite/20_util/expected/bad.cc: New test.
  17. 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
  18. * testsuite/20_util/expected/requirements.cc: Correct minimal-size
  19. test.
  20. 2022-04-02 Jakub Jelinek <jakub@redhat.com>
  21. PR libstdc++/105128
  22. * include/std/source_location (std::source_location::__impl): Move
  23. definition before using __builtin_ret_type.
  24. 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
  25. * include/std/utility (unreachable): Define for C++23.
  26. * include/std/version (__cpp_lib_unreachable): Define.
  27. * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
  28. arguments. Handle only the function being given.
  29. * testsuite/20_util/unreachable/1.cc: New test.
  30. * testsuite/20_util/unreachable/version.cc: New test.
  31. 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
  32. * include/experimental/bits/fs_fwd.h (copy_file): Remove
  33. incorrect noexcept from declaration.
  34. * include/experimental/bits/fs_path.h (path::begin, path::end):
  35. Add noexcept to declarations, to match definitions.
  36. 2022-04-01 Timm Bäder <tbaeder@redhat.com>
  37. * include/bits/fs_ops.h: Fix filename in Doxygen comment.
  38. * include/experimental/bits/fs_ops.h: Likewise.
  39. 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
  40. * libsupc++/new_opa.cc (aligned_alloc): Add comment.
  41. 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
  42. * testsuite/18_support/exception/38732.cc: Disable for C++23.
  43. * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
  44. * testsuite/18_support/unexpected_handler.cc: Likewise.
  45. 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
  46. * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
  47. static data members for _Fp_fmt enumerators.
  48. 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
  49. * include/std/version (__cpp_lib_variant): Fix conditions to
  50. match <variant>.
  51. (__cpp_lib_expected): Fix condition to match <expected>.
  52. 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
  53. * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
  54. * testsuite/20_util/optional/monadic/transform.cc: Likewise.
  55. * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
  56. * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
  57. * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
  58. * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
  59. * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
  60. * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
  61. 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
  62. * doc/doxygen/user.cfg.in: Add new header.
  63. * include/Makefile.am: Likewise.
  64. * include/Makefile.in: Regenerate.
  65. * include/precompiled/stdc++.h: Add new header.
  66. * include/std/version (__cpp_lib_expected): Define.
  67. * libsupc++/exception [__cplusplus > 202002] (unexpected)
  68. (unexpected_handler, set_unexpected): Do not declare for C++23.
  69. * include/std/expected: New file.
  70. * testsuite/20_util/expected/assign.cc: New test.
  71. * testsuite/20_util/expected/cons.cc: New test.
  72. * testsuite/20_util/expected/illformed_neg.cc: New test.
  73. * testsuite/20_util/expected/observers.cc: New test.
  74. * testsuite/20_util/expected/requirements.cc: New test.
  75. * testsuite/20_util/expected/swap.cc: New test.
  76. * testsuite/20_util/expected/synopsis.cc: New test.
  77. * testsuite/20_util/expected/unexpected.cc: New test.
  78. * testsuite/20_util/expected/version.cc: New test.
  79. 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
  80. * include/std/bit (bit_cast, byteswap, endian): Add doxygen
  81. comments.
  82. 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
  83. PR libstdc++/105027
  84. * include/std/bit (bit_cast): Add constraints.
  85. * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
  86. 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
  87. * include/std/version [!_GLIBCXX_HOSTED]
  88. (__cpp_lib_hardware_interference_size): Define for freestanding.
  89. (__cpp_lib_bit_cast): Likewise.
  90. (__cpp_lib_is_layout_compatible): Likewise.
  91. (__cpp_lib_is_pointer_interconvertible): Likewise.
  92. (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
  93. freestanding.
  94. (__cpp_lib_invoke_r): Likewise.
  95. (__cpp_lib_ios_noreplace): Likewise.
  96. (__cpp_lib_monadic_optional): Likewise.
  97. (__cpp_lib_move_only_function): Likewise.
  98. (__cpp_lib_spanstream): Likewise.
  99. (__cpp_lib_stacktrace): Likewise.
  100. (__cpp_lib_string_contains): Likewise.
  101. (__cpp_lib_string_resize_and_overwrite): Likewise.
  102. (__cpp_lib_to_underlying): Likewise.
  103. 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
  104. PR libstdc++/105021
  105. * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
  106. <bits/atomic_wait.h> for freestanding.
  107. 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
  108. * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
  109. Conditionalize call to fesetround.
  110. 2022-03-21 Jakub Jelinek <jakub@redhat.com>
  111. PR libstdc++/104990
  112. * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
  113. isn't overloaded if __clang__ is defined.
  114. 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
  115. PR libstdc++/104242
  116. * include/std/any (any(T&&)): Revert change to constraints.
  117. * testsuite/20_util/any/cons/104242.cc: New test.
  118. 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
  119. PR libstdc++/92546
  120. * include/pstl/glue_algorithm_defs.h: Replace <functional> with
  121. <bits/stl_pair.h>.
  122. * include/pstl/utils.h: Replace <iterator> with <type_traits>.
  123. (__pstl::__internal::__except_handler): Use std::__terminate
  124. instead of std::terminate.
  125. * src/c++17/fs_path.cc: Include <array>.
  126. * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
  127. <functional>.
  128. * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
  129. * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
  130. * testsuite/25_algorithms/equal/constrained.cc: Likewise.
  131. * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
  132. * testsuite/25_algorithms/includes/constrained.cc: Likewise.
  133. * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
  134. * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
  135. * testsuite/25_algorithms/is_permutation/constrained.cc: Include
  136. <iterator>.
  137. * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
  138. <functional>.
  139. * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
  140. Likewise.
  141. * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
  142. Likewise.
  143. * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
  144. Likewise.
  145. * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
  146. Include <array>.
  147. * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
  148. <functional>.
  149. * testsuite/25_algorithms/max/constrained.cc: Likewise.
  150. * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
  151. * testsuite/25_algorithms/min/constrained.cc: Likewise.
  152. * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
  153. * testsuite/25_algorithms/minmax_element/constrained.cc:
  154. Likewise.
  155. * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
  156. * testsuite/25_algorithms/move/93872.cc: Likewise.
  157. * testsuite/25_algorithms/move_backward/93872.cc: Include
  158. <iterator>.
  159. * testsuite/25_algorithms/nth_element/constexpr.cc: Include
  160. <functional>.
  161. * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
  162. * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
  163. Likewise.
  164. * testsuite/25_algorithms/search/constexpr.cc: Likewise.
  165. * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
  166. * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
  167. * testsuite/25_algorithms/set_difference/constrained.cc:
  168. Likewise.
  169. * testsuite/25_algorithms/set_intersection/constexpr.cc:
  170. Likewise.
  171. * testsuite/25_algorithms/set_intersection/constrained.cc:
  172. Likewise.
  173. * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
  174. Likewise.
  175. * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
  176. * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
  177. * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
  178. * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
  179. * testsuite/25_algorithms/transform/constrained.cc: Likewise.
  180. * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
  181. * testsuite/25_algorithms/unique/constrained.cc: Likewise.
  182. * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
  183. * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
  184. * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
  185. * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
  186. * testsuite/std/ranges/adaptors/split.cc: Likewise.
  187. 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
  188. PR libstdc++/92546
  189. * include/bits/fs_path.h (path::make_preferred): Use
  190. handwritten loop instead of std::replace.
  191. 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
  192. PR middle-end/104966
  193. * include/bits/locale_facets_nonio.tcc
  194. (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
  195. make all string copies before any stores to *this.
  196. 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
  197. * testsuite/util/testsuite_character.h: Fix comment.
  198. 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
  199. PR libstdc++/103407
  200. * config/abi/pre/gnu.ver: Make version for std::from_chars
  201. depend on HAVE_USELOCALE macro.
  202. * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
  203. std::from_chars for floating-point types as undesignated if
  204. not found in the baseline symbols file.
  205. 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
  206. * include/std/charconv (__cpp_lib_to_chars): Only define when
  207. both from_chars and to_chars are supported for floating-point
  208. types.
  209. (from_chars, to_chars): Adjust preprocessor conditions guarding
  210. declarations.
  211. * include/std/version (__cpp_lib_to_chars): Adjust condition to
  212. match <charconv> definition.
  213. * src/c++17/floating_from_chars.cc (from_chars_strtod): New
  214. function template.
  215. (from_chars): Simplify preprocessor checks and use
  216. from_chars_strtod when appropriate.
  217. 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
  218. PR libstdc++/104875
  219. * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
  220. hold octets that will be left-shifted.
  221. 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
  222. PR libstdc++/104870
  223. * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
  224. before using fast_float.
  225. 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
  226. PR libstdc++/104866
  227. * include/bits/this_thread_sleep.h: Fix order of #endif and
  228. closing brace of namespace.
  229. 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
  230. * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
  231. Handle NaN.
  232. 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
  233. * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
  234. <=> comparison.
  235. 2022-03-09 Patrick Palka <ppalka@redhat.com>
  236. PR libstdc++/104859
  237. * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
  238. Be explicit when narrowing the shifted effective_mantissa,
  239. since it may have an integer-class type.
  240. 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
  241. * include/bits/uses_allocator_args.h: Remove incorrect copyright
  242. notice.
  243. 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
  244. PR libstdc++/104807
  245. * include/bits/c++config (__terminate, __glibcxx_assert_fail):
  246. Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
  247. (__is_constant_evaluated): Add visibility pragma.
  248. 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
  249. * config/locale/vxworks/ctype_members.cc: Remove <iostream>
  250. include.
  251. 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
  252. * include/bits/c++config (__glibcxx_assert_fail): Add visibility
  253. attribute.
  254. (__terminate): Likewise.
  255. 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
  256. * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
  257. inside #if condition.
  258. 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
  259. PR libstdc++/104748
  260. * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
  261. constexpr test.
  262. 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
  263. * testsuite/17_intro/names.cc (func): Undef on AIX.
  264. 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
  265. PR libstdc++/96526
  266. * libsupc++/compare (strong_order): Add missing support for
  267. floating-point types.
  268. * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
  269. New test.
  270. 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
  271. PR middle-end/103984
  272. * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
  273. default member initializer.
  274. 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
  275. PR libstdc++/104602
  276. * include/std/source_location (source_location::current): Use
  277. deduced type of __builtin_source_location().
  278. 2022-02-22 Patrick Palka <ppalka@redhat.com>
  279. * include/bits/ranges_base.h (__detail::__is_initializer_list):
  280. Define.
  281. (viewable_range): Adjust as per P2415R2.
  282. * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
  283. * include/std/ranges (owning_view): Define as per P2415R2.
  284. (enable_borrowed_range<owning_view>): Likewise.
  285. (views::__detail::__can_subrange): Replace with ...
  286. (views::__detail::__can_owning_view): ... this.
  287. (views::_All::_S_noexcept): Sync with operator().
  288. (views::_All::operator()): Use owning_view instead of subrange
  289. as per P2415R2.
  290. * include/std/version (__cpp_lib_ranges): Adjust value.
  291. * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
  292. views::all uses owning_view instead of subrange.
  293. (test08): New test.
  294. * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
  295. now that rvalue non-view non-borrowed ranges are viewable.
  296. * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
  297. 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
  298. PR libstdc++/104559
  299. * doc/xml/manual/evolution.xml: Document deprecation.
  300. * doc/html/manual/api.html: Regenerate.
  301. * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
  302. Remove default argument.
  303. (insert(const_iterator)): New overload with deprecated attribute.
  304. * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
  305. New test.
  306. 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
  307. * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
  308. code that call cat->name() on std::error_category objects.
  309. Identify known categories by symbol name and use a hardcoded
  310. name. Print error code values as enumerators where appopriate.
  311. * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
  312. name of custom category. Check io_errc and future_errc errors.
  313. 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
  314. PR libstdc++/104542
  315. * include/bits/uses_allocator_args.h (make_obj_using_allocator)
  316. (uninitialized_construct_using_allocator): Add constexpr.
  317. * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
  318. * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
  319. 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
  320. PR libstdc++/100912
  321. * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
  322. namespace for IEEE128 long double mode.
  323. * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
  324. version and export __gnu_cxx_ieee128::__convert_from_v.
  325. * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
  326. Make __ibm128 overload use snprintf directly
  327. * testsuite/util/testsuite_abi.cc: Add new symbol version.
  328. Remove stable IEEE128/LDBL versions.
  329. 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
  330. PR libstdc++/103891
  331. * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
  332. Remove.
  333. * include/std/variant: Check feature test macros instead.
  334. * include/std/version: Likewise.
  335. 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
  336. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
  337. Fix typo.
  338. 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
  339. * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
  340. LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
  341. 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
  342. * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
  343. selector.
  344. 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
  345. * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
  346. Ignore -Walloc-larger-than warning.
  347. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
  348. Likewise.
  349. * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
  350. to avoid linker error for __atomic_is_lock_free.
  351. 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
  352. * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
  353. __waiter_base::_S_do_spin_v): Change memory order from relaxed
  354. to acquire.
  355. 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
  356. * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
  357. using-declaration.
  358. (atomic_fetch_xor_explicit): Likewise.
  359. * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
  360. arithmetic and logical operations for atomic_int.
  361. 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
  362. * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
  363. when <dirent.h> is not available.
  364. (_GLIBCXX_HAVE_UNLINKAT): Likewise.
  365. 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
  366. PR libstdc++/104442
  367. * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
  368. loop inside do loop so that threads failing the wait, reload
  369. _M_ver.
  370. 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
  371. * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
  372. parameter to _Dir_base&&.
  373. * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
  374. * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
  375. parameter to _Dir_base&&.
  376. 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
  377. * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
  378. checking for CAS on correct word size.
  379. 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
  380. * testsuite/experimental/filesystem/operations/create_directories.cc:
  381. Adjust expected results for Windows.
  382. 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
  383. PR libstdc++/104161
  384. * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
  385. [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
  386. instead of checking for errno values indicating a directory.
  387. * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
  388. logic to non-throwing overload.
  389. (fs::remove_all(const path&, error_code&)): Add comments.
  390. * src/filesystem/ops-common.h: Likewise.
  391. 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
  392. * src/filesystem/dir-common.h (_Dir_base::openat): Change return
  393. type to use portable posix::DIR alias.
  394. 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
  395. * include/c_compatibility/stdatomic.h [__clang__]: Use
  396. #include_next <stdatomic.h>.
  397. 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
  398. * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
  399. noexcept.
  400. (fs::create_directories): Likewise.
  401. (fs::remove_all): Likewise.
  402. * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
  403. (fs::create_directories): Likewise.
  404. (fs::remove_all): Likewise.
  405. 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
  406. PR libstdc++/104161
  407. * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
  408. and unlinkat.
  409. * config.h.in: Regenerate.
  410. * configure: Regenerate.
  411. * include/bits/fs_dir.h (recursive_directory_iterator): Declare
  412. remove_all overloads as friends.
  413. (recursive_directory_iterator::__erase): Declare new member
  414. function.
  415. * include/bits/fs_fwd.h (remove, remove_all): Declare.
  416. * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
  417. constructor. Pass file descriptor argument to base constructor.
  418. (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
  419. (_Dir::unlink, _Dir::rmdir): Define new member functions.
  420. (directory_iterator): Pass filename_only argument to _Dir
  421. constructor.
  422. (recursive_directory_iterator::_Dir_stack): Adjust constructor
  423. parameters to take a _Dir rvalue instead of creating one.
  424. (_Dir_stack::orig): Add data member for storing original path.
  425. (_Dir_stack::report_error): Define new member function.
  426. (__directory_iterator_nofollow): Move here from dir-common.h and
  427. fix value to be a power of two.
  428. (__directory_iterator_filename_only): Define new constant.
  429. (recursive_directory_iterator): Construct _Dir object and move
  430. into _M_dirs stack. Pass skip_permission_denied argument to first
  431. advance call.
  432. (recursive_directory_iterator::increment): Use _Dir::open_subdir.
  433. (recursive_directory_iterator::__erase): Define new member
  434. function.
  435. * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
  436. (fs::remove_all): Use new recursive_directory_iterator::__erase
  437. member function.
  438. * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
  439. constructor and use openat to implement nofollow semantics.
  440. (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
  441. Define new member functions.
  442. (__directory_iterator_nofollow): Move to fs_dir.cc.
  443. * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
  444. base constructor.
  445. (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
  446. functions.
  447. (recursive_directory_iterator::_Dir_stack): Adjust constructor
  448. parameters to take a _Dir rvalue instead of creating one.
  449. (recursive_directory_iterator): Check for new nofollow option.
  450. Construct _Dir object and move into _M_dirs stack. Pass
  451. skip_permission_denied argument to first advance call.
  452. (recursive_directory_iterator::increment): Use _Dir::open_subdir.
  453. * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
  454. 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
  455. * include/bits/allocator.h: Qualify std::allocator_traits in
  456. deprecated warnings.
  457. * libsupc++/exception (uncaught_exception): Add suggestion to
  458. deprecated warning.
  459. 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
  460. * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
  461. Add [[maybe_unused]] attribute.
  462. * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
  463. Likewise.
  464. 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
  465. * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
  466. custom comparison function for multiset.
  467. * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
  468. comparison function for set.
  469. 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
  470. * include/bits/boost_concept_check.h (_OutputIteratorConcept):
  471. Change member function to data member of function pointer type.
  472. 2022-02-02 Martin Sebor <msebor@redhat.com>
  473. PR libstdc++/101831
  474. * include/std/array (begin): Declare const member function attribute
  475. const.
  476. (end, rbegin, rend, size, max_size, empty, data): Same.
  477. * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
  478. * testsuite/23_containers/array/capacity/max_size.cc: Same.
  479. * testsuite/23_containers/array/capacity/size.cc: Same.
  480. * testsuite/23_containers/array/iterators/begin_end.cc: New test.
  481. 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
  482. * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
  483. autoconf macro to check whether d_type is present.
  484. * testsuite/experimental/filesystem/iterators/error_reporting.cc:
  485. Likewise.
  486. 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
  487. * testsuite/27_io/filesystem/iterators/97731.cc: New test.
  488. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
  489. Check follow_directory_symlink option.
  490. * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
  491. Likewise.
  492. 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
  493. * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
  494. Reset state to past-the-end iterator on error.
  495. (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
  496. (fs::recursive_directory_iterator::pop()): Check _M_dirs before
  497. it might get reset.
  498. * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
  499. for the TS implementation.
  500. * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
  501. * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
  502. 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
  503. * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
  504. 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
  505. PR libstdc++/104301
  506. * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
  507. for stdio_pure and stdio_posix options.
  508. * configure: Regenerate.
  509. 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
  510. * include/bits/atomic_wait.h: Change memory order from
  511. Acquire/Release with relaxed loads to SeqCst+Release for
  512. accesses to the waiter's count.
  513. 2022-01-31 Martin Liska <mliska@suse.cz>
  514. * acinclude.m4: Detect *_ld_is_mold and use it.
  515. * configure: Regenerate.
  516. 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
  517. * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
  518. simulator targets.
  519. * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
  520. 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
  521. PR libstdc++/100516
  522. * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
  523. Add __builtin_unreachable to loop.
  524. * testsuite/23_containers/deque/100516.cc: New test.
  525. 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
  526. * include/bits/ranges_base.h (ranges::advance): Avoid signed
  527. overflow. Do nothing if already equal to desired result.
  528. * testsuite/24_iterators/range_operations/advance_overflow.cc:
  529. New test.
  530. 2022-01-27 Martin Liska <mliska@suse.cz>
  531. PR libstdc++/104259
  532. * acinclude.m4: Fix typo.
  533. * configure: Regenerate.
  534. 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
  535. PR libstdc++/104019
  536. * include/bits/istream.tcc (basic_istream::sentry): Add braces
  537. around try-block.
  538. * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
  539. Add pragmas to disable bogus warnings from PR 61596.
  540. 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
  541. PR libstdc++/104217
  542. * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
  543. * src/filesystem/dir.cc (_GNU_SOURCE): Define.
  544. * src/filesystem/ops.cc (_GNU_SOURCE): Define.
  545. 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
  546. PR libstdc++/104161
  547. * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
  548. fdopendir.
  549. * config.h.in: Regenerate.
  550. * configure: Regenerate.
  551. * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
  552. and pass it to base class constructor.
  553. (directory_iterator): Pass nofollow flag to _Dir constructor.
  554. (fs::recursive_directory_iterator::increment): Likewise.
  555. * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
  556. directory_iterator constructor. Move error check outside loop.
  557. * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
  558. constructor and when it's set use ::open with O_NOFOLLOW and
  559. O_DIRECTORY.
  560. * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
  561. and pass it to base class constructor.
  562. (directory_iterator): Pass nofollow flag to _Dir constructor.
  563. (fs::recursive_directory_iterator::increment): Likewise.
  564. * src/filesystem/ops.cc (remove_all): Use nofollow option for
  565. directory_iterator constructor. Move error check outside loop.
  566. 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
  567. PR libstdc++/104032
  568. * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
  569. mem-initializer for _M_buf.
  570. (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
  571. member access.
  572. * testsuite/27_io/spanstream/2.cc: New test.
  573. 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
  574. * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
  575. Define macro for case where std::from_chars is implemented in
  576. terms of strtod, strtof or strtold.
  577. (buffer_resource, valid_fmt, find_end_of_float, pattern)
  578. (from_chars_impl, make_result, reserve_string): Do not define
  579. unless USE_STRTOD_FOR_FROM_CHARS is defined.
  580. (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
  581. USE_STRTOD_FOR_FROM_CHARS is defined, instead of
  582. _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
  583. is binary64.
  584. 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
  585. PR libstdc++/104174
  586. * include/bits/hashtable_policy.h (_Map_base): Add partial
  587. specialization for maps with const key types.
  588. * testsuite/23_containers/unordered_map/104174.cc: New test.
  589. 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
  590. PR libstdc++/104019
  591. * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
  592. Set members to zero without type punning.
  593. 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
  594. * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
  595. 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
  596. PR libstdc++/87193
  597. PR libstdc++/104019
  598. * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
  599. Define as type long.
  600. * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
  601. Likewise.
  602. * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
  603. * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
  604. (__cpp_lib_chrono_udls): Likewise.
  605. * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
  606. * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
  607. * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
  608. Likewise.
  609. * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
  610. Likewise.
  611. * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
  612. (__cpp_lib_sample): Likewise.
  613. * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
  614. Likewise.
  615. * include/bits/stl_function.h (__cpp_lib_transparent_operators):
  616. Likewise.
  617. * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
  618. Likewise.
  619. * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
  620. Likewise.
  621. * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
  622. Likewise.
  623. * include/bits/unique_ptr.h (__cpp_lib_make_unique):
  624. Likewise.
  625. * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
  626. Likewise.
  627. * include/c_global/cmath (__cpp_lib_hypot): Likewise.
  628. * include/c_global/cstddef (__cpp_lib_byte): Likewise.
  629. * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
  630. Likewise.
  631. * include/std/complex (__cpp_lib_complex_udls): Likewise.
  632. * include/std/filesystem (__cpp_lib_filesystem): Likewise.
  633. * include/std/functional (__cpp_lib_not_fn): Likewise.
  634. (__cpp_lib_boyer_moore_searcher): Likewise.
  635. * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
  636. * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
  637. * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
  638. (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
  639. * include/std/tuple (__cpp_lib_apply): Likewise.
  640. (__cpp_lib_make_from_tuple): Likewise.
  641. * include/std/type_traits (__cpp_lib_integral_constant_callable)
  642. (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
  643. (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
  644. (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
  645. (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
  646. (__cpp_lib_has_unique_object_representations)
  647. (__cpp_lib_is_aggregate): Likewise.
  648. * include/std/version: Likewise.
  649. * libsupc++/new (__cpp_lib_launder): Likewise.
  650. 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
  651. * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
  652. condition for C++17 definition.
  653. 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
  654. * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
  655. Add constexpr.
  656. (_Sp_atomic::_M_ptr): Add default member-initializer.
  657. * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
  658. Check constant initialization.
  659. * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
  660. 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
  661. * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
  662. equivalent attribute for Clang.
  663. * src/c++11/future.cc (__constinit): Likewise.
  664. * src/c++11/system_error.cc (__constinit): Likewise.
  665. * src/c++17/memory_resource.cc (__constinit): Likewise.
  666. 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
  667. * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
  668. src/libbacktrace/.libs to LDFLAGS if those directories exist.
  669. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  670. * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
  671. from default flags.
  672. * configure: Regenerate.
  673. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  674. PR libstdc++/104123
  675. * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
  676. <stddef.h>.
  677. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  678. * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
  679. linker search paths.
  680. * src/Makefile.am: Fix src/debug/libbacktrace build.
  681. * src/Makefile.in: Regenerate.
  682. * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
  683. variable. Use symlinks for the source files.
  684. * src/libbacktrace/Makefile.in: Regenerate.
  685. 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
  686. * include/experimental/bits/simd.h (__floating_point_flags): Do
  687. not rely on math_errhandling to expand to a constant expression.
  688. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  689. * doc/xml/manual/evolution.xml: Document deprecations.
  690. * doc/xml/manual/status_cxx2017.xml: Update status.
  691. * doc/html/*: Regenerate.
  692. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  693. * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
  694. _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
  695. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  696. * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
  697. function.
  698. 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
  699. PR libstdc++/104101
  700. * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
  701. Only use __thread_relax if __cpp_lib_atomic_wait is defined.
  702. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  703. PR libstdc++/104099
  704. * include/bits/basic_string.h (basic_string(nullptr_t)): Only
  705. define for C++23.
  706. (operator=(nullptr_t)): Likewise.
  707. * include/bits/cow_string.h: Likewise.
  708. * include/std/string_view (basic_string_view(nullptr_t)):
  709. Likewise.
  710. * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
  711. expected error. Add examples that become ill-formed in C++23.
  712. * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
  713. Adjust expected errors.
  714. * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
  715. Likewise.
  716. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  717. PR libstdc++/104098
  718. * include/bits/stl_iterator.h (reverse_iterator): Check
  719. __cpp_lib_concepts instead of __cplusplus.
  720. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  721. PR libstdc++/101124
  722. * include/bits/stl_pair.h (pair): Adjust constraints on
  723. deprecated constructors accepting literal zero as null pointer
  724. constant. Improve wording of deprecated attribute.
  725. * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
  726. constructors do not cause ambiguities for copyable types.
  727. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  728. * include/bits/stl_function.h (ptr_fun): Fix suggestion for
  729. non-deprecated alternative.
  730. 2022-01-18 Tom Honermann <tom@honermann.net>
  731. * acinclude.m4: Define config macros if uchar.h provides
  732. c8rtomb() and mbrtoc8().
  733. * config.h.in: Regenerate.
  734. * configure: Regenerate.
  735. * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
  736. * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
  737. * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
  738. * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
  739. New test.
  740. * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
  741. New test.
  742. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  743. * include/Makefile.am: Install new header.
  744. * include/Makefile.in: Regenerate.
  745. * include/c_compatibility/stdatomic.h: New file.
  746. * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
  747. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  748. PR libstdc++/104080
  749. * src/c++17/fast_float/LOCAL_PATCHES: Update.
  750. * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
  751. Define in terms of __BYTE_ORDER__.
  752. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  753. PR libstdc++/104080
  754. * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
  755. * src/c++17/fast_float/fast_float.h (round): Use explicit
  756. template argument list for std::min.
  757. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  758. * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
  759. * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
  760. upcoming release.
  761. * doc/html/manual/status.html: Regenerate.
  762. 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
  763. * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
  764. comments.
  765. * configure: Regenerate.
  766. 2022-01-17 Patrick Palka <ppalka@redhat.com>
  767. * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
  768. Conditionally define, and use it to conditionally include
  769. fast_float.
  770. (from_chars): Use fast_float for float and double when
  771. USE_LIB_FAST_FLOAT.
  772. 2022-01-17 Patrick Palka <ppalka@redhat.com>
  773. * src/c++17/fast_float/LOCAL_PATCHES: Update.
  774. * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
  775. case of over/underflow, return errc::result_out_of_range and don't
  776. modify 'value'.
  777. 2022-01-17 Patrick Palka <ppalka@redhat.com>
  778. * src/c++17/fast_float/LOCAL_PATCHES: Update.
  779. * src/c++17/fast_float/fast_float.h: Apply local modifications.
  780. 2022-01-17 Patrick Palka <ppalka@redhat.com>
  781. * src/c++17/fast_float/LOCAL_PATCHES: New file.
  782. * src/c++17/fast_float/MERGE: New file.
  783. * src/c++17/fast_float/README.md: New file, copied from the
  784. fast_float repository.
  785. * src/c++17/fast_float/fast_float.h: New file, an amalgamation
  786. of the fast_float library.
  787. 2022-01-17 Patrick Palka <ppalka@redhat.com>
  788. * src/c++17/floating_from_chars.cc: Include <bit>.
  789. (ascii_to_hexit, starts_with_ci): Conditionally define.
  790. (__floating_from_chars_hex): Conditionally define.
  791. (from_chars): Use __floating_from_chars_hex for
  792. chars_format::hex parsing of binary32/64 float/double.
  793. (testsuite/20_util/from_chars/7.cc): New test.
  794. * testsuite/20_util/from_chars/7.cc: New file.
  795. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  796. * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
  797. * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
  798. * include/Makefile.am: Add new header.
  799. * include/Makefile.in: Regenerate.
  800. * include/std/stacktrace: New header.
  801. * include/std/version (__cpp_lib_stacktrace): Define.
  802. * Makefile.in: Regenerate.
  803. * config.h.in: Regenerate.
  804. * configure: Regenerate.
  805. * doc/Makefile.in: Regenerate.
  806. * libsupc++/Makefile.in: Regenerate.
  807. * po/Makefile.in: Regenerate.
  808. * python/Makefile.in: Regenerate.
  809. * src/Makefile.am: Regenerate.
  810. * src/Makefile.in: Regenerate.
  811. * src/c++11/Makefile.in: Regenerate.
  812. * src/c++17/Makefile.in: Regenerate.
  813. * src/c++20/Makefile.in: Regenerate.
  814. * src/c++98/Makefile.in: Regenerate.
  815. * src/filesystem/Makefile.in: Regenerate.
  816. * testsuite/Makefile.in: Regenerate.
  817. * src/libbacktrace/Makefile.am: New file.
  818. * src/libbacktrace/Makefile.in: New file.
  819. * src/libbacktrace/backtrace-rename.h: New file.
  820. * src/libbacktrace/backtrace-supported.h.in: New file.
  821. * src/libbacktrace/config.h.in: New file.
  822. * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
  823. New proc.
  824. * testsuite/20_util/stacktrace/entry.cc: New test.
  825. * testsuite/20_util/stacktrace/synopsis.cc: New test.
  826. * testsuite/20_util/stacktrace/version.cc: New test.
  827. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  828. * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
  829. names.
  830. * doc/html/manual/status.html: Regenerate.
  831. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  832. PR libstdc++/103650
  833. * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
  834. * include/Makefile.in: Regenerate.
  835. * testsuite/17_intro/headers/c++1998/103650.cc: New test.
  836. 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
  837. * include/experimental/bits/simd.h (__floating_point_flags): Do
  838. not rely on the presence of the math_errhandling macro.
  839. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  840. * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
  841. to qualified-id for dependent type.
  842. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  843. * doc/xml/manual/status_cxx2020.xml: Update.
  844. * doc/html/manual/status.html: Regenerate.
  845. 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
  846. Thomas Rodgers <trodgers@redhat.com>
  847. * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
  848. New macro.
  849. (_Sp_atomic): New class template.
  850. (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
  851. specializations.
  852. * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
  853. (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
  854. * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
  855. * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
  856. test.
  857. * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
  858. 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
  859. * include/experimental/bits/simd.h: Move feature detection bools
  860. and add __have_avx512bitalg, __have_avx512vbmi2,
  861. __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
  862. __have_avx512vnni, __have_avx512vpopcntdq.
  863. (__detail::__machine_flags): New function which returns a unique
  864. uint64 depending on relevant -m and -f flags.
  865. (__detail::__odr_helper): New type alias for either an anonymous
  866. type or a type specialized with the __machine_flags number.
  867. (_SimdIntOperators): Change template parameters from _Impl to
  868. _Tp, _Abi because _Impl now has an __odr_helper parameter which
  869. may be _OdrEnforcer from the anonymous namespace, which makes
  870. for a bad base class.
  871. (many): Either add __odr_helper template parameter or mark as
  872. always_inline.
  873. * include/experimental/bits/simd_detail.h: Add defines for
  874. AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
  875. AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
  876. * include/experimental/bits/simd_builtin.h: Add __odr_helper
  877. template parameter or mark as always_inline.
  878. * include/experimental/bits/simd_fixed_size.h: Ditto.
  879. * include/experimental/bits/simd_math.h: Ditto.
  880. * include/experimental/bits/simd_scalar.h: Ditto.
  881. * include/experimental/bits/simd_neon.h: Add __odr_helper
  882. template parameter.
  883. * include/experimental/bits/simd_ppc.h: Ditto.
  884. * include/experimental/bits/simd_x86.h: Ditto.
  885. 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
  886. * testsuite/22_locale/numpunct/members/char/3.cc:
  887. Require pt_PT locale instead of nl_NL.
  888. (test02): Use pt_PT locale instead of nl_NL.
  889. 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
  890. PR libstdc++/91260
  891. PR libstdc++/91383
  892. PR libstdc++/95065
  893. * include/backward/binders.h (bind1st, bind2nd): Add deprecated
  894. attribute.
  895. * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
  896. Disable deprecated warnings for base classes.
  897. (_Reference_wrapper_base): Likewise.
  898. * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
  899. * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
  900. * include/bits/stl_function.h (unary_function, binary_function):
  901. Add deprecated attribute.
  902. (unary_negate, not1, binary_negate, not2, ptr_fun)
  903. (pointer_to_unary_function, pointer_to_binary_function)
  904. (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
  905. (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
  906. (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
  907. attributes.
  908. * include/bits/stl_iterator.h: Disable deprecated warnings for
  909. std::iterator base classes.
  910. * include/bits/stl_iterator_base_types.h (iterator): Add
  911. deprecated attribute.
  912. * include/bits/stl_map.h (map::value_compare): Disable
  913. deprecated warnings for base class.
  914. * include/bits/stl_multimap.h (multimap::value_compare):
  915. Likewise.
  916. * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
  917. Add deprecated attribute.
  918. * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
  919. * include/bits/stream_iterator.h: Disable deprecated warnings.
  920. * include/bits/streambuf_iterator.h: Likewise.
  921. * include/ext/bitmap_allocator.h: Remove unary_function base
  922. classes.
  923. * include/ext/functional: Disable deprecated warnings.
  924. * include/ext/rope: Likewise.
  925. * include/ext/throw_allocator.h: Likewise.
  926. * include/std/type_traits (result_of): Add deprecated attribute.
  927. * include/tr1/functional: Disable deprecated warnings.
  928. * include/tr1/functional_hash.h: Likewise.
  929. * testsuite/20_util/function_objects/binders/1.cc: Add
  930. -Wno-disable-deprecations.
  931. * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
  932. * testsuite/20_util/function_objects/constexpr.cc: Add
  933. dg-warning.
  934. * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
  935. * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
  936. * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
  937. Likewise.
  938. * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
  939. Likewise.
  940. * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
  941. Likewise.
  942. * testsuite/20_util/reference_wrapper/24803.cc:
  943. Likewise.
  944. * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
  945. C++20 and check for absence of nested types.
  946. * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
  947. std::binary_function base class.
  948. * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
  949. * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
  950. std::iterator base class.
  951. * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
  952. Likewise.
  953. * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
  954. Likewise.
  955. * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
  956. Likewise.
  957. * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
  958. Likewise.
  959. * testsuite/24_iterators/istreambuf_iterator/92285.cc:
  960. Likewise.
  961. * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
  962. Likewise.
  963. * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
  964. Likewise.
  965. * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
  966. Likewise.
  967. * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
  968. Likewise.
  969. * testsuite/25_algorithms/copy/34595.cc:
  970. Likewise.
  971. * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
  972. base class.
  973. * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
  974. Disable deprecated warnings.
  975. * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
  976. Likewise.
  977. * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
  978. Likewise.
  979. * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
  980. Likewise.
  981. * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
  982. Likewise.
  983. * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
  984. Likewise.
  985. * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
  986. Likewise.
  987. * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
  988. Likewise.
  989. * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
  990. Likewise.
  991. * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
  992. Likewise.
  993. * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
  994. Likewise.
  995. * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
  996. Likewise.
  997. * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
  998. Likewise.
  999. * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
  1000. Likewise.
  1001. * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
  1002. Likewise.
  1003. * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
  1004. Likewise.
  1005. * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
  1006. Likewise.
  1007. * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
  1008. Likewise.
  1009. * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
  1010. Likewise.
  1011. * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
  1012. Likewise.
  1013. * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
  1014. Likewise.
  1015. * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
  1016. Likewise.
  1017. * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
  1018. Likewise.
  1019. * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
  1020. Likewise.
  1021. * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
  1022. Likewise.
  1023. * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
  1024. Likewise.
  1025. * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
  1026. Likewise.
  1027. * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
  1028. Likewise.
  1029. * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
  1030. Likewise.
  1031. * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
  1032. Likewise.
  1033. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
  1034. Likewise.
  1035. * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
  1036. Likewise.
  1037. * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
  1038. Likewise.
  1039. * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
  1040. Likewise.
  1041. * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
  1042. Likewise.
  1043. * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
  1044. Likewise.
  1045. * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
  1046. Likewise.
  1047. * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
  1048. Likewise.
  1049. * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
  1050. Likewise.
  1051. * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
  1052. Likewise.
  1053. * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
  1054. Likewise.
  1055. * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
  1056. Likewise.
  1057. * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
  1058. Likewise.
  1059. * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
  1060. Likewise.
  1061. * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
  1062. Likewise.
  1063. * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
  1064. Likewise.
  1065. * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
  1066. Likewise.
  1067. * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
  1068. Likewise.
  1069. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
  1070. dg-warning.
  1071. * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
  1072. Likewise.
  1073. * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
  1074. Likewise.
  1075. * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
  1076. Disable deprecated warnings.
  1077. * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
  1078. Likewise.
  1079. * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
  1080. std::unary_function base classes.
  1081. * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
  1082. Remove std::iterator base classes.
  1083. 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
  1084. * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
  1085. Correct type of macro value.
  1086. (shared_ptr): Add additional friend declarations.
  1087. (make_shared, allocate_shared): Constrain existing overloads and
  1088. remove static_assert.
  1089. * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
  1090. New macro.
  1091. (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
  1092. specialization for use with make_shared_for_overwrite.
  1093. (__cpp_lib_shared_ptr_arrays): Update value for C++20.
  1094. (_Sp_counted_array_base): New class template.
  1095. (_Sp_counted_array): New class template.
  1096. (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
  1097. New constructor for allocating shared arrays.
  1098. (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
  1099. * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
  1100. type.
  1101. (__cpp_lib_shared_ptr_arrays): Update value for C++20.
  1102. (__cpp_lib_smart_ptr_for_overwrite): New macro.
  1103. * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
  1104. expected errors.
  1105. * testsuite/20_util/shared_ptr/creation/array.cc: New test.
  1106. * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
  1107. * testsuite/20_util/shared_ptr/creation/version.cc: New test.
  1108. * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
  1109. feature test macro. Test non-trivial default-initialization.
  1110. 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
  1111. * include/bits/stl_construct.h (_Construct, _Construct_novalue):
  1112. Also cast away cv-qualifiers when converting pointer to void.
  1113. * testsuite/20_util/allocator/void.cc: Test construct function
  1114. with cv-qualified types.
  1115. 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
  1116. PR libstdc++/103992
  1117. * include/bits/stl_iterator.h (common_iterator): Use
  1118. std::construct_at instead of placement new.
  1119. * testsuite/24_iterators/common_iterator/1.cc: Check copy
  1120. construction is usable in constant expressions.
  1121. 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
  1122. * doc/xml/manual/status_cxx2011.xml: Document new tokens
  1123. accepted by std::random_device constructor.
  1124. * doc/html/manual/status.html: Regenerate.
  1125. 2022-01-12 Patrick Palka <ppalka@redhat.com>
  1126. * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
  1127. directive.
  1128. 2022-01-12 Patrick Palka <ppalka@redhat.com>
  1129. PR libstdc++/103955
  1130. * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
  1131. Track the excess precision separately from the effective
  1132. precision. Avoid overflow in bounds check by splitting it into
  1133. two checks.
  1134. (__floating_to_chars_precision): Avoid overflow in bounds checks
  1135. similarly.
  1136. * testsuite/20_util/to_chars/103955.cc: New test.
  1137. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1138. PR libstdc++/103726
  1139. * include/Makefile.am: Install <source_location> for
  1140. freestanding.
  1141. * include/Makefile.in: Regenerate.
  1142. * include/std/version (__cpp_lib_source_location): Define for
  1143. freestanding.
  1144. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1145. * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
  1146. Add neoxcept (LWG 3593).
  1147. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1148. * include/std/ranges (ranges::__detail::__box): Add constexpr to
  1149. assignment operators (LWG 3572).
  1150. * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
  1151. view that uses copyable-box.
  1152. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1153. PR libstdc++/103726
  1154. * include/Makefile.am: Install <coroutine> for freestanding.
  1155. * include/Makefile.in: Regenerate.
  1156. * include/std/coroutine: Adjust headers and preprocessor
  1157. conditions.
  1158. (__coroutine_traits_impl): Use concepts when available.
  1159. [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
  1160. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1161. * include/std/ostream (operator<<(basic_ostream&, charT)):
  1162. Use unformatted input if no padding is needed.
  1163. (operator<<(basic_ostream<char>&, char)): Likewise.
  1164. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1165. PR libstdc++/103891
  1166. * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
  1167. Define.
  1168. * include/std/variant (__cpp_lib_variant): Only define C++20
  1169. value when the compiler is known to support conditionally
  1170. trivial destructors.
  1171. * include/std/version (__cpp_lib_variant): Likewise.
  1172. 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
  1173. * include/bits/stl_iterator.h (common_iterator): Add constexpr
  1174. to all member functions (LWG 3574).
  1175. * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
  1176. tests as constant expressions.
  1177. * testsuite/24_iterators/common_iterator/2.cc: Likewise.
  1178. 2022-01-10 Jakub Jelinek <jakub@redhat.com>
  1179. PR libstdc++/77760
  1180. * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
  1181. (time_get::_M_extract_via_format): Declare new method with
  1182. __time_get_state& as an extra argument.
  1183. * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
  1184. __state argument, set various fields in it while parsing. Handle %j,
  1185. %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
  1186. for %p immediately. Add a wrapper around the method without the
  1187. __state argument for backwards compatibility.
  1188. (_M_extract_num): Remove all __len == 4 special cases.
  1189. (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
  1190. initialize __state, pass it to _M_extract_via_format and finalize it
  1191. at the end.
  1192. (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
  1193. 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
  1194. (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
  1195. version, don't call do_get but call _M_extract_via_format instead to
  1196. pass around state.
  1197. * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
  1198. with extra __time_get_state and __time_get_state::_M_finalize_state.
  1199. * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
  1200. day_of_the_year): New functions in anon namespace.
  1201. (mon_yday): New var in anon namespace.
  1202. (__time_get_state::_M_finalize_state): Define.
  1203. * testsuite/22_locale/time_get/get/char/4.cc: New test.
  1204. * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
  1205. * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
  1206. as year 197AD instead of error.
  1207. * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
  1208. year 2001 instead of error.
  1209. * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
  1210. * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
  1211. 197 as year 197AD instead of error.
  1212. * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
  1213. 1 as year 2001 instead of error.
  1214. * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
  1215. 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
  1216. PR libstdc++/103866
  1217. * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
  1218. nothing for freestanding builds.
  1219. (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
  1220. * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
  1221. with --without-headers. Do not use GCC_HEADER_STDINT for
  1222. freestanding builds.
  1223. * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
  1224. for freestanding builds.
  1225. * configure: Regenerate.
  1226. * Makefile.in: Regenerate.
  1227. * doc/Makefile.in: Regenerate.
  1228. * include/Makefile.in: Regenerate.
  1229. * libsupc++/Makefile.in: Regenerate.
  1230. * po/Makefile.in: Regenerate.
  1231. * python/Makefile.in: Regenerate.
  1232. * src/Makefile.in: Regenerate.
  1233. * src/c++11/Makefile.in: Regenerate.
  1234. * src/c++17/Makefile.in: Regenerate.
  1235. * src/c++20/Makefile.in: Regenerate.
  1236. * src/c++98/Makefile.in: Regenerate.
  1237. * src/filesystem/Makefile.in: Regenerate.
  1238. * testsuite/Makefile.in: Regenerate.
  1239. 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
  1240. * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
  1241. Add dg-timeout-factor directive.
  1242. * testsuite/28_regex/basic_regex/84110.cc: Likewise.
  1243. * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
  1244. * testsuite/28_regex/match_results/102667.cc: Likewise.
  1245. 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
  1246. * doc/xml/manual/using.xml: Update documentation around default
  1247. -std option.
  1248. * doc/html/*: Regenerate.
  1249. 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
  1250. PR libstdc++/100017
  1251. * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
  1252. * src/c++17/Makefile.in: Regenerate.
  1253. 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
  1254. * testsuite/18_support/type_info/constexpr.cc: Add explicit
  1255. -fdelete-null-pointer-checks option.
  1256. 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
  1257. Jonathan Wakely <jwakely@redhat.com>
  1258. PR libstdc++/103853
  1259. * include/bits/forward_list.tcc (forward_list::merge): Check for
  1260. self-merge.
  1261. * testsuite/23_containers/forward_list/operations/merge.cc: New test.
  1262. 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
  1263. * include/bits/regex.h (basic_regex, match_results): Qualify
  1264. name in friend declaration, to work around Clang bug.
  1265. 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
  1266. * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
  1267. 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
  1268. PR libstdc++/103911
  1269. * include/std/charconv (__from_chars_alpha_to_num): Return
  1270. char instead of unsigned char. Change invalid return value to
  1271. 127 instead of using numeric trait.
  1272. (__from_chars_alnum): Fix comment. Do not use std::isdigit.
  1273. Change type of variable to char.
  1274. 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
  1275. PR libstdc++/68303
  1276. * include/bits/hashtable_policy.h
  1277. (_Hashtable_hash_traits<_Hash>): New.
  1278. (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
  1279. (_Hashtable_base<>::_M_key_equals): New.
  1280. (_Hashtable_base<>::_M_equals): Use latter.
  1281. (_Hashtable_base<>::_M_key_equals_tr): New.
  1282. (_Hashtable_base<>::_M_equals_tr): Use latter.
  1283. * include/bits/hashtable.h
  1284. (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
  1285. (_Hashtable<>::find): Loop through elements to look for key if size is lower
  1286. than __small_size_threshold().
  1287. (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
  1288. (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
  1289. (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
  1290. (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
  1291. (_Hashtable<>::_M_find_before_node(const key_type&)): New.
  1292. (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
  1293. (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
  1294. * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
  1295. * testsuite/util/testsuite_performance.h
  1296. (report_performance): Use 9 width to display memory.
  1297. * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
  1298. New performance test case.
  1299. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1300. PR libstdc++/103919
  1301. * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
  1302. Relax constraints on string_view parameter.
  1303. * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
  1304. Likewise.
  1305. * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
  1306. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1307. * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
  1308. ARM EABI.
  1309. * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
  1310. * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
  1311. * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
  1312. is emitted.
  1313. (type_info::__equal): Define alias symbol.
  1314. * libsupc++/typeinfo (type_info::before): Combine different
  1315. implementations into one.
  1316. (type_info::operator==): Likewise. Use address equality for
  1317. constant evaluation. Call __equal for targets that require the
  1318. definition to be non-inline.
  1319. * testsuite/18_support/type_info/constexpr.cc: New test.
  1320. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1321. * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
  1322. class and virtual functions as 'final'.
  1323. (io_category_instance): Use constinit union to make the object
  1324. immortal.
  1325. * src/c++11/future.cc (future_error_category): Define class and
  1326. virtual functions as 'final'.
  1327. (future_category_instance): Use constinit union.
  1328. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1329. * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
  1330. versioned namespace from the type name that is printed.
  1331. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1332. * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
  1333. printer for std::regex NFA states.
  1334. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1335. * testsuite/23_containers/forward_list/operations/1.cc: Fill in
  1336. placeholders in comments.
  1337. * testsuite/23_containers/forward_list/operations/2.cc:
  1338. Likewise.
  1339. * testsuite/23_containers/forward_list/operations/3.cc:
  1340. Likewise.
  1341. * testsuite/23_containers/forward_list/operations/4.cc:
  1342. Likewise.
  1343. * testsuite/23_containers/forward_list/operations/5.cc:
  1344. Likewise.
  1345. * testsuite/23_containers/forward_list/operations/6.cc:
  1346. Likewise.
  1347. * testsuite/23_containers/forward_list/operations/7.cc:
  1348. Likewise.
  1349. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1350. PR libstdc++/103848
  1351. * include/bits/stl_deque.h (operator-): Do not use 0 as null
  1352. pointer constant.
  1353. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1354. * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
  1355. Use std::_Construct for construct.
  1356. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1357. PR libstdc++/103877
  1358. * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
  1359. * doc/html/faq.html: Regenerate.
  1360. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1361. * include/bits/regex.h (__regex_algo_impl): Change __policy and
  1362. __match_mode template parameters to be function parameters.
  1363. (regex_match, regex_search): Pass policy and match mode as
  1364. function arguments.
  1365. * include/bits/regex.tcc (__regex_algo_impl): Change template
  1366. parameters to function parameters.
  1367. * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
  1368. 'if constexpr' for conditions using template parameters.
  1369. (_RegexTranslator): Likewise.
  1370. * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
  1371. Likewise.
  1372. * testsuite/util/testsuite_regex.h (regex_match_debug)
  1373. (regex_search_debug): Move template arguments to function
  1374. arguments.
  1375. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1376. * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
  1377. results even if the match failed.
  1378. 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
  1379. * include/bits/regex_compiler.tcc: Adjust all calls to
  1380. __throw_regex_error.
  1381. * include/bits/regex_error.h (__throw_regex_error): Add noreturn
  1382. attribute.
  1383. * include/bits/regex_scanner.tcc: Likewise.
  1384. * src/c++11/regex.cc (desc): New helper function.
  1385. (regex_error::regex_error(error_type)): Use desc to get a string
  1386. corresponding to the error code.
  1387. Copyright (C) 2022 Free Software Foundation, Inc.
  1388. Copying and distribution of this file, with or without modification,
  1389. are permitted in any medium without royalty provided the copyright
  1390. notice and this notice are preserved.