]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
59976bd4b74afdccb9aecb336704c0a44a2ccf9d
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2
3 PR libstdc++/62045
4 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
5 (is_heap): Remove.
6 (push_heap): Remove the wrong checking using is_heap.
7 (make_heap): Remove the assertion using is_heap.
8 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
9 (modify): Ditto.
10 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
11 calling make_heap.
12
13 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
14
15 PR libstdc++/62045
16 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
17 New test.
18 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
19 error in comment.
20
21 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
22
23 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
24 comment.
25 * config.h.in: Regenerate.
26 * configure: Regenerate.
27 * doc/Makefile.in: Regenerate.
28
29 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
30
31 PR libstdc++/79162
32 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
33 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
34 with a constrained template.
35 [!_GLIBCXX_USE_CXX11_ABI]
36 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
37 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
38 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
39
40 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
41
42 PR libstdc++/80034
43 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
44 in the catch-block.
45 (merge(list&&, _StrictWeakOrdering)): Likewise.
46 * testsuite/23_containers/list/operations/80034.cc: New.
47
48 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
49
50 Implement LWG 2806, Base class of bad_optional_access.
51 * include/std/optional (bad_optional_access):
52 Derive from std::exception.
53 (bad_optional_access::bad_optional_access): Adjust.
54 (bad_optional_access::what): New.
55 (__throw_bad_optional_access(const char*)):
56 Remove the parameter and adjust calls.
57 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
58 * testsuite/20_util/optional/typedefs.cc: Likewise.
59
60 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
61
62 Implement LWG 2934, optional<const T> doesn't compare with T.
63 * include/std/optional
64 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
65 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
66 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
67 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
68 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
69 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
70 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
71 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
72 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
73 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
74 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
75 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
76 (operator==(const optional<_Tp>&, const _Tp&)):
77 Turn into operator==(const optional<_Tp>&, const _Up&).
78 (operator==(const _Tp&, const optional<_Tp>&)):
79 Turn into operator==(const _Up&, const optional<_Tp>&).
80 (operator!=(const optional<_Tp>&, const _Tp&)):
81 Turn into operator!=(const optional<_Tp>&, const _Up&).
82 (operator!=(const _Tp&, const optional<_Tp>&)):
83 Turn into operator!=(const _Up&, const optional<_Tp>&).
84 (operator<(const optional<_Tp>&, const _Tp&)):
85 Turn into operator<(const optional<_Tp>&, const _Up&).
86 (operator<(const _Tp&, const optional<_Tp>&)):
87 Turn into operator<(const _Up&, const optional<_Tp>&).
88 (operator>(const optional<_Tp>&, const _Tp&)):
89 Turn into operator>(const optional<_Tp>&, const _Up&).
90 (operator>(const _Tp&, const optional<_Tp>&)):
91 Turn into operator>(const _Up&, const optional<_Tp>&).
92 (operator<=(const optional<_Tp>&, const _Tp&)):
93 Turn into operator<=(const optional<_Tp>&, const _Up&).
94 (operator<=(const _Tp&, const optional<_Tp>&)):
95 Turn into operator<=(const _Up&, const optional<_Tp>&).
96 (operator>=(const optional<_Tp>&, const _Tp&)):
97 Turn into operator>=(const optional<_Tp>&, const _Up&).
98 (operator>=(const _Tp&, const optional<_Tp>&)):
99 Turn into operator>=(const _Up&, const optional<_Tp>&).
100 * testsuite/20_util/optional/relops/7.cc: New.
101
102 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
103
104 * testsuite/17_intro/names.cc: Undefine macros that clash with
105 identifiers in AIX system headers.
106
107 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
108 result_of, and __is_nothrow_invocable instead of
109 __is_nothrow_callable.
110 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
111 instead of __is_callable.
112 * include/std/functional (invoke): use invoke_result_t instead of
113 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
114 (_Not_fn): Use __invoke_result instead of result_of.
115 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
116 Remove partial specializations for reference_wrapper types.
117 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
118 (__invoke_result): Define replacement for result_of and then use it to
119 define result_of.
120 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
121 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
122 respectively.
123 (invoke_result, invoke_result_t): Define for C++17.
124 (is_callable, is_nothrow_callable): Replace with is_invocable,
125 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
126 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
127 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
128 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
129 instead of is_nothrow_callable_v.
130 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
131 main function.
132 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
133 instead of is_callable.
134 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
135 to use new traits.
136 * testsuite/20_util/is_notjrow_callable/*: Likewise.
137 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
138 is_callable.
139 * testsuite/20_util/variant/hash.cc: Likewise.
140
141 2017-03-10 George Lander <george.lander@arm.com>
142
143 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
144 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
145 * configure: Regenerate.
146
147 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
148
149 * include/std/functional (_Not_fn): Define macro to simplify
150 repetitive function definitions.
151
152 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
153 * include/c_global/cstddef (std::byte): Define for C++17.
154 * testsuite/18_support/byte/global_neg.cc: New test.
155 * testsuite/18_support/byte/ops.cc: New test.
156 * testsuite/18_support/byte/requirements.cc: New test.
157
158 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
159
160 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
161 * doc/html/*: Regenerate.
162 * include/std/mutex (scoped_lock): Implement new C++17 template.
163 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
164 * testsuite/30_threads/scoped_lock/requirements/
165 explicit_instantiation.cc: New test.
166 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
167
168 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
169 François Dumont <frs.dumont@gmail.com>
170 Jonathan Wakely <jwakely@redhat.com>
171
172 * doc/xml/manual/debug_mode.xml: Update and simplify note
173 on link- and run-time coexistence.
174
175 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
176
177 * testsuite/17_intro/headers/names.cc: Rename to ...
178 * testsuite/17_intro/names.cc: ... here.
179
180 PR libstdc++/79789
181 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
182 parameters and local variables.
183 * include/bits/ios_base.h (make_error_code, make_error_condition):
184 Likewise.
185 * include/bits/list.tcc (list::sort): Likewise.
186 * include/bits/mask_array.h (mask_array): Likewise.
187 * include/bits/regex.h (regex_token_iterator): Likewise.
188 * include/bits/slice_array.h (slice_array): Likewise.
189 * include/bits/stl_algo.h (__sample): Likewise.
190 * include/std/memory (undeclare_no_pointers): Likewise.
191 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
192 Likewise.
193 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
194 * testsuite/17_intro/headers/names.cc: New test.
195
196 PR libstdc++/79798
197 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
198 result_of that loses top-level cv-qualifiers.
199 * testsuite/20_util/bind/79798.cc: New test.
200
201 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
202
203 * doc/xml/manual/documentation_hacking.xml: Tweak link to
204 doxygen.org.
205
206 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
207
208 * include/experimental/iterator: Include <iterator>.
209 * testsuite/experimental/iterator/requirements.cc: Check for contents
210 of <iterator>.
211
212 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
213
214 C++17 GB50 resolution
215 * include/std/chrono (duration::operator++()): Add
216 _GLIBCXX17_CONSTEXPR.
217 (duration::operator++(int)): Likewise.
218 (duration::operator--()): Likewise.
219 (duration::operator--(int)): Likewise.
220 (duration::operator+=(const duration&)): Likewise.
221 (duration::operator-=(const duration&)): Likewise.
222 (duration::operator*=(const rep&)): Likewise.
223 (duration::operator/=(const rep&)): Likewise.
224 (duration::operator%=(const rep&)): Likewise.
225 (duration::operator%=(const duration&)): Likewise.
226 (time_point::operator+=(const duration&)): Likewise.
227 (time_point::operator-=(const duration&)): Likewise.
228 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
229 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
230 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
231
232 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
233
234 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
235
236 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
237
238 * doc/xml/manual/io.xml: Update link to groups.google.com.
239 Tweak link description.
240
241 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
242
243 * doc/xml/manual/profile_mode.xml: Fix link.
244
245 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
246
247 * doc/xml/manual/policy_data_structures.xml: Simplify and
248 standardize references to boost.org.
249 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
250 * doc/xml/manual/shared_ptr.xml: Ditto.
251
252 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
253
254 PR libstdc++/60936
255 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
256 written to buffer, not length remaining in buffer.
257
258 2017-02-15 Tim Shen <timshen@google.com>
259
260 PR libstdc++/78723
261 * include/std/variant (operator<(), operator>(), operator<=(),
262 operator>=(), operator==(), operator!=()): Implement P0393R3.
263 * testsuite/20_util/variant/compile.cc: Adjust tests.
264 * testsuite/20_util/variant/run.cc: Adjust tests.
265
266 2017-02-15 Tim Shen <timshen@google.com>
267
268 PR libstdc++/79513
269 * include/std/variant (visit()): Forward variant types to the return
270 type detection code.
271 * testsuite/20_util/variant/compile.cc: Add test cases.
272
273 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
274
275 PR libstdc++/79348
276 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
277
278 2017-02-13 Jakub Jelinek <jakub@redhat.com>
279
280 PR libstdc++/79348
281 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
282 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
283 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
284 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
285 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
286 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
287 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
288 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
289 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
290
291 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
292
293 PR libstdc++/79486
294 * include/std/future (__future_base::_Task_state::_M_run)
295 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
296 result_of expressions.
297 * testsuite/30_threads/packaged_task/79486.cc: New.
298
299 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
300
301 PR libstdc++/79467
302 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
303 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
304 __is_callable check.
305 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
306
307 * include/bits/atomic_base.h: Re-indent.
308
309 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
310
311 * doc/xml/manual/profile_mode.xml: Update a paper reference.
312
313 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
314
315 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
316
317 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
318
319 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
320 name.
321 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
322 broken links to texts that are no longer online.
323 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
324 LCPC 2006 paper.
325 * doc/xml/manual/using.xml: Update links to memory model information.
326 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
327 Standard-Library Exception Safety".
328 * doc/html/*: Regenerate.
329
330 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
331
332 * doc/xml/manual/profile_mode.xml: Unbreak link to
333 "Optimizing Sorting with Machine Learning Algorithms".
334
335 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
336
337 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
338
339 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
340
341 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
342 Migration Guide".
343
344 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
345
346 * doc/html/ext/lwg-active.html: Remove.
347 * doc/html/ext/lwg-closed.html: Ditto.
348 * doc/html/ext/lwg-defects.html: Ditto.
349
350 * doc/Makefile.am (xml_extradir): Remove.
351 (xml_extra): Ditto.
352 (stamp-html-docbook-lwg): Remove recipe...
353 (stamp-html-docbook-data): ...and its use here.
354 * doc/Makefile.in: Regenerate.
355
356 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
357 the relationship to the upstream working group.
358 Replace a local link to ../ext/lwg-active.html by the upstream one.
359 Replace all reference to ../ext/lwg-defects.html by a new entity
360 &DR; which refers to the upstream address.
361
362 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
363
364 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
365
366 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
367
368 PR libstdc++/79323
369 * testsuite/20_util/duration/literals/range.cc: Prune extra output
370 at -O0.
371
372 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
373
374 * doc/xml/manual/documentation_hacking.xml: Update URL of the
375 DocBook Element Reference. Use that term as link description
376 instead of "online".
377 epubcheck has moved to GitHub.
378 Remove obsolete link to DocBook Publishing Tools.
379
380 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
381
382 PR libstdc++/66145
383 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
384 so new ios::failure can be caught even when old ABI is the default.
385 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
386 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
387 exceptions_failbit.cc: Likewise.
388 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
389 exceptions_failbit.cc: Likewise.
390 * testsuite/27_io/basic_istream/extractors_other/char/
391 exceptions_null.cc: Likewise.
392 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
393 exceptions_null.cc: Likewise.
394 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
395 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
396 * testsuite/27_io/basic_ostream/inserters_other/char/
397 exceptions_null.cc: Likewise.
398 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
399 exceptions_null.cc: Likewise.
400 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
401
402 PR libstdc++/60936
403 * src/c++11/Makefile.am: Add new files.
404 * src/c++11/Makefile.in: Regenerate.
405 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
406 (operator<<, operator>>, getline): Move explicit instantiations to ...
407 * src/c++11/cow-string-io-inst.cc: ... new file.
408 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
409 (operator<<, operator>>, getline): Move explicit instantiations to ...
410 * src/c++11/cow-wstring-io-inst.cc: ... new file.
411 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
412 (__throw_future_error, __throw_bad_function_call):
413 (__throw_regex_error): Move functions for C++11 exceptions to the
414 files that define the exception types.
415 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
416 * src/c++11/future.cc (__throw_future_error): Likewise.
417 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
418 * src/c++11/regex.cc (__throw_regex_error): Likewise.
419 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
420 representation directly instead of calling __int_to_char.
421 * src/c++11/sso_string.cc (__sso_string): New file for definition
422 of __sso_string type.
423 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
424 explicit instantiations of narrow string I/O functions.
425 * src/c++11/system_error.cc (__throw_system_error): Move here.
426 (__sso_string): Move to new file.
427 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
428 explicit instantiations of wide string I/O functions.
429 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
430 (operator>>, getline): Remove explicit instantiations from here.
431
432 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
433
434 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
435
436 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
437
438 * configure.host: Separate Solaris/SPARC and x86 baselines.
439 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
440 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
441 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
442 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
443 ... here.
444 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
445 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
446 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
447 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
448 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
449 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
450 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
451 ... here.
452 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
453 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
454 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
455
456 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
457 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
458 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
459 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
460 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
461 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
462
463 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
464
465 PR libstdc++/78346
466 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
467 not its referent.
468 (_Iter_comp_to_iter): Likewise.
469 * testsuite/25_algorithms/search/78346.cc: New test.
470
471 PR libstdc++/79254
472 * config/abi/pre/gnu.ver: Remove recently added symbols.
473 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
474 (basic_string::_M_copy_assign): Remove.
475 (basic_string::operator=(const basic_string&)): Don't dispatch to
476 _M_copy_assign. If source object is small just deallocate, otherwise
477 perform new allocation before making any changes.
478 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
479 (basic_string::_M_copy_assign(const basic_string&, true_type)):
480 Remove.
481 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
482 Test cases where the allocators are equal or the string is small.
483 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
484 Likewise.
485
486 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
487
488 Implement LWG 2825, LWG 2756 breaks class template argument
489 deduction for optional.
490 * include/std/optional: Add a deduction guide.
491 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
492
493 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
494
495 PR libstdc++/79254
496 * config/abi/pre/gnu.ver: Add new symbols.
497 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
498 (basic_string::_M_copy_assign): New overloaded functions to perform
499 copy assignment.
500 (basic_string::operator=(const basic_string&)): Dispatch to
501 _M_copy_assign.
502 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
503 (basic_string::_M_copy_assign(const basic_string&, true_type)):
504 Define, performing rollback on exception.
505 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
506 Test exception-safety guarantee.
507 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
508 Likewise.
509 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
510 std::swap visible.
511
512 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
513
514 PR libstdc++/70607
515 * include/tr1/complex (conj): Remove using-declaration and restore
516 overloads, reverting previous change.
517
518 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
519 mode.
520 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
521 Mark as unsupported in C++98 mode.
522 * testsuite/23_containers/queue/requirements/constructible.cc:
523 Likewise.
524 * testsuite/23_containers/stack/requirements/constructible.cc:
525 Likewise.
526 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
527
528 PR libstdc++/79243
529 * include/bits/c++config (literals::string_view_literals::__7): Add.
530 Only declare versioned namespaces for the relevant C++ dialects.
531 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
532 Add versioning macros.
533 * include/experimental/bits/lfts_config.h:
534 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
535 * include/experimental/string_view (fundamentals_v2::__detail):
536 Add versioning macros.
537 (fundamentals_v2::__detail::__identity): Remove.
538 (fundamentals_v2::__detail::__idt): Use common_type instead of
539 __detail::__identity.
540 * include/std/string_view (__detail::__identity, __detail::__idt):
541 Likewise.
542 (literals::string_view_literals): Fix nesting of versioning macros.
543
544 PR libstdc++/79190
545 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
546 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
547 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
548 Retrieve original pointer value allocated by malloc.
549 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
550 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
551 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
552 Define, adjusting pointer value allocated by malloc and storing for
553 retrieval by operator delete.
554
555 2017-01-26 Jakub Jelinek <jakub@redhat.com>
556
557 * libsupc++/eh_atomics.h: Update copyright years.
558 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
559
560 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
561
562 PR libstdc++/61791
563 PR libstdc++/70607
564 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
565 (proj(T), conj(T)): Change return types per DR 1522.
566 * include/tr1/complex (conj): Remove overloads and use std::conj.
567 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
568 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
569 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
570 real(T) and imag(T). Allow testing for C++11 too.
571
572 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
573
574 PR libstdc++/79206
575 * include/experimental/string_view (operator==): Check sizes first.
576 * include/std/string_view (operator==): Likewise.
577
578 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
579
580 * testsuite/experimental/array/make_array.cc: Restore <functional>
581 inclusion.
582
583 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
584
585 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
586
587 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
588
589 PR libstdc++/79195
590 * include/experimental/array (__make_array_elem): New class template
591 and partial specialization.
592 (__is_reference_wrapper): Move into __make_array_elem specialization.
593 (make_array): Use __make_array_elem to determine element type and move
594 static assertion into specialization. Qualify std::forward call.
595 (to_array): Add exception specifiation.
596 * testsuite/experimental/array/make_array.cc: Test argument types
597 without a common type.
598 * testsuite/experimental/array/neg.cc: Adjust expected error message.
599
600 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
601
602 * doc/xml/manual/debug.xml: code.google.com uses https now.
603
604 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
605
606 * doc/xml/manual/test.xml: Fix link into gccint online manual.
607
608 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
609
610 Make poisoned hashes SFINAE away the call operator of the hash.
611 * include/bits/functional_hash.h
612 (__poison_hash::__enable_hash_call): New.
613 * include/std/optional (__optional_hash_call_base): New.
614 (hash<optional<_Tp>>): Derive from the new base,
615 move the hash function into that base.
616 * include/std/variant (__variant_hash_call_base_impl): New.
617 (__variant_hash_call_base): Likewise.
618 (hash<variant<_Types...>>): Derive from the new base,
619 move the hash function into that base.
620 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
621 * testsuite/20_util/variant/hash.cc: Likewise.
622
623 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
624
625 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
626 * configure: Regenerate.
627
628 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
629
630 PR libstdc++/69240
631 * include/bits/random.h (uniform_real_distribution::param_type)
632 (normal_distribution::param_type, lognormal_distribution::param_type)
633 (gamma_distribution::param_type, chi_squared_distribution::param_type)
634 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
635 (student_t_distribution::param_type)
636 (bernoulli_distribution::param_type, binomial_distribution::param_type)
637 (geometric_distribution::param_type)
638 (negative_binomial_distribution::param_type)
639 (poisson_distribution::param_type)
640 (exponential_distribution::param_type)
641 (weibull_distribution::param_type)
642 (extreme_value_distribution::param_type)
643 (discrete_distribution::param_type)
644 (piecewise_constant_distribution::param_type)
645 (piecewise_linear_distribution::param_type): Define operator!=.
646 * include/bits/uniform_int_dist.h
647 (uniform_int_distribution::param_type): Likewise.
648 * include/ext/random (beta_distribution::param_type)
649 (rice_distribution::param_type, nakagami_distribution::param_type)
650 (pareto_distribution::param_type, k_distribution::param_type)
651 (arcsine_distribution::param_type, hoyt_distribution::param_type)
652 (triangular_distribution::param_type)
653 (von_mises_distribution::param_type)
654 (hypergeometric_distribution::param_type)
655 (logistic_distribution::param_type)
656 (uniform_on_sphere_distribution::param_type)
657 (uniform_inside_sphere_distribution::param_type): Likewise.
658 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
659 Test construction with param_type.
660 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
661 Likewise.
662 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
663 Likewise.
664 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
665 Likewise.
666 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
667 Likewise.
668 * testsuite/26_numerics/random/extreme_value_distribution/cons/
669 parms.cc: Likewise.
670 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
671 Likewise.
672 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
673 Likewise.
674 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
675 Likewise.
676 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
677 Likewise.
678 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
679 parms.cc: Likewise.
680 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
681 Likewise.
682 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
683 Likewise.
684 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
685 Likewise.
686 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
687 Likewise.
688 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
689 Likewise.
690 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
691 Likewise.
692 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
693 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
694 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
695 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
696 Likewise.
697 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
698 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
699 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
700 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
701 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
702 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
703 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
704 Likewise.
705 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
706 parms.cc: Likewise.
707 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
708
709 PR libstdc++/72792
710 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
711 (__allocator_traits_base::__size_type): Remove.
712 (allocator_traits::_Ptr): New class template to detect const and void
713 pointer types without instantiating pointer_traits::rebind
714 unnecessarily.
715 (allocator_traits::_Diff): Likewise for detecting difference_type.
716 (allocator_traits::_Size): New class template to detect size_type
717 without instantiating make_unsigned unnecessarily.
718 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
719 __detected_or_t instead of __detected_or_t_.
720 * include/std/type_traits (__detected_or_t_): Remove.
721 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
722
723 PR libstdc++/72792
724 PR libstdc++/72793
725 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
726 Replace with class template using void_t.
727 (__alloc_rebind): Define in terms of
728 __allocator_traits_base::__rebind.
729 (allocator_traits): Remove unconditional static_assert for
730 rebind_alloc.
731 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
732 (pointer_traits::__rebind): Replace with class template using void_t.
733 (pointer_traits::rebind): Define in terms of __rebind.
734 (pointer_traits): Remove unconditional static_assert for rebind.
735 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
736 * testsuite/20_util/pointer_traits/rebind.cc: New test.
737
738 PR libstdc++/69321
739 * include/experimental/any (__any_caster): Avoid instantiating
740 manager function for types that can't be stored in any.
741 * include/std/any (__any_caster): Likewise.
742 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
743 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
744
745 PR libstdc++/64903
746 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
747 std::advance.
748
749 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
750
751 PR libstdc++/79156
752 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
753 Fix return type.
754 (__enable_shared_from_this): Declare __shared_ptr as a friend.
755 * testsuite/ext/shared_ptr/1.cc: New test.
756
757 PR libstdc++/64903
758 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
759 point.
760 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
761
762 * doc/xml/manual/abi.xml: Fix typo.
763 * doc/html/manual/abi.html: Likewise.
764
765 PR libstdc++/67085
766 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
767 converting constructors from _Iter_less_iter.
768 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
769 _Iter_comp_iter.
770 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
771 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
772 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
773 (__make_heap, __sort_heap): Change _Compare parameters to references.
774 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
775 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
776 functions as lvalues.
777 (is_heap): Call __is_heap_until directly to avoid copying __comp.
778 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
779 count copies during construction with empty sequence.
780
781 PR libstdc++/67085
782 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
783 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
784 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
785 number of copies.
786 * testsuite/25_algorithms/make_heap/movable.cc: New test.
787
788 PR libstdc++/67085
789 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
790 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
791 _GLIBCXX_MOVE when passing comparison function to other functions.
792 (is_heap_until, is_heap): Use std::move when passing comparison
793 function.
794 * testsuite/23_containers/priority_queue/67085.cc: New test.
795
796 PR libstdc++/78905
797 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
798 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
799 Document that the deprecated _GLIBCXX_VERSION macro was removed for
800 the 4.0.0 release.
801 * doc/html/*: Regenerate.
802 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
803 * include/Makefile.in: Regenerate.
804 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
805 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
806 dg-error.
807
808 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
809
810 PR libstdc++/69301
811 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
812 aligned buffer instead of default-initialized variable.
813 * testsuite/29_atomics/atomic/69301.cc: New test.
814 * include/experimental/memory (observer_ptr::release): Use reserved
815 name.
816 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
817 (_Pointer_adapter::operator--(int)): Likewise.
818
819 PR libstdc++/68925
820 * include/experimental/random (randint): Use temporary instead of
821 thread_local static.
822
823 2017-01-17 Joshua Conner <joshconner@google.com>
824
825 * crossconfig.m4: Add fuchsia OS.
826 * configure: Regenerate.
827
828 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
829
830 PR libstdc++/69699
831 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
832 __GLIBCXX__ macro is not useful. Remove redundant date information
833 and link to the GCC release timeline.
834 (abi.versioning.active): Move partial sentence into the previous
835 paragraph.
836 * doc/html/*: Regenerate.
837
838 PR libstdc++/79114
839 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
840 of remove_reference.
841 * testsuite/18_support/nested_exception/79114.cc: New test.
842
843 2017-01-17 Jakub Jelinek <jakub@redhat.com>
844
845 PR other/79046
846 * configure.ac: Add GCC_BASE_VER.
847 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
848 get version from BASE-VER file.
849 * po/Makefile.in: Regenerated.
850 * libsupc++/Makefile.in: Regenerated.
851 * testsuite/Makefile.in: Regenerated.
852 * src/Makefile.in: Regenerated.
853 * configure: Regenerated.
854 * Makefile.in: Regenerated.
855 * include/Makefile.in: Regenerated.
856 * doc/Makefile.in: Regenerated.
857 * python/Makefile.in: Regenerated.
858 * src/c++11/Makefile.in: Regenerated.
859 * src/c++98/Makefile.in: Regenerated.
860 * src/filesystem/Makefile.in: Regenerated.
861
862 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
863
864 PR libstdc++/66145
865 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
866 exceptions.
867 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
868 for test, so new ios::failure can be caught.
869 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
870 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
871 exceptions_failbit.cc: Likewise.
872 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
873 exceptions_failbit.cc: Likewise.
874 * testsuite/27_io/basic_istream/extractors_other/char/
875 exceptions_null.cc: Likewise.
876 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
877 exceptions_null.cc: Likewise.
878 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
879 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
880 * testsuite/27_io/basic_ostream/inserters_other/char/
881 exceptions_null.cc: Likewise.
882 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
883 exceptions_null.cc: Likewise.
884 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
885
886 PR libstdc++/78702
887 * include/bits/locale_classes.h (locale::facet::__shim): Change from
888 private to protected.
889 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
890 make locale::facet::__shim accessible.
891
892 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
893
894 PR libstdc++/78389
895 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
896 (merge(list&&, _StrictWeakOrdering)): Likewise.
897 * testsuite/23_containers/list/operations/78389.cc: Add
898 better test for the sizes.
899
900 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
901
902 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
903 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
904 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
905 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
906 Likewise.
907 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
908 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
909 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
910 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
911 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
912 Likewise.
913 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
914 Likewise.
915 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
916 Likewise.
917 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
918 Likewise.
919 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
920 Likewise.
921 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
922 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
923 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
924 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
925 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
926 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
927 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
928 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
929 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
930 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
931 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
932 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
933 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
934
935 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
936
937 PR libstdc++/65411
938 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
939 retry fclose on EINTR.
940
941 * include/profile/base.h: Remove unused header that leads to header
942 cycle in C++17 mode.
943
944 PR libstdc++/79075
945 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
946 Make _If_sv private.
947 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
948 basic_string_view arguments.
949
950 PR libstdc++/79075
951 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
952 redundant option from cxxflags.
953 (check_effective_target_cxx11-abi): Define.
954 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
955 effective target.
956 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
957 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
958 Likewise.
959 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
960 Likewise.
961 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
962 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
963 Likewise.
964 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
965 Likewise.
966 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
967 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
968 Likewise.
969 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
970 Likewise.
971 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
972 Likewise.
973 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
974 Likewise.
975 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
976 Likewise.
977 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
978 Likewise.
979 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
980 Likewise.
981 * testsuite/23_containers/list/61347.cc: Likewise.
982 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
983 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
984
985 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
986
987 PR libstdc++/78389
988 * include/bits/list.tcc (merge(list&&)):
989 Adjust list sizes if the comparator throws.
990 (merge(list&&, _StrictWeakOrdering)): Likewise.
991 (sort()): Splice elements back from the scratch buffers
992 if the comparator throws.
993 (sort(_StrictWeakOrdering)): Likewise.
994 * testsuite/23_containers/list/operations/78389.cc: New.
995
996 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
997
998 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
999 XFAIL for C++17 until node reinsertion supports fancy pointers.
1000
1001 PR libstdc++/78361
1002 * testsuite/20_util/add_pointer/value.cc: Test forming function
1003 pointers.
1004
1005 2017-01-13 Michael Brune <lucdanton@free.fr>
1006
1007 PR libstdc++/78361
1008 * include/std/type_traits (__is_referenceable): Handle noexcept
1009 function types.
1010
1011 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1012
1013 PR libstdc++/77528
1014 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1015 member-initializers and define default constructors as templates with
1016 constraints.
1017 * include/bits/stl_stack.h (stack): Likewise.
1018 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1019 New.
1020 * testsuite/23_containers/priority_queue/requirements/
1021 explicit_instantiation/1.cc: Test more instantiations.
1022 * testsuite/23_containers/priority_queue/requirements/
1023 explicit_instantiation/1_c++98.cc: Likewise.
1024 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1025 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1026
1027 PR libstdc++/66284
1028 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1029 * doc/html/*: Regenerate.
1030 * include/std/functional (_Function_base::_Ref_manager): Remove.
1031 (_Function_handler): Remove partial specializations for
1032 reference_wrapper.
1033 (function::target): Remove special case for const qualification.
1034 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1035 * testsuite/20_util/function/7.cc: Likewise.
1036 * testsuite/20_util/function/8.cc: Likewise.
1037
1038 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1039
1040 PR libstdc++/78134
1041 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1042 (map::equal_range): Fix return type of heterogeneous overloads.
1043 * include/bits/stl_multimap.h (multimap::lower_bound)
1044 (multimap::upper_bound, multimap::equal_range): Likewise.
1045 * include/bits/stl_multiset.h (multiset::lower_bound)
1046 (multiset::upper_bound, multiset::equal_range): Likewise.
1047 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1048 (set::equal_range): Likewise.
1049 * testsuite/23_containers/map/operations/2.cc
1050 * testsuite/23_containers/multimap/operations/2.cc
1051 * testsuite/23_containers/multiset/operations/2.cc
1052 * testsuite/23_containers/set/operations/2.cc
1053
1054 PR libstdc++/78273
1055 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1056 the heterogeneous comparison can only find one match.
1057 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1058 * testsuite/23_containers/map/operations/2.cc: Test count works with
1059 comparison function that just partitions rather than sorting.
1060 * testsuite/23_containers/set/operations/2.cc: Likewise.
1061
1062 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1063
1064 Reduce the size of variant, it doesn't need an index of
1065 type size_t internally.
1066 * include/std/variant (parse_numbers.h): New include.
1067 (__select_index): New.
1068 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1069 _index_type for comparison with variant_npos.
1070 (_Variant_storage<false, _Types...>::__index_type): New.
1071 (_Variant_storage<false, _Types...>::_M_index): Change the
1072 type from size_t to __index_type.
1073 (_Variant_storage<true, _Types...>::__index_type): New.
1074 (_Variant_storage<true, _Types...>::_M_index): Change the
1075 type from size_t to __index_type.
1076 (_Variant_base::_M_valid): Use _Storage::__index_type
1077 for comparison with variant_npos.
1078 (variant::index): Use _Base::_Storage::__index_type
1079 for comparison with variant_npos.
1080 * testsuite/20_util/variant/index_type.cc: New.
1081
1082 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1083
1084 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1085 effective target selector to prevent running in C++17 mode.
1086
1087 PR libstdc++/77528
1088 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1089 (queue::queue()): Add constructor and define as defaulted.
1090 (queue::queue(_Sequence&&)): Remove default argument.
1091 (priority_queue::c, priority_queue::comp): Add default member
1092 initializers.
1093 (priority_queue::priority_queue()): Add constructor and define as
1094 defaulted.
1095 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1096 Remove default argument for first parameter.
1097 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1098 (stack::stack()): Add constructor and define as defaulted.
1099 (stack::stack(const _Sequence&)): Remove default argument.
1100 * testsuite/23_containers/priority_queue/requirements/
1101 explicit_instantiation/1.cc: Test explicit instantiation with
1102 non-DefaultConstructible sequence.
1103 * testsuite/23_containers/priority_queue/77528.cc: New test.
1104 * testsuite/23_containers/priority_queue/requirements/
1105 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1106 * testsuite/23_containers/queue/77528.cc: New test.
1107 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1108 1.cc: Test explicit instantiation with non-DefaultConstructible
1109 sequence.
1110 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1111 1_c++0x.cc: Replace with 1_c++98.cc.
1112 * testsuite/23_containers/stack/77528.cc: New test.
1113 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1114 1.cc: Test explicit instantiation with non-DefaultConstructible
1115 sequence.
1116 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1117 1_c++0x.cc: Replace with 1_c++98.cc.
1118
1119 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1120
1121 * include/bits/locale_facets_nonio.tcc
1122 (time_get::_M_extract_via_format): Avoid compilation errors with
1123 non-standard struct tm.
1124
1125 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1126 Jonathan Wakely <jwakely@redhat.com>
1127
1128 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1129 (is_specialization, strip_versioned_namespace): New helpers functions
1130 to work with symbols in the versioned namespace.
1131 (Printer.add_version): Add second name using versioned namespace.
1132 (add_one_template_type_printer, add_one_type_printer): Add second
1133 type printers using versioned namespace.
1134 (register_type_printers): Add template type printer for basic_string.
1135 (build_libstdcxx_dictionary): Remove dead code.
1136 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1137 versioned namespace.
1138 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1139 results.
1140 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1141
1142 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1143
1144 PR libstdc++/79017
1145 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1146 functions separately on darwin and if they're missing define
1147 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1148 * config.h.in: Regenerate.
1149 * configure: Regenerate.
1150 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1151 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1152
1153 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1154 to detect correct thread_local destructors.
1155 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1156 Define.
1157
1158 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1159 Aditya Kumar <hiraditya@msn.com>
1160
1161 PR libstdc++/66414
1162 * include/bits/basic_string.tcc
1163 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1164
1165 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1166
1167 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1168 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1169
1170 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1171 Include <cassert> header.
1172
1173 PR libstdc++/78968
1174 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1175 * configure: Regenerate.
1176
1177 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1178 Jonathan Wakely <jwakely@redhat.com>
1179
1180 * include/std/variant (variant, swap): Replace __and_ usage with fold
1181 expressions.
1182
1183 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1184
1185 PR go/78978
1186 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1187 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1188 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1189 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1190 HWCAP_FLAGS.
1191 * aclocal.m4: Regenerate.
1192 * configure: Regenerate.
1193 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1194 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1195 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1196 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1197
1198 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1199
1200 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1201
1202 PR libstdc++/78991
1203 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1204 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1205 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1206 move function objects.
1207 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1208 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1209 * testsuite/25_algorithms/sort/78991.cc: New test.
1210
1211 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1212
1213 * include/bits/std_function.h (function::_Signature_type): Remove.
1214 (function::function(_Functor)): Adjust.
1215
1216 2017-01-05 Tim Shen <timshen@google.com>
1217
1218 PR libstdc++/78996
1219 * include/std/variant (__gen_vtable_impl): rename __unused to
1220 __dimensions to avoid naming conflict.
1221
1222 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1223
1224 PR libstdc++/78968
1225 * config.h.in: Regenerate.
1226 * configure: Likewise.
1227 * configure.ac: Check for __cxa_thread_atexit.
1228 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1229 Don't define __cxa_thread_atexit if libc provides it.
1230
1231 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1232
1233 Implement 2801, Default-constructibility of unique_ptr.
1234 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1235 (unique_ptr::_DeleterConstraint): Likewise.
1236 (unique_ptr()): Constrain.
1237 (unique_ptr(pointer)): Likewise.
1238 (unique_ptr(nullptr_t)): Likewise.
1239 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1240 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1241 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1242 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1243 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1244 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1245 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1246 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1247
1248 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1249 Jonathan Wakely <jwakely@redhat.com>
1250
1251 PR libstdc++/64735
1252 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1253 * config.h.in: Regenerate.
1254 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1255 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1256 exports for exception_ptr, nested_exception, and future conditional.
1257 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1258 exports for exception_ptr, nested_exception, and future conditional.
1259 * configure: Regenerate.
1260 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1261 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1262 * libsupc++/eh_atomics.h: New file for internal use only.
1263 (__eh_atomic_inc, __eh_atomic_dec): New.
1264 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1265 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1266 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1267 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1268 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1269 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1270 * libsupc++/exception_ptr.h: Likewise.
1271 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1272 * libsupc++/nested_exception.cc: Remove check for
1273 ATOMIC_INT_LOCK_FREE.
1274 * libsupc++/nested_exception.h: Likewise.
1275 * src/c++11/future.cc: Likewise.
1276 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1277 * testsuite/18_support/nested_exception/*: Likewise.
1278 * testsuite/30_threads/async/*: Likewise.
1279 * testsuite/30_threads/future/*: Likewise.
1280 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1281 * testsuite/30_threads/packaged_task/*: Likewise.
1282 * testsuite/30_threads/promise/*: Likewise.
1283 * testsuite/30_threads/shared_future/*: Likewise.
1284
1285 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1286
1287 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1288 defaults to https; adjust reference.
1289
1290 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1291
1292 PR libstdc++/78956
1293 * include/std/thread (thread(const thread&&)): Add deleted
1294 constructor.
1295 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1296
1297 * doc/xml/manual/spine.xml: Update copyright years.
1298 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1299 * doc/xml/manual/test.xml: Likewise.
1300 * doc/html/*: Regenerate.
1301
1302 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1303
1304 * doc/xml/faq.xml: Update address of C++ ABI link.
1305 * doc/xml/manual/abi.xml: Ditto.
1306
1307 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1308
1309 Update copyright years.
1310 \f
1311 Copyright (C) 2017 Free Software Foundation, Inc.
1312
1313 Copying and distribution of this file, with or without modification,
1314 are permitted in any medium without royalty provided the copyright
1315 notice and this notice are preserved.