]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
PR rtl-optimization/88296
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
cbbb35ec 12019-01-10 Jonathan Wakely <jwakely@redhat.com>
2
1715824b 3 * testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
4 test failures on targets with 32-bit time_t.
5
f5529091 6 * include/bits/erase_if.h: Define __cpp_lib_erase_if.
7 * include/std/deque: Likewise.
8 * include/std/forward_list: Likewise.
9 * include/std/list: Likewise.
10 * include/std/string: Likewise.
11 * include/std/vector: Likewise.
12 * include/std/version: Likewise.
13 * testsuite/21_strings/basic_string/erasure.cc: Test macro.
14 * testsuite/23_containers/deque/erasure.cc: Likewise.
15 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
16 * testsuite/23_containers/list/erasure.cc: Likewise.
17 * testsuite/23_containers/map/erasure.cc: Likewise.
18 * testsuite/23_containers/set/erasure.cc: Likewise.
19 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
20 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
21 * testsuite/23_containers/vector/erasure.cc: Likewise.
22
cbbb35ec 23 * include/experimental/internet [AI_NUMERICSERV]
24 (resolver_base::numeric_service): Define conditionally.
25 * testsuite/experimental/net/internet/resolver/base.cc: Test it
26 conditionally.
27 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
28 Likewise.
29
ac9a8436 302019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com>
31 Jonathan Wakely <jwakely@redhat.com>
32
33 Implement LWG 2221
34 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
35 (GLIBCXX_3.4.26): Add new exports.
36 * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
37 correct list of sources.
38 * include/Makefile.in: Regenerate.
39 * include/std/ostream (operator<<(nullptr_t)): New member function.
40 * src/c++17/ostream-inst.cc: New file.
41 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
42 test.
43
5f027941 442019-01-10 Jonathan Wakely <jwakely@redhat.com>
45
46 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name
47 of the source file containing the caller.
48 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
49 directories created by test.
50 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
51 Likewise.
52 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
53 Likewise.
54 * testsuite/experimental/filesystem/iterators/
55 recursive_directory_iterator.cc: Likewise.
56
3273d2e6 572019-01-10 Jakub Jelinek <jakub@redhat.com>
58
59 PR tree-optimization/88775
60 * include/bits/stl_function.h (greater<_Tp*>::operator(),
61 less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
62 less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
63 instead of __builtin_constant_p if available. Don't bother with
64 the pointer comparison in C++11 and earlier.
65
f4d3c071 662019-01-09 Sandra Loosemore <sandra@codesourcery.com>
67
68 PR other/16615
69
70 * include/ext/bitmap_allocator.h: Mechanically replace "can not"
71 with "cannot".
72
8eba10af 732019-01-09 Jonathan Wakely <jwakely@redhat.com>
74
6a6ade9f 75 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output
76 for filesystem::path. Give variables more distinctive names.
77
41cda271 78 * include/std/optional (_Optional_payload_base::_M_copy_assign): New
79 member function to perform non-trivial assignment.
80 (_Optional_payload_base::_M_move_assign): Likewise.
81 (_Optional_payload<T, true, false, true>::operator=)
82 (_Optional_payload<T, true, true, false>::operator=)
83 (_Optional_payload<T, true, false, false>::operator=): Call
84 _M_copy_assign and/or _M_move_assign to do non-trivial assignments.
85
8eba10af 86 PR libstdc++/88204
87 * testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
88 test std::complex<long double> if long double format is IBM128.
89 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
90 Likewise.
91
64a50f48 922019-01-08 Jonathan Wakely <jwakely@redhat.com>
93
73f3ad16 94 * testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
95 for old std::unique_ptr layout.
96 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test
97 to become valueless. Add filesystem::path tests.
98
58e897da 99 PR libstdc++/87855
100 * include/std/optional (_Optional_payload_base): New class template
101 for common code hoisted from _Optional_payload specializations. Use
102 a template for the union, to allow a partial specialization for
103 types with non-trivial destructors. Add constructors for in-place
104 initialization to the union.
105 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct
106 to perform non-trivial copy construction, instead of relying on
107 non-standard copy elision in a delegating constructor.
108 (_Optional_payload(bool, _Optional_payload&&)): Likewise for
109 non-trivial move construction.
110 (_Optional_payload): Derive from _Optional_payload_base and use it
111 for everything except the non-trivial assignment operators, which are
112 defined as needed.
113 (_Optional_payload<false, C, M>): Derive from the specialization
114 _Optional_payload<true, false, false> and add a destructor.
115 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset):
116 Forward to corresponding members of _Optional_payload.
117 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get):
118 Hoist common members from _Optional_base.
119 (_Optional_base): Make all members and base class public.
120 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to
121 _Optional_base_impl.
122 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add
123 support for new std::optional layout.
124 * testsuite/libstdc++-prettyprinters/compat.cc: New test.
125
64a50f48 126 PR libstdc++/88066
127 * include/bits/locale_conv.h: Use <> for includes not "".
128 * include/ext/random: Likewise.
129 * include/ext/vstring.h: Likewise.
130
95b40931 1312019-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
132
133 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns.
134 (GLIBCXX_3.4.21): Likewise.
135
fa00ec77 1362019-01-08 Jonathan Wakely <jwakely@redhat.com>
137
138 PR libstdc++/88749
139 * src/filesystem/ops.cc (last_write_time): Fix preprocessor condition
140 to match the one that controls whether utimbuf and utime are declared.
141
3f304b2d 1422019-01-07 Jonathan Wakely <jwakely@redhat.com>
143
fc6ac813 144 PR libstdc++/87787
145 * include/bits/char_traits.h (char_traits::move): Do not pass null
146 pointers to memmove.
147 * include/bits/locale_facets.h
148 (ctype<char>::widen(const char*, const char*, char*)): Do not
149 pass null pointers to memcpy.
150 (ctype<char>::narrow(const char*, const char*, char, char*)):
151 Likewise.
152 (ctype<char>::do_widen(const char*, const char*, char*)):
153 Likewise.
154 (ctype<char>::do_narrow(const char*, const char*, char, char*)):
155 Likewise.
156
bbc66c45 157 * doc/xml/manual/spine.xml: Update copyright years.
158 * doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
159 * doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
160 for C++17 filesystem library.
161 * doc/html/*: Regenerate.
162
3f304b2d 163 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate.
164 * config.h.in: Regenerate.
165 * config/abi/pre/gnu.ver: Order patterns for filesystem operations
166 alphabetically and add missing entries for copy_symlink,
167 hard_link_count, rename, and resize_file.
168 * configure: Regenerate.
169 * src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is
170 used unconditionally.
171 * src/filesystem/ops-common.h (__gnu_posix::truncate)
172 [!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only
173 supports truncating to zero length.
174 * testsuite/27_io/filesystem/operations/all.cc: New test.
175 * testsuite/27_io/filesystem/operations/resize_file.cc: New test.
176
0ebb0980 1772019-01-06 Jonathan Wakely <jwakely@redhat.com>
178
3935f409 179 PR libstdc++/86756
180 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
181 lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
182 * config.h.in: Regenerate.
183 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
184 remaining std::filesystem types and functions.
185 * configure: Regenerate.
186 * src/c++17/Makefile.am: Add C++17 filesystem sources.
187 * src/c++17/Makefile.in: Regenerate.
188 * src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
189 here, and change name of included file.
190 * src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
191 here, and change name of included file.
192 * src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
193 path to dir-common.h.
194 * src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
195 path to ops-common.h. Disable -Wunused-parameter warnings.
196 (internal_file_clock): Define unconditionally.
197 [!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
198 define.
199 (do_copy_file, do_space): Move definitions to ops.common.h.
200 (copy, file_size, hard_link_count, last_write_time, space): Only
201 perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
202 report an error.
203 (last_write_time, read_symlink): Remove unused attributes from
204 parameters.
205 * src/filesystem/Makefile.am: Remove C++17 filesystem sources.
206 * src/filesystem/Makefile.in: Regenerate.
207 * src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
208 * src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
209 * src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
210 * src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
211 * src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
212 dummy types and functions instead of using #error.
213 * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
214 * src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
215 in terms of stat.
216 [!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
217 (do_copy_file, do_space): Move definitions here from std-ops.cc.
218 * src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
219 to account for new namespace.
220 * testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
221 -lstdc++fs from dg-options.
222 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
223 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
224 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
225 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
226 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
227 Likewise.
228 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
229 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
230 Likewise.
231 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
232 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
233 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
234 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
235 * testsuite/27_io/filesystem/operations/create_directories.cc:
236 Likewise.
237 * testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
238 * testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
239 * testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
240 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
241 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
242 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
243 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
244 * testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
245 * testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
246 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
247 * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
248 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
249 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
250 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
251 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
252 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
253 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
254 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
255 Likewise.
256 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
257
258
c6e37a9f 259 PR libstdc++/86756
260 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
261 typeinfo and vtables less greedy.
262 (GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
263 * src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
264 * src/c++17/Makefile.in: Regenerate.
265 * src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
266 here, and change name of included file.
267 * src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
268 * src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
269 from sources.
270 * src/filesystem/Makefile.in: Regenerate.
271 * src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
272 * src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
273 * testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
274 from dg-options and remove dg-require-filesystem-ts.
275 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
276 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
277 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
278 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
279 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
280 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
281 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
282 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
283 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
284 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
285 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
286 * testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
287 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
288 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
289 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
290 * testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
291 * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
292 * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
293 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
294 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
295 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
296 Likewise.
297 * testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
298 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
299 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
300 * testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
301 * testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
302 * testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
303 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
304 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
305 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
306 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
307 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
308 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
309 Likewise.
310 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
311 Likewise.
312 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
313 Likewise.
314 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
315 Likewise.
316 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
317 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
318 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
319 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
320 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
321 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
322 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
323 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
324 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
325 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
326 Likewise.
327 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
328 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
329 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
330 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
331 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
332
8815ac91 333 PR libstdc++/87431
334 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
335 Check is_trivially_copyable instead of is_scalar.
336 (variant::emplace<N, Args>(Args&&...)): If construction of the new
337 contained value can throw and its type is trivially copyable then
338 construct into a temporary variant and move from it, to provide the
339 strong exception safety guarantee.
340 (variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
341 Likewise.
342 * testsuite/20_util/variant/87431.cc: New test.
343 * testsuite/20_util/variant/run.cc: Adjust test so that throwing
344 conversion causes valueless state.
345
0ebb0980 346 PR libstdc++/88607
347 * testsuite/17_intro/headers/c++1998/charset.cc: New test.
348 * testsuite/17_intro/headers/c++2011/charset.cc: New test.
349 * testsuite/17_intro/headers/c++2014/charset.cc: New test.
350 * testsuite/17_intro/headers/c++2017/charset.cc: New test.
351 * testsuite/17_intro/headers/c++2020/charset.cc: New test.
352
adc6beee 3532019-01-05 Jonathan Wakely <jwakely@redhat.com>
354
355 * include/bits/fs_fwd.h (__file_clock): Define new clock.
356 (file_time_type): Redefine in terms of __file_clock.
357 * src/filesystem/ops-common.h (file_time): Add FIXME comment about
358 overflow.
359 * src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
360 internal linkage.
361 (internal_file_lock): New helper type for accessing __file_clock.
362 (do_copy_file): Use internal_file_lock to convert system time to
363 file_time_type.
364 (last_write_time(const path&, error_code&)): Likewise.
365 (last_write_time(const path&, file_time_type, error_code&)): Likewise.
366
6b4a77f2 3672019-01-04 Jonathan Wakely <jwakely@redhat.com>
368
98185b9f 369 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
370 for const member functions of std::basic_string.
371 (GLIBCXX_3.4.26): Export member functions of std::basic_string added
372 in C++17.
373 * include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
374 Make non-standard constructor private.
375 [!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
376 Likewise.
377 * include/bits/basic_string.tcc (std::string, std::wstring): Declare
378 explicit instantiations for C++17 as well as earlier dialects.
379 * src/c++17/Makefile.am: Add new source files.
380 * src/c++17/Makefile.in: Regenerate.
381 * src/c++17/cow-string-inst.cc: New file defining explicit
382 instantiations for basic_string member functions added in C++17.
383 * src/c++17/string-inst.cc: Likewise.
384
859e6fed 385 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
386 copy/move constructors for old std::basic_string.
387 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
388 (basic_string::reference, basic_string::const_reference): Define
389 as plain references for C++11 and later.
390 (basic_string::basic_string()): Put constructor body outside
391 preprocessor conditional groups.
392 (basic_string::basic_string(basic_string&&)): Move _Alloc_hider
393 instead of copying it.
394 (basic_string::basic_string(const basic_string&, const _Alloc&)):
395 Define.
396 (basic_string::basic_string(basic_string&&, const _Alloc&)):
397 Define.
398 * include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
399 cases for old basic_string.
400 * testsuite/21_strings/basic_string/cons/char/8.cc: Test
401 allocator-extended constructors unconditionally. Add extra members to
402 allocator type when using old string ABI.
403 * testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
404 for old string ABI.
405 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
406
e13f6a7f 407 * testsuite/23_containers/list/61347.cc: Avoid spurious failure when
408 -fno-inline added to test flags.
409
a18fccd0 410 * testsuite/21_strings/basic_string/requirements/
411 explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
412
7f77ca07 413 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
414 assertion failures with old std::string ABI.
415
9346fb0e 416 * include/bits/fs_path.h (path::_List::erase): Replace both overloads
417 with ...
418 (path::pop_back(), path::_M_erase_from(const_iterator)): New member
419 functions that will only erase elements at the end.
420 * src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
421 (path::_List::_Impl::_M_erase_from(const_iterator)): Define.
422 (path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
423 of erase(p, end()).
424 (path::_List::pop_back()): Define.
425 (path::_List::_M_erase_from(const_iterator)): Define.
426 (path::operator/=(const path&)): Use pop_back to remove last component
427 and _M_erase_from to remove multiple components.
428 (path::_M_append(basic_string_view<value_type>)): Likewise.
429 (path::operator+=(const path&)): Likewise.
430 (path::_M_concat(basic_string_view<value_type>)): Likewise.
431 (path::remove_filename()): Likewise.
432 (path::lexically_normal()): Use _List::_Impl iterators instead of
433 path::iterator. Use pop_back to remove components from the end. Clear
434 trailing filename, instead of using erase(const_iterator) to remove
435 a non-final component.
436 * testsuite/27_io/filesystem/path/generation/normal.cc: Test
437 additional cases.
438 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
439
24230cab 440 * src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
441 incorrect treatment of empty filename after trailing slash.
442 * testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
443
6b4a77f2 444 * testsuite/21_strings/basic_string/modifiers/assign/char/
445 move_assign_optim.cc: Avoid spurious failure when -fno-inline added
446 to test flags.
447 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
448 move_assign_optim.cc: Likewise.
449
02df5941 4502019-01-03 Jonathan Wakely <jwakely@redhat.com>
451 Jakub Jelinek <jakub@redhat.com>
452
453 PR libstdc++/88607
454 * include/experimental/memory: Replace UTF-8 quote characters.
455 * include/std/future: Replace UTF-8 "em dash" characters.
456
f8ad40d8 4572019-01-03 Jonathan Wakely <jwakely@redhat.com>
458
9013258b 459 PR libstdc++/88607
460 * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
461 * include/debug/forward_list: Likewise.
462 * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
463 character.
464 * include/experimental/chrono: Likewise.
465 * include/experimental/functional: Likewise.
466 * include/experimental/ratio: Likewise.
467 * include/experimental/system_error: Likewise.
468 * include/experimental/tuple: Likewise.
469 * include/experimental/type_traits: Likewise.
470 * include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
471 * include/parallel/multiseq_selection.h: Likewise.
472
f8ad40d8 473 PR libstdc++/88681
474 * config/abi/pre/gnu.ver: Add missing exports.
475 * testsuite/22_locale/collate_byname/88681.cc: New test.
476 * testsuite/22_locale/time_get/get/char/88681.cc: New test.
477 * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
478
138292f4 4792019-01-02 Jonathan Wakely <jwakely@redhat.com>
480
553d41a8 481 * testsuite/23_containers/map/cons/deduction.cc: Test deduction from
482 initializer_list<value_type> and from input iterator ranges.
483 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
484
138292f4 485 * testsuite/experimental/string_view/element_access/char/empty.cc:
486 Fix year range in copyright header.
487
963c0125 4882019-01-02 Joel Brobecker <brobecker@adacore.com>
489
490 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
491 Fix year range in copyright header.
492
fbd26352 4932019-01-01 Jakub Jelinek <jakub@redhat.com>
d353bf18 494
495 Update copyright years.
fb96fbb3 496\f
fbd26352 497Copyright (C) 2019 Free Software Foundation, Inc.
fb96fbb3 498
499Copying and distribution of this file, with or without modification,
500are permitted in any medium without royalty provided the copyright
501notice and this notice are preserved.