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