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