]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Capture source location of dtors (PR c++/89390)
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
90a443b3 12019-02-22 Eric Botcazou <ebotcazou@adacore.com>
2
3 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
4 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
5
98485ce3 62019-02-22 Jakub Jelinek <jakub@redhat.com>
7
8 PR libstdc++/89402
9 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
10 type to std::size_t and argument to type to long double.
11
26b4fc38 122019-02-22 Eric Botcazou <ebotcazou@adacore.com>
13
14 * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
15 * config/abi/post/sparc64-linux-gnu: New directory.
16 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
17 * config/abi/post/sparc64-linux-gnu/32: New directory.
18 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
19
4f847a8e 202019-02-21 Jonathan Wakely <jwakely@redhat.com>
21
22 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.
23 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New
24 test.
25
aad651b3 262019-02-22 Tom Honermann <tom@honermann.net>
27
28 * python/libstdcxx/v6/printers.py (register_type_printers): Add type
29 printers for u8string and u8string_view.
30
c783b3cc 312019-02-22 Tom Honermann <tom@honermann.net>
32
33 * testsuite/18_support/byte/ops.cc: Validate
34 std::to_integer<char8_t>, std::to_integer<char16_t>, and
35 std::to_integer<char32_t>.
36 * testsuite/18_support/numeric_limits/dr559.cc: Validate
37 std::numeric_limits<char8_t>.
38 * testsuite/18_support/numeric_limits/lowest.cc: Validate
39 std::numeric_limits<char8_t>::lowest().
40 * testsuite/18_support/numeric_limits/max_digits10.cc: Validate
41 std::numeric_limits<char8_t>::max_digits10.
42 * testsuite/18_support/type_info/fundamental.cc: Validate
43 typeinfo for char8_t.
44 * testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating
45 std::from_chars with char8_t.
46 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
47 Validate explicit instantiation of std::hash<char8_t>.
48 * testsuite/20_util/is_integral/value.cc: Validate
49 std::is_integral<char8_t>.
50 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
51 Validate std::make_signed<char8_t>.
52 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
53 Validate u8string construction from char8_t sources.
54 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate
55 std::pmr::u8string.
56 * testsuite/21_strings/basic_string_view/operations/compare/
57 char/70483.cc: Validate substr operations on u8string_view.
58 * testsuite/21_strings/basic_string_view/typedefs.cc: Validate that
59 the u8string_view typedef is defined.
60 * testsuite/21_strings/char_traits/requirements/
61 constexpr_functions.cc: Validate char_traits<char8_t> constexpr
62 member functions.
63 * testsuite/21_strings/char_traits/requirements/
64 constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17
65 constexpr member functions.
66 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate
67 that the u8string typedef is defined.
68 * testsuite/22_locale/locale/cons/unicode.cc: Validate the presence
69 of the std::codecvt<char16_t, char8_t, std::mbstate_t> and
70 std::codecvt<char32_t, char8_t, std::mbstate_t> facets.
71 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line
72 numbers.
73 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
74 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
75 Likewise.
76 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
77 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
78 Validate std::atomic<char8_t>::is_always_lock_free
79 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
80 Update line numbers.
81 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
82 Likewise.
83 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
84 Likewise.
85 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
86 Validate std::experimental::pmr::u8string.
87 * testsuite/experimental/string_view/typedefs.cc: Validate that the
88 u8string_view typedef is defined.
89 * testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and
90 char32_t to the typelists.
91
ef96a935 922019-02-22 Tom Honermann <tom@honermann.net>
93
94 * include/ext/typelist.h: Constrain a partial specialization of
95 typelist::detail::append_ to only match chain<T1,T2>.
96
d373b606 972019-02-21 Jonathan Wakely <jwakely@redhat.com>
98
99 PR libstdc++/89416
100 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
101 class template with class. Replace move and copy member types with
102 member alias templates, so they are only instantiated when needed.
103 (__is_copy_insertable, __is_move_insertable): Adjust base class.
104 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
105 test for C++11/14/17 as well.
106 * testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
107 test.
108
25395ee8 1092019-02-20 Jakub Jelinek <jakub@redhat.com>
110
111 PR libstdc++/89402
112 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
113 _GLIBCXX_PURE to the alias declaration.
114
affcb65b 1152019-02-19 Jonathan Wakely <jwakely@redhat.com>
116
117 * testsuite/21_strings/basic_string/literals/types.cc
118 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal.
119 * testsuite/21_strings/basic_string/literals/values.cc
120 [_GLIBCXX_USE_CHAR8_T]: Likewise.
121 * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals
122 potentially having different type.
123 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
124 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal
125 to char.
126 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise.
127 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
128 * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from
129 string literals only using basic character set.
130 * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other
131 u8 literals to char.
132 * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]:
133 Test ATOMIC_CHAR8_T_LOCK_FREE.
134 Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test.
135 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
136 [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t.
137 * testsuite/experimental/string_view/literals/types.cc
138 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8
139 literal.
140 * testsuite/experimental/string_view/literals/values.cc
141 [_GLIBCXX_USE_CHAR8_T]: Likewise.
142
4acc5060 1432019-02-19 Tom Honermann <tom@honermann.net>
144
145 * testsuite/18_support/numeric_limits/char8_t.cc: New test cloned
146 from char16_32_t.cc; validates numeric_limits<char8_t>.
147 * testsuite/21_strings/basic_string/literals/types-char8_t.cc: New
148 test cloned from types.cc; validates operator""s for char8_t
149 returns u8string.
150 * testsuite/21_strings/basic_string/literals/values-char8_t.cc: New
151 test cloned from values.cc; validates construction and comparison
152 of u8string values.
153 * testsuite/21_strings/basic_string/requirements/
154 /explicit_instantiation/char8_t/1.cc: New test cloned from
155 char16_t/1.cc; validates explicit instantiation of
156 basic_string<char8_t>.
157 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
158 New test cloned from types.cc; validates operator""sv for char8_t
159 returns u8string_view.
160 * testsuite/21_strings/basic_string_view/literals/
161 values-char8_t.cc: New test cloned from values.cc; validates
162 construction and comparison of u8string_view values.
163 * testsuite/21_strings/basic_string_view/requirements/
164 explicit_instantiation/char8_t/1.cc: New test cloned from
165 char16_t/1.cc; validates explicit instantiation of
166 basic_string_view<char8_t>.
167 * testsuite/21_strings/char_traits/requirements/char8_t/65049.cc:
168 New test cloned from char16_t/65049.cc; validates that
169 char_traits<char8_t> is not vulnerable to the concerns in PR65049.
170 * testsuite/21_strings/char_traits/requirements/char8_t/
171 typedefs.cc: New test cloned from char16_t/typedefs.cc; validates
172 that char_traits<char8_t> member typedefs are present and correct.
173 * testsuite/21_strings/char_traits/requirements/
174 explicit_instantiation/char8_t/1.cc: New test cloned from
175 char16_t/1.cc; validates explicit instantiation of
176 char_traits<char8_t>.
177 * testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned
178 from char16_t.cc: validates
179 codecvt<char16_t, char8_t, mbstate_t>.
180 * testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned
181 from char32_t.cc: validates
182 codecvt<char32_t, char8_t, mbstate_t>.
183 * testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from
184 utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and
185 codecvt<char32_t, char8_t, std::mbstate_t>.
186 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: New
187 test cloned from string.cc; validates filesystem::path construction
188 from char8_t input.
189 * testsuite/experimental/feat-char8_t.cc: New test; validates that
190 the __cpp_lib_char8_t feature test macro is defined with the
191 correct value.
192 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
193 New test cloned from string.cc; validates filesystem::path
194 construction from char8_t input.
195 * testsuite/experimental/string_view/literals/types-char8_t.cc: New
196 test cloned from types.cc; validates operator""sv for char8_t
197 returns u8string_view.
198 * testsuite/experimental/string_view/literals/values-char8_t.cc:
199 New test cloned from values.cc; validates construction and
200 comparison of u8string_view values.
201 * testsuite/experimental/string_view/requirements/
202 explicit_instantiation/char8_t/1.cc: New test cloned from
203 char16_t/1.cc; validates explicit instantiation of
204 basic_string_view<char8_t>.
205 * testsuite/ext/char8_t/atomic-1.cc: New test; validates that
206 ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not
207 enabled.
208
25694c85 2092019-02-19 Tom Honermann <tom@honermann.net>
210
211 P0482R5 char8_t: Standard library support
212 * config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
213 typeinfo symbols for char8_t.
214 * config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
215 (GLIBCXX_3.4.26): Add symbols for specializations of
216 numeric_limits and codecvt that involve char8_t.
217 (CXXABI_1.3.12): Add typeinfo symbols for char8_t.
218 * include/bits/atomic_base.h: Add atomic_char8_t.
219 * include/bits/basic_string.h: Add std::hash<u8string> and
220 operator""s(const char8_t*, size_t).
221 * include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
222 __cpp_lib_char8_t.
223 * include/bits/char_traits.h: Add char_traits<char8_t>.
224 * include/bits/codecvt.h: Add
225 codecvt<char16_t, char8_t, mbstate_t>,
226 codecvt<char32_t, char8_t, mbstate_t>,
227 codecvt_byname<char16_t, char8_t, mbstate_t>, and
228 codecvt_byname<char32_t, char8_t, mbstate_t>.
229 * include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
230 recognize char8_t as an integral type.
231 * include/bits/fs_path.h: (path::__is_encoded_char): Recognize
232 char8_t.
233 (path::u8string): Return std::u8string when char8_t support is
234 enabled.
235 (path::generic_u8string): Likewise.
236 (path::_S_convert): Handle conversion from char8_t input.
237 (path::_S_str_convert): Likewise.
238 * include/bits/functional_hash.h: Add hash<char8_t>.
239 * include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
240 char8_t.
241 * include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
242 for new char8_t specializations.
243 * include/bits/localefwd.h: Add missing declarations of
244 codecvt<char16_t, char, mbstate_t> and
245 codecvt<char32_t, char, mbstate_t>. Add char8_t declarations
246 codecvt<char16_t, char8_t, mbstate_t> and
247 codecvt<char32_t, char8_t, mbstate_t>.
248 * include/bits/postypes.h: Add u8streampos
249 * include/bits/stringfwd.h: Add declarations of
250 char_traits<char8_t> and u8string.
251 * include/c_global/cstddef: Add __byte_operand<char8_t>.
252 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
253 Recognize char8_t.
254 (path::u8string): Return std::u8string when char8_t support is
255 enabled.
256 (path::generic_u8string): Likewise.
257 (path::_S_convert): Handle conversion from char8_t input.
258 (path::_S_str_convert): Likewise.
259 * include/experimental/string: Add u8string.
260 * include/experimental/string_view: Add u8string_view,
261 hash<experimental::u8string_view>, and
262 operator""sv(const char8_t*, size_t).
263 * include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
264 * include/std/charconv (__is_int_to_chars_type): Recognize char8_t
265 as a character type.
266 * include/std/limits: Add numeric_limits<char8_t>.
267 * include/std/string_view: Add u8string_view,
268 hash<experimental::u8string_view>, and
269 operator""sv(const char8_t*, size_t).
270 * include/std/type_traits: Add __is_integral_helper<char8_t>,
271 __make_unsigned<char8_t>, and __make_signed<char8_t>.
272 * libsupc++/atomic_lockfree_defines.h: Define
273 ATOMIC_CHAR8_T_LOCK_FREE.
274 * src/c++11/Makefile.am: Compile with -fchar8_t when compiling
275 codecvt.cc and limits.cc so that char8_t specializations of
276 numeric_limits and codecvt and emitted.
277 * src/c++11/Makefile.in: Likewise.
278 * src/c++11/codecvt.cc: Define members of
279 codecvt<char16_t, char8_t, mbstate_t>,
280 codecvt<char32_t, char8_t, mbstate_t>,
281 codecvt_byname<char16_t, char8_t, mbstate_t>, and
282 codecvt_byname<char32_t, char8_t, mbstate_t>.
283 * src/c++11/limits.cc: Define members of
284 numeric_limits<char8_t>.
285 * src/c++98/Makefile.am: Compile with -fchar8_t when compiling
286 locale_init.cc and localename.cc.
287 * src/c++98/Makefile.in: Likewise.
288 * src/c++98/locale_init.cc: Add initialization for the
289 codecvt<char16_t, char8_t, mbstate_t> and
290 codecvt<char32_t, char8_t, mbstate_t> facets.
291 * src/c++98/localename.cc: Likewise.
292 * testsuite/util/testsuite_abi.cc: Validate ABI bump.
293
140615bb 2942019-02-18 Wilco Dijkstra <wdijkstr@arm.com>
295
296 * 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
297 * 27_io/filesystem/operations/resize_file.cc: Likewise.
298 * 27_io/filesystem/path/generation/normal2.cc: Likewise.
299
c677a9d7 3002019-02-14 Jonathan Wakely <jwakely@redhat.com>
301
1bbfe9f8 302 * doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
303 * doc/html/*: Regenerate.
304
b24f00b1 305 * doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
306 * doc/html/*: Regenerate.
307
a3d1baa9 308 * doc/xml/manual/intro.xml: Document LWG 2586 status.
309 * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
310 allocator type in is_constructible checks.
311 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
312 * testsuite/20_util/scoped_allocator/dr2586.cc: New test.
313 * testsuite/20_util/tuple/cons/allocators.cc: Add test using
314 problematic type from LWG 2586 discussion.
315 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
316 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
317
99d130bf 318 * configure.ac: Check for C11 timespec_get function.
319 * crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
320 (openbsd): Likewise
321 * config.h.in: Regenerate.
322 * configure: Regenerate.
323 * include/c_global/ctime (timespec, timespec_get): Add to namespace
324 std for C++17 and up.
325
48772ec3 326 * doc/xml/manual/intro.xml: Document LWG 2537 status.
327 * include/bits/stl_queue.h
328 (priority_queue(const Compare&, const Container&, const Alloc&))
329 (priority_queue(const Compare&, Container&&, const Alloc&)): Call
330 make_heap.
331 * testsuite/23_containers/priority_queue/dr2537.cc: New test.
332
ee32dd64 333 * doc/xml/manual/intro.xml: Document LWG 2566 status.
334 * include/bits/stl_queue.h (queue, priority_queue): Add static
335 assertions to enforce LWG 2566 requirement on value_type.
336 * include/bits/stl_stack.h (stack): Likewise.
337
9724de38 338 PR middle-end/89303
339 * testsuite/20_util/enable_shared_from_this/89303.cc: New test.
340
c677a9d7 341 * doc/xml/manual/intro.xml: Document LWG 2735 status.
342 * include/bits/std_abs.h: Add comment about LWG 2735.
343 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test.
344
4194f872 3452019-02-13 Jonathan Wakely <jwakely@redhat.com>
346
347 PR libstdc++/89345
348 * include/std/version [__cpp_impl_destroying_delete]
349 (__cpp_lib_destroying_delete): Only define for C++2a and later.
350 * libsupc++/new [__cpp_impl_destroying_delete]
351 (__cpp_lib_destroying_delete): Likewise.
352 (destroying_delete_t, destroying_delete): Likewise, but define even
353 when __cpp_impl_destroying_delete is not defined.
354 * testsuite/18_support/destroying_delete.cc: New test.
355
aaacaee2 3562019-02-11 Jonathan Wakely <jwakely@redhat.com>
357
358 PR libstdc++/89023
359 * testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test.
360 * testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test.
361 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test.
362 * testsuite/28_regex/headers/regex/parallel_mode.cc: Remove.
363
5256b0dd 3642019-02-09 Jonathan Wakely <jwakely@redhat.com>
365
366 PR libstdc++/71044
367 * include/bits/fs_path.h (path::has_root_name)
368 (path::has_root_directory, path::has_root_path)
369 (path::has_relative_path, path::has_parent_path)
370 (path::has_filename, path::has_stem, path::has_extension)
371 (path::is_absolute, path::is_relative, path::_M_find_extension): Add
372 noexcept.
373 * src/c++17/fs_path.cc (path::has_root_name)
374 (path::has_root_directory, path::has_root_path)
375 (path::has_relative_path, path::has_parent_path)
376 (path::has_filename, path::_M_find_extension): Add noexcept.
377
e32f625e 3782019-02-06 Jonathan Wakely <jwakely@redhat.com>
379
380 PR libstdc++/89102 (partial)
381 * include/std/type_traits (common_type<>): Define.
382 (common_type<T>): Derive from common_type<T, T>.
383 * testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
384 Test zero-length template argument list.
385 * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
386 Test additional single argument cases.
387 * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
388 Adjust expected error.
389
b03489db 3902019-02-05 Jonathan Wakely <jwakely@redhat.com>
391
e89e4fec 392 PR libstdc++/89128
393 * include/bits/stl_queue.h (queue, priority_queue): Add deduction
394 guides.
395 * include/bits/stl_stack.h (stack): Likewise.
396 * testsuite/23_containers/priority_queue/deduction.cc: New test.
397 * testsuite/23_containers/queue/deduction.cc: New test.
398 * testsuite/23_containers/stack/deduction.cc: New test.
399
b640dd11 400 PR libstdc++/89194
401 * include/std/type_traits (__is_convertible_helper)
402 (__is_convertible_helper<_From, _To, false>): Revert changes to
403 support is_nothrow_convertible.
404 (__is_nt_convertible_helper): New helper.
405 (is_nothrow_convertible): Use __is_nt_convertible_helper.
406
74c88c5f 407 * testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
408 use of CopyConsOnlyType, but also test DelAnyAssign for completeness.
409
eca5e8d4 410 PR libstdc++/89130
411 * include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
412 __is_alloc_insertable_impl. Replace single type member with two
413 members, one for each of copy and move insertable.
414 (__is_move_insertable): New trait for internal use.
415 * include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
416 (vector::_S_nothrow_relocate(true_type)): New functions to
417 conditionally check if __relocate_a can throw.
418 (vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
419 on __is_move_insertable.
420 (vector::_S_do_relocate): New overloaded functions to conditionally
421 call __relocate_a.
422 (vector::_S_relocate): New function that dispatches to _S_do_relocate
423 based on _S_use_relocate.
424 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
425 (vector::_M_default_append): Call _S_relocate instead of __relocate_a.
426 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
427
b03489db 428 PR libstdc++/89090
429 * include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
430 parameter unnamed. Add message to static assertion.
431 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
432 (vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
433 in C++11 code.
434
71625a15 4352019-02-05 Marc Glisse <marc.glisse@inria.fr>
436
437 PR libstdc++/87106
438 * include/bits/stl_uninitialized.h (__is_trivially_relocatable):
439 Rename...
440 (__is_bitwise_relocatable): ... to this.
441 (__relocate_a_1): Adapt.
442 * include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
443 (__is_bitwise_relocatable): ... to this.
444
e7b22e58 4452019-01-30 Jonathan Wakely <jwakely@redhat.com>
446
447 PR libstdc++/89117
448 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from
449 final component as well as from _M_pathname. Append the dot using
450 operator+= instead of only to _M_pathname.
451 (path::_M_find_extension): Reformat slightly.
452 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
453 Add more test cases.
454
dae923a7 4552019-01-30 Ulrich Drepper <drepper@redhat.com>
456
457 * doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
458
710397ad 4592019-01-29 Jonathan Wakely <jwakely@redhat.com>
460
5efc4356 461 * testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect
462 constexpr specifiers from arg and proj.
463
5f15e718 464 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for
465 __shared_ptr instantiations used by gcc4-compatible ABI.
466
307e86fc 467 * include/experimental/forward_list (experimental::erase): Qualify
468 call to erase_if.
469 * include/experimental/list (experimental::erase): Likewise.
470 * include/std/forward_list (std::erase): Likewise.
471 * include/std/list (std::erase): Likewise.
472
38129d1a 473 * testsuite/20_util/reference_wrapper/result_type.cc: Disable for
474 C++2a.
475 * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
476 * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
477 * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
478 * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning.
479 * testsuite/ext/array_allocator/26875.cc: Likewise.
480 * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise.
481 * testsuite/util/replacement_memory_operators.h: Likewise.
482 * testsuite/util/testsuite_allocator.h: Likewise.
483
710397ad 484 * include/std/memory_resource (__pool_resource::_M_unpooled): Use
485 normal mode vector, even for debug mode.
486 * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
487 Define alias template for normal mode vector.
488
70f71249 4892019-01-28 Jonathan Wakely <jwakely@redhat.com>
490
491 PR libstdc++/68737
492 * config/locale/generic/c_locale.h (__convert_from_v)
493 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
494 * config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
495 * include/bits/locale_facets.tcc (num_put::_M_insert_float)
496 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
497
f1074115 4982019-01-24 Jonathan Wakely <jwakely@redhat.com>
499
4bc4fd90 500 PR libstdc++/88840
501 * include/bits/stl_vector.h (vector::__use_relocate): Replace static
502 data member with static member function _S_use_relocate().
503 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
504 (vector::_M_default_append): Use _S_use_relocate() instead of
505 __use_relocate.
506
f1074115 507 * testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
508 sign of results.
509
1c4657a3 5102019-01-22 Jonathan Wakely <jwakely@redhat.com>
511
512 PR libstdc++/88740
513 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
514 write to stderr instead of using printf.
515
dafe8c59 5162019-01-21 Jakub Jelinek <jakub@redhat.com>
517
518 PR libstdc++/86590
519 * include/bits/char_traits.h (__constant_string_p,
520 __constant_char_array_p): Use __builtin_is_constant_evaluated if
521 available.
522
eaf966f3 5232019-01-20 Ulrich Drepper <drepper@redhat.com>
524
525 Implement C++20 P0600r1.
526 * include/backward/hash_map: Add nodiscard attribute to empty.
527 * include/backward/hash_set: Likewise.
528 * backward/hashtable.h: Likewise.
529 * include/bits/basic_string.h: Likewise.
530 * include/bits/forward_list.h: Likewise.
531 * include/bits/hashtable.h: Likewise.
532 * include/bits/regex.h: Likewise.
533 * include/bits/stl_deque.h: Likewise.
534 * include/bits/stl_list.h: Likewise.
535 * include/bits/stl_map.h: Likewise.
536 * include/bits/stl_multimap.h: Likewise.
537 * include/bits/stl_multiset.h: Likewise.
538 * include/bits/stl_queue.h: Likewise.
539 * include/bits/stl_set.h: Likewise.
540 * include/bits/stl_stack.h: Likewise.
541 * include/bits/stl_tree.h: Likewise.
542 * include/bits/stl_vector.h: Likewise.
543 * include/bits/unordered_map.h: Likewise.
544 * include/bits/unordered_set.h: Likewise.
545 * include/debug/array: Likewise.
546 * include/experimental/any: Likewise.
547 * include/experimental/bits/fs_path.h: Likewise.
548 * include/experimental/internet: Likewise.
549 * include/experimental/string_view: Likewise.
550 * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
551 Likewise.
552 * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
553 Likewise.
554 * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
555 Likewise.
556 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
557 Likewise.
558 * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
559 Likewise.
560 * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
561 Likewise.
562 * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
563 Likewise.
564 * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
565 Likewise.
566 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
567 info_fn_imps.hpp: Likewise.
568 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
569 left_child_next_sibling_heap_.hpp: Likewise.
570 * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
571 Likewise.
572 * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
573 Likewise.
574 * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
575 Likewise.
576 * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
577 Likewise.
578 * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
579 Likewise.
580 * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
581 Likewise.
582 * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
583 Likewise.
584 * include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
585 * include/ext/pb_ds/trie_policy.hpp: Likewise.
586 * include/ext/rope: Likewise.
587 * include/ext/slist: Likewise.
588 * include/ext/vstring.h: Likewise.
589 * include/profile/array: Likewise.
590 * include/std/array: Likewise.
591 * include/tr1/array: Likewise.
592 * include/tr1/hashtable.h: Likewise.
593 * include/tr1/regex: Likewise.
594 * include/tr2/dynamic_bitset: Likewise.
595 * include/bits/alloc_traits.h: Add nodiscard attribute to
596 allocate.
597 * include/experimental/memory_resource: Likewise.
598 * include/ext/alloc_traits.h: Likewise.
599 * include/ext/array_allocator.h: Likewise.
600 * include/ext/bitmap_allocator.h: Likewise.
601 * include/ext/debug_allocator.h: Likewise.
602 * include/ext/extptr_allocator.h: Likewise.
603 * include/ext/mt_allocator.h: Likewise.
604 * include/ext/new_allocator.h: Likewise.
605 * include/ext/pool_allocator.h: Likewise.
606 * include/ext/throw_allocator.h: Likewise.
607 * include/std/scoped_allocator: Likewise.
608 * libsupc++/eh_alloc.cc: Likewise.
609 * include/std/future: Add nodiscard attribute to async.
610 * libsupc++/new: Add nodiscard attribute to new.
611
3c1c2a8c 6122019-01-18 Jonathan Wakely <jwakely@redhat.com>
613
614 PR libstdc++/87514
615 PR libstdc++/87520
616 PR libstdc++/88782
617 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
618 * include/bits/shared_ptr.h
619 (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
620 (allocate_shared): Change to use new tag type.
621 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
622 Declare new member function.
623 (_Sp_alloc_shared_tag): Define new type.
624 (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
625 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
626 _Sp_make_shared_tag::_S_eq to check type_info.
627 (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
628 Constrain to prevent being called with _Sp_alloc_shared_tag.
629 (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
630 Replace constructor with ...
631 (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
632 reference parameter so address of the new object can be returned to
633 the caller. Obtain the allocator from the tag type.
634 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
635 constructor with ...
636 (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
637 to the __shared_count constructor.
638 (__allocate_shared): Change to use new tag type.
639 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.
640
21a962b2 6412019-01-17 Jonathan Wakely <jwakely@redhat.com>
642
464ac146 643 * src/c++17/fs_ops.cc
644 (equivalent(const path&, const path&, error_code&))
645 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to
646 compare files instead of relying on incomplete info returned by stat.
647
2987a93d 648 PR libstdc++/88884
649 * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
650 if the path is already absolute.
651 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory.
652 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.
653
21a962b2 654 PR libstdc++/88881
655 * src/c++17/fs_ops.cc (canonical(const path&, error_code&))
656 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
657 of filesystem::exists.
658 (create_directories(const path&, error_code&)): Add assertions.
659 (status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
660 Add workaround for bug in _wstat for paths with trailing slash.
661 * testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
662 for expected behaviour on mingw.
663 * testsuite/experimental/filesystem/operations/create_directories.cc:
664 Likewise.
665 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
666 "TMP" instead of "TMPDIR" and clean environment before each test. Do
667 not test permissions on mingw targets.
668
93478c9f 6692019-01-16 Jonathan Wakely <jwakely@redhat.com>
670
671 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream
672 constructors and open members taking wide strings. Fix patterns for
673 filesystem::path members to match wstring_view parameters. Add
674 exports for shared_ptr members used by directory iterators.
675 * src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the
676 error code parameter if the file doesn't exist.
677 * src/filesystem/ops.cc (remove(const path&, error_code&)):
678 Likewise.
679 * testsuite/27_io/filesystem/operations/canonical.cc: Fix expected
680 values for mingw targets, where "/" is not an absolute path. Do not
681 test symlinks on mingw targets.
682 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
683 * testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks
684 on mingw targets.
685 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
686 * testsuite/27_io/filesystem/operations/create_directories.cc: Check
687 that each component of the path is created.
688 * testsuite/experimental/filesystem/operations/create_directories.cc:
689 Likewise.
690 * testsuite/27_io/filesystem/operations/exists.cc: Do not test
691 permissions on mingw targets.
692 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
693 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
694 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
695 * testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for
696 mingw targets.
697 * testsuite/experimental/filesystem/operations/permissions.cc:
698 Likewise.
699 * testsuite/27_io/filesystem/operations/remove.cc: Do not test
700 symlinks or permissions on mingw targets.
701 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
702 * testsuite/27_io/filesystem/operations/remove_all.cc: Do not test
703 symlinks on mingw targets.
704 * testsuite/experimental/filesystem/operations/remove_all.cc:
705 Likewise.
706 * testsuite/27_io/filesystem/operations/status.cc: Do not test
707 permissions on mingw targets.
708 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not
709 test symlinks on mingw targets.
710 * testsuite/experimental/filesystem/operations/space.cc: Fix test
711 for mingw targets.
712
af93b844 7132019-02-14 Ulrich Drepper <drepper@redhat.com>
714
715 PR libstdc++/88738
716 Warn about unused comparisons of shared_ptr/unique_ptr
717 * include/bits/c++config [_GLIBCXX_NODISCARD]: Define.
718 * include/bits/shared_ptr.h: Use it for operator ==, !=,
719 <, <=, >, >= for shared_ptr.
720 * include/bits/unique_ptr.h: Likewise for unique_ptr.
721
8793c0de 7222019-01-15 Jonathan Wakely <jwakely@redhat.com>
723
afa61572 724 * include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define
725 as 201611L, because P0497R0 changes are supported.
726 * include/std/version (__cpp_lib_shared_ptr_arrays): Likewise.
727
feb89906 728 * include/bits/erase_if.h [__cplusplus > 201703L]
729 (__cpp_lib_erase_if): Only define for C++2a.
730 * include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
731 (__cpp_lib_null_iterators): Define.
732 * include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
733 (__cpp_lib_null_iterators): Define.
734 [__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define.
735
d253bcb1 736 * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
737 status.
738 * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
739 Define.
740 * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
741 changes are supported.
742 * include/std/optional (__cpp_lib_optional): Likewise.
743 * include/std/variant (__cpp_lib_variant): Likewise.
744 * include/std/version [!__STRICT_ANSI__]
745 (__cpp_lib_uncaught_exceptions): Define as long integer.
746 [__cplusplus >= 201703L] (__cpp_lib_any)
747 (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
748 (__cpp_lib_variant): Define for C++17.
749 [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
750 as long integer.
751 * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
752 integer.
753
8793c0de 754 * doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
755
a8cd4b2b 7562019-01-12 Jonathan Wakely <jwakely@redhat.com>
757
758 PR libstdc++/88811
759 PR libstdc++/83306
760 * src/filesystem/path.cc: Fix typo. If first path is empty, show []
761 before second path.
762 * testsuite/experimental/filesystem/filesystem_error/cons.cc: New
763 test.
764
a5b1332c 7652019-01-11 Jonathan Wakely <jwakely@redhat.com>
766
656ac8b7 767 * doc/xml/manual/intro.xml: Include new section.
768 * doc/xml/manual/status_cxx2017.xml: Document more
769 implementation-defined properties of the library.
770 * doc/xml/manual/status_cxx2020.xml: Document C++2a status.
771 * doc/html/*: Regenerate.
772
f5480b8c 773 * include/bits/refwrap.h [__cplusplus > 201703L]
774 (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base)
775 (_Reference_wrapper_base_memfun): Do not define for C++2a.
776 (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun
777 for C++2a.
778 (reference_wrapper::operator()): Add static assertion.
779 * testsuite/20_util/reference_wrapper/incomplete.cc: New test.
780
36496c4d 781 * include/std/chrono (duration_values::zero(), duration_values::min())
782 (duration_values::max()): Add noexcept.
783 (duration::zero(), duration::min(), duration::max()): Likewise.
784 (time_point::zero(), time_point::min(), time_point::max()): Likewise.
785 * testsuite/20_util/duration/requirements/noexcept.cc: New test.
786 * testsuite/20_util/time_point/requirements/noexcept.cc: New test.
787
a5b1332c 788 * include/std/version (__cpp_lib_erase_if): Move to C++20 group.
789
d9de68bc 7902019-01-11 Jakub Jelinek <jakub@redhat.com>
791
792 * include/std/type_traits (__cpp_lib_is_constant_evaluated): Define.
793 * include/std/version (__cpp_lib_is_constant_evaluated): Define.
794
beb370cb 7952019-01-11 Jonathan Wakely <jwakely@redhat.com>
796
1d628fd4 797 PR libstdc++/88802
798 * include/bits/functional_hash.h (hash<nullptr_t>): Define
799 specialization for C++17 (P0513R0, LWG 2817).
800 * testsuite/20_util/hash/nullptr.cc: New test.
801
a18b3766 802 PR libstdc++/88125
803 * config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate
804 pattern for std::basic_stringbuf::str().
805
beb370cb 806 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to
807 basic_ostream::operator<< patterns.
808
cbbb35ec 8092019-01-10 Jonathan Wakely <jwakely@redhat.com>
810
1715824b 811 * testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
812 test failures on targets with 32-bit time_t.
813
f5529091 814 * include/bits/erase_if.h: Define __cpp_lib_erase_if.
815 * include/std/deque: Likewise.
816 * include/std/forward_list: Likewise.
817 * include/std/list: Likewise.
818 * include/std/string: Likewise.
819 * include/std/vector: Likewise.
820 * include/std/version: Likewise.
821 * testsuite/21_strings/basic_string/erasure.cc: Test macro.
822 * testsuite/23_containers/deque/erasure.cc: Likewise.
823 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
824 * testsuite/23_containers/list/erasure.cc: Likewise.
825 * testsuite/23_containers/map/erasure.cc: Likewise.
826 * testsuite/23_containers/set/erasure.cc: Likewise.
827 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
828 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
829 * testsuite/23_containers/vector/erasure.cc: Likewise.
830
cbbb35ec 831 * include/experimental/internet [AI_NUMERICSERV]
832 (resolver_base::numeric_service): Define conditionally.
833 * testsuite/experimental/net/internet/resolver/base.cc: Test it
834 conditionally.
835 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
836 Likewise.
837
ac9a8436 8382019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com>
839 Jonathan Wakely <jwakely@redhat.com>
840
841 Implement LWG 2221
842 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
843 (GLIBCXX_3.4.26): Add new exports.
844 * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
845 correct list of sources.
846 * include/Makefile.in: Regenerate.
847 * include/std/ostream (operator<<(nullptr_t)): New member function.
848 * src/c++17/ostream-inst.cc: New file.
849 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
850 test.
851
5f027941 8522019-01-10 Jonathan Wakely <jwakely@redhat.com>
853
854 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name
855 of the source file containing the caller.
856 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
857 directories created by test.
858 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
859 Likewise.
860 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
861 Likewise.
862 * testsuite/experimental/filesystem/iterators/
863 recursive_directory_iterator.cc: Likewise.
864
3273d2e6 8652019-01-10 Jakub Jelinek <jakub@redhat.com>
866
867 PR tree-optimization/88775
868 * include/bits/stl_function.h (greater<_Tp*>::operator(),
869 less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
870 less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
871 instead of __builtin_constant_p if available. Don't bother with
872 the pointer comparison in C++11 and earlier.
873
f4d3c071 8742019-01-09 Sandra Loosemore <sandra@codesourcery.com>
875
876 PR other/16615
877
878 * include/ext/bitmap_allocator.h: Mechanically replace "can not"
879 with "cannot".
880
8eba10af 8812019-01-09 Jonathan Wakely <jwakely@redhat.com>
882
6a6ade9f 883 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output
884 for filesystem::path. Give variables more distinctive names.
885
41cda271 886 * include/std/optional (_Optional_payload_base::_M_copy_assign): New
887 member function to perform non-trivial assignment.
888 (_Optional_payload_base::_M_move_assign): Likewise.
889 (_Optional_payload<T, true, false, true>::operator=)
890 (_Optional_payload<T, true, true, false>::operator=)
891 (_Optional_payload<T, true, false, false>::operator=): Call
892 _M_copy_assign and/or _M_move_assign to do non-trivial assignments.
893
8eba10af 894 PR libstdc++/88204
895 * testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
896 test std::complex<long double> if long double format is IBM128.
897 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
898 Likewise.
899
64a50f48 9002019-01-08 Jonathan Wakely <jwakely@redhat.com>
901
73f3ad16 902 * testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
903 for old std::unique_ptr layout.
904 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test
905 to become valueless. Add filesystem::path tests.
906
58e897da 907 PR libstdc++/87855
908 * include/std/optional (_Optional_payload_base): New class template
909 for common code hoisted from _Optional_payload specializations. Use
910 a template for the union, to allow a partial specialization for
911 types with non-trivial destructors. Add constructors for in-place
912 initialization to the union.
913 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct
914 to perform non-trivial copy construction, instead of relying on
915 non-standard copy elision in a delegating constructor.
916 (_Optional_payload(bool, _Optional_payload&&)): Likewise for
917 non-trivial move construction.
918 (_Optional_payload): Derive from _Optional_payload_base and use it
919 for everything except the non-trivial assignment operators, which are
920 defined as needed.
921 (_Optional_payload<false, C, M>): Derive from the specialization
922 _Optional_payload<true, false, false> and add a destructor.
923 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset):
924 Forward to corresponding members of _Optional_payload.
925 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get):
926 Hoist common members from _Optional_base.
927 (_Optional_base): Make all members and base class public.
928 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to
929 _Optional_base_impl.
930 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add
931 support for new std::optional layout.
932 * testsuite/libstdc++-prettyprinters/compat.cc: New test.
933
64a50f48 934 PR libstdc++/88066
935 * include/bits/locale_conv.h: Use <> for includes not "".
936 * include/ext/random: Likewise.
937 * include/ext/vstring.h: Likewise.
938
95b40931 9392019-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
940
941 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns.
942 (GLIBCXX_3.4.21): Likewise.
943
fa00ec77 9442019-01-08 Jonathan Wakely <jwakely@redhat.com>
945
946 PR libstdc++/88749
947 * src/filesystem/ops.cc (last_write_time): Fix preprocessor condition
948 to match the one that controls whether utimbuf and utime are declared.
949
3f304b2d 9502019-01-07 Jonathan Wakely <jwakely@redhat.com>
951
fc6ac813 952 PR libstdc++/87787
953 * include/bits/char_traits.h (char_traits::move): Do not pass null
954 pointers to memmove.
955 * include/bits/locale_facets.h
956 (ctype<char>::widen(const char*, const char*, char*)): Do not
957 pass null pointers to memcpy.
958 (ctype<char>::narrow(const char*, const char*, char, char*)):
959 Likewise.
960 (ctype<char>::do_widen(const char*, const char*, char*)):
961 Likewise.
962 (ctype<char>::do_narrow(const char*, const char*, char, char*)):
963 Likewise.
964
bbc66c45 965 * doc/xml/manual/spine.xml: Update copyright years.
966 * doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
967 * doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
968 for C++17 filesystem library.
969 * doc/html/*: Regenerate.
970
3f304b2d 971 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate.
972 * config.h.in: Regenerate.
973 * config/abi/pre/gnu.ver: Order patterns for filesystem operations
974 alphabetically and add missing entries for copy_symlink,
975 hard_link_count, rename, and resize_file.
976 * configure: Regenerate.
977 * src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is
978 used unconditionally.
979 * src/filesystem/ops-common.h (__gnu_posix::truncate)
980 [!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only
981 supports truncating to zero length.
982 * testsuite/27_io/filesystem/operations/all.cc: New test.
983 * testsuite/27_io/filesystem/operations/resize_file.cc: New test.
984
0ebb0980 9852019-01-06 Jonathan Wakely <jwakely@redhat.com>
986
3935f409 987 PR libstdc++/86756
988 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
989 lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
990 * config.h.in: Regenerate.
991 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
992 remaining std::filesystem types and functions.
993 * configure: Regenerate.
994 * src/c++17/Makefile.am: Add C++17 filesystem sources.
995 * src/c++17/Makefile.in: Regenerate.
996 * src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
997 here, and change name of included file.
998 * src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
999 here, and change name of included file.
1000 * src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
1001 path to dir-common.h.
1002 * src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
1003 path to ops-common.h. Disable -Wunused-parameter warnings.
1004 (internal_file_clock): Define unconditionally.
1005 [!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
1006 define.
1007 (do_copy_file, do_space): Move definitions to ops.common.h.
1008 (copy, file_size, hard_link_count, last_write_time, space): Only
1009 perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
1010 report an error.
1011 (last_write_time, read_symlink): Remove unused attributes from
1012 parameters.
1013 * src/filesystem/Makefile.am: Remove C++17 filesystem sources.
1014 * src/filesystem/Makefile.in: Regenerate.
1015 * src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
1016 * src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
1017 * src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
1018 * src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
1019 * src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
1020 dummy types and functions instead of using #error.
1021 * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
1022 * src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
1023 in terms of stat.
1024 [!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
1025 (do_copy_file, do_space): Move definitions here from std-ops.cc.
1026 * src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
1027 to account for new namespace.
1028 * testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
1029 -lstdc++fs from dg-options.
1030 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
1031 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1032 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1033 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1034 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1035 Likewise.
1036 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1037 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1038 Likewise.
1039 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1040 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1041 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1042 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1043 * testsuite/27_io/filesystem/operations/create_directories.cc:
1044 Likewise.
1045 * testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
1046 * testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
1047 * testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
1048 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1049 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1050 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
1051 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1052 * testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
1053 * testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
1054 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
1055 * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
1056 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
1057 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1058 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1059 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
1060 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1061 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1062 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1063 Likewise.
1064 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
1065
1066
c6e37a9f 1067 PR libstdc++/86756
1068 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
1069 typeinfo and vtables less greedy.
1070 (GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
1071 * src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
1072 * src/c++17/Makefile.in: Regenerate.
1073 * src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
1074 here, and change name of included file.
1075 * src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
1076 * src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
1077 from sources.
1078 * src/filesystem/Makefile.in: Regenerate.
1079 * src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
1080 * src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
1081 * testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
1082 from dg-options and remove dg-require-filesystem-ts.
1083 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
1084 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
1085 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
1086 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
1087 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1088 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
1089 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
1090 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
1091 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
1092 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
1093 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
1094 * testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
1095 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
1096 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
1097 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
1098 * testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
1099 * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
1100 * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
1101 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
1102 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
1103 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
1104 Likewise.
1105 * testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
1106 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
1107 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
1108 * testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
1109 * testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
1110 * testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
1111 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
1112 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
1113 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
1114 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
1115 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
1116 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1117 Likewise.
1118 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
1119 Likewise.
1120 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1121 Likewise.
1122 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
1123 Likewise.
1124 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
1125 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1126 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
1127 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
1128 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1129 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
1130 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
1131 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
1132 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
1133 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1134 Likewise.
1135 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
1136 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
1137 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1138 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
1139 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
1140
8815ac91 1141 PR libstdc++/87431
1142 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
1143 Check is_trivially_copyable instead of is_scalar.
1144 (variant::emplace<N, Args>(Args&&...)): If construction of the new
1145 contained value can throw and its type is trivially copyable then
1146 construct into a temporary variant and move from it, to provide the
1147 strong exception safety guarantee.
1148 (variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
1149 Likewise.
1150 * testsuite/20_util/variant/87431.cc: New test.
1151 * testsuite/20_util/variant/run.cc: Adjust test so that throwing
1152 conversion causes valueless state.
1153
0ebb0980 1154 PR libstdc++/88607
1155 * testsuite/17_intro/headers/c++1998/charset.cc: New test.
1156 * testsuite/17_intro/headers/c++2011/charset.cc: New test.
1157 * testsuite/17_intro/headers/c++2014/charset.cc: New test.
1158 * testsuite/17_intro/headers/c++2017/charset.cc: New test.
1159 * testsuite/17_intro/headers/c++2020/charset.cc: New test.
1160
adc6beee 11612019-01-05 Jonathan Wakely <jwakely@redhat.com>
1162
1163 * include/bits/fs_fwd.h (__file_clock): Define new clock.
1164 (file_time_type): Redefine in terms of __file_clock.
1165 * src/filesystem/ops-common.h (file_time): Add FIXME comment about
1166 overflow.
1167 * src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
1168 internal linkage.
1169 (internal_file_lock): New helper type for accessing __file_clock.
1170 (do_copy_file): Use internal_file_lock to convert system time to
1171 file_time_type.
1172 (last_write_time(const path&, error_code&)): Likewise.
1173 (last_write_time(const path&, file_time_type, error_code&)): Likewise.
1174
6b4a77f2 11752019-01-04 Jonathan Wakely <jwakely@redhat.com>
1176
98185b9f 1177 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
1178 for const member functions of std::basic_string.
1179 (GLIBCXX_3.4.26): Export member functions of std::basic_string added
1180 in C++17.
1181 * include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
1182 Make non-standard constructor private.
1183 [!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
1184 Likewise.
1185 * include/bits/basic_string.tcc (std::string, std::wstring): Declare
1186 explicit instantiations for C++17 as well as earlier dialects.
1187 * src/c++17/Makefile.am: Add new source files.
1188 * src/c++17/Makefile.in: Regenerate.
1189 * src/c++17/cow-string-inst.cc: New file defining explicit
1190 instantiations for basic_string member functions added in C++17.
1191 * src/c++17/string-inst.cc: Likewise.
1192
859e6fed 1193 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
1194 copy/move constructors for old std::basic_string.
1195 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1196 (basic_string::reference, basic_string::const_reference): Define
1197 as plain references for C++11 and later.
1198 (basic_string::basic_string()): Put constructor body outside
1199 preprocessor conditional groups.
1200 (basic_string::basic_string(basic_string&&)): Move _Alloc_hider
1201 instead of copying it.
1202 (basic_string::basic_string(const basic_string&, const _Alloc&)):
1203 Define.
1204 (basic_string::basic_string(basic_string&&, const _Alloc&)):
1205 Define.
1206 * include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
1207 cases for old basic_string.
1208 * testsuite/21_strings/basic_string/cons/char/8.cc: Test
1209 allocator-extended constructors unconditionally. Add extra members to
1210 allocator type when using old string ABI.
1211 * testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
1212 for old string ABI.
1213 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1214
e13f6a7f 1215 * testsuite/23_containers/list/61347.cc: Avoid spurious failure when
1216 -fno-inline added to test flags.
1217
a18fccd0 1218 * testsuite/21_strings/basic_string/requirements/
1219 explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
1220
7f77ca07 1221 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
1222 assertion failures with old std::string ABI.
1223
9346fb0e 1224 * include/bits/fs_path.h (path::_List::erase): Replace both overloads
1225 with ...
1226 (path::pop_back(), path::_M_erase_from(const_iterator)): New member
1227 functions that will only erase elements at the end.
1228 * src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
1229 (path::_List::_Impl::_M_erase_from(const_iterator)): Define.
1230 (path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
1231 of erase(p, end()).
1232 (path::_List::pop_back()): Define.
1233 (path::_List::_M_erase_from(const_iterator)): Define.
1234 (path::operator/=(const path&)): Use pop_back to remove last component
1235 and _M_erase_from to remove multiple components.
1236 (path::_M_append(basic_string_view<value_type>)): Likewise.
1237 (path::operator+=(const path&)): Likewise.
1238 (path::_M_concat(basic_string_view<value_type>)): Likewise.
1239 (path::remove_filename()): Likewise.
1240 (path::lexically_normal()): Use _List::_Impl iterators instead of
1241 path::iterator. Use pop_back to remove components from the end. Clear
1242 trailing filename, instead of using erase(const_iterator) to remove
1243 a non-final component.
1244 * testsuite/27_io/filesystem/path/generation/normal.cc: Test
1245 additional cases.
1246 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
1247
24230cab 1248 * src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
1249 incorrect treatment of empty filename after trailing slash.
1250 * testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
1251
6b4a77f2 1252 * testsuite/21_strings/basic_string/modifiers/assign/char/
1253 move_assign_optim.cc: Avoid spurious failure when -fno-inline added
1254 to test flags.
1255 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
1256 move_assign_optim.cc: Likewise.
1257
02df5941 12582019-01-03 Jonathan Wakely <jwakely@redhat.com>
1259 Jakub Jelinek <jakub@redhat.com>
1260
1261 PR libstdc++/88607
1262 * include/experimental/memory: Replace UTF-8 quote characters.
1263 * include/std/future: Replace UTF-8 "em dash" characters.
1264
f8ad40d8 12652019-01-03 Jonathan Wakely <jwakely@redhat.com>
1266
9013258b 1267 PR libstdc++/88607
1268 * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
1269 * include/debug/forward_list: Likewise.
1270 * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
1271 character.
1272 * include/experimental/chrono: Likewise.
1273 * include/experimental/functional: Likewise.
1274 * include/experimental/ratio: Likewise.
1275 * include/experimental/system_error: Likewise.
1276 * include/experimental/tuple: Likewise.
1277 * include/experimental/type_traits: Likewise.
1278 * include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
1279 * include/parallel/multiseq_selection.h: Likewise.
1280
f8ad40d8 1281 PR libstdc++/88681
1282 * config/abi/pre/gnu.ver: Add missing exports.
1283 * testsuite/22_locale/collate_byname/88681.cc: New test.
1284 * testsuite/22_locale/time_get/get/char/88681.cc: New test.
1285 * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
1286
138292f4 12872019-01-02 Jonathan Wakely <jwakely@redhat.com>
1288
553d41a8 1289 * testsuite/23_containers/map/cons/deduction.cc: Test deduction from
1290 initializer_list<value_type> and from input iterator ranges.
1291 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1292
138292f4 1293 * testsuite/experimental/string_view/element_access/char/empty.cc:
1294 Fix year range in copyright header.
1295
963c0125 12962019-01-02 Joel Brobecker <brobecker@adacore.com>
1297
1298 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1299 Fix year range in copyright header.
1300
fbd26352 13012019-01-01 Jakub Jelinek <jakub@redhat.com>
d353bf18 1302
1303 Update copyright years.
fb96fbb3 1304\f
fbd26352 1305Copyright (C) 2019 Free Software Foundation, Inc.
fb96fbb3 1306
1307Copying and distribution of this file, with or without modification,
1308are permitted in any medium without royalty provided the copyright
1309notice and this notice are preserved.