libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.
[gcc.git] / libstdc++-v3 / ChangeLog
1 2017-10-24 François Dumont <fdumont@gcc.gnu.org>
2
3 * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
4 c++config.h include.
5 (check_v3_target_normal_namespace): New.
6 * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
7 * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
8 * testsuite/20_util/from_chars/requirements.cc: Likewise.
9 * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
10 * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
11 * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
12 * testsuite/20_util/to_chars/requirements.cc: Likewise.
13 * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
14 * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
15 * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
16 * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
17 * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
18 * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
19 * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
20 * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
21 * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
22 * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
23 * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
24 * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
25 * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
26 * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
27 * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
28 * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
29 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
30 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
31 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
32 * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
33 * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
34 * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
35 * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
36 * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
37 * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
38 * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
39 * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
40 * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
41
42 2017-10-24 Jonathan Wakely <jwakely@redhat.com>
43
44 * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
45 -Wattribute-alias warnings.
46 * src/c++11/istream-inst.cc: Likewise.
47 * src/c++11/locale-inst.cc: Likewise.
48 * src/c++11/ostream-inst.cc: Likewise.
49 * src/c++11/wlocale-inst.cc: Likewise.
50 * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
51
52 * include/bits/string_view.tcc (find_first_of, find_last_of)
53 (find_first_not_of, find_last_not_of): Add noexcept.
54 * include/std/string_view (basic_string_view(const _CharT*))
55 (basic_string_view(const _CharT*, size_type))
56 (front, back, remove_prefix, remove_suffix, find, rfind)
57 (find_first_of, find_first_not_of): Add noexcept.
58 (at(size_type), _S_compare(size_type, size_type)): Replace conditional
59 expressions with if statements.
60 (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
61 Use _M_check for length checks.
62 (compare(basic_string_view)): Reformat.
63 (_M_check(size_type, const char)): Add noexcept(false).
64 (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
65
66 PR libstdc++/82685
67 * include/experimental/string_view (operator""sv): Add noexcept.
68 * include/std/string_view (operator""sv): Likewise.
69
70 2017-10-23 Jonathan Wakely <jwakely@redhat.com>
71
72 * include/Makefile.am: Add new headers for C++17 filesystem library.
73 * include/Makefile.in: Regenerate.
74 * include/bits/fs_dir.h: New header, based on Filesystem TS code in
75 include/experimental/bits directory.
76 * include/bits/fs_fwd.h: Likewise.
77 * include/bits/fs_ops.h: Likewise.
78 * include/bits/fs_path.h: Likewise.
79 * include/experimental/bits/fs_dir.h: Rename Doxygen group.
80 * include/experimental/bits/fs_fwd.h: Likewise.
81 * include/experimental/bits/fs_ops.h: Likewise.
82 * include/experimental/bits/fs_path.h: Likewise.
83 * include/experimental/filesystem (filesystem_error::_M_gen_what):
84 Remove inline definition.
85 * include/precompiled/stdc++.h: Add <filesystem> to precompiled
86 header.
87 * include/std/filesystem: New header.
88 * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
89 paths.
90 * src/filesystem/Makefile.am: Add new files. Compile as C++17.
91 * src/filesystem/Makefile.in: Regenerate.
92 * src/filesystem/cow-dir.cc: Update comment.
93 * src/filesystem/cow-ops.cc: Likewise.
94 * src/filesystem/cow-path.cc: Likewise.
95 * src/filesystem/cow-std-dir.cc: New file.
96 * src/filesystem/cow-std-ops.cc: New file.
97 * src/filesystem/cow-std-path.cc: New file.
98 * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
99 for common code.
100 * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
101 (open_dir): Move to _Dir_base constructor.
102 (get_file_type): Move to dir-common.h.
103 (recurse): Move to _Dir_base::should_recurse.
104 * src/filesystem/ops-common.h: New header for common code.
105 * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
106 (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
107 * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
108 * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
109 * src/filesystem/std-ops.cc: Likewise.
110 * src/filesystem/std-dir.cc: Likewise.
111 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
112 test.
113 * testsuite/27_io/filesystem/iterators/pop.cc: New test.
114 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
115 New test.
116 * testsuite/27_io/filesystem/operations/absolute.cc: New test.
117 * testsuite/27_io/filesystem/operations/canonical.cc: New test.
118 * testsuite/27_io/filesystem/operations/copy.cc: New test.
119 * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
120 * testsuite/27_io/filesystem/operations/create_directories.cc: New
121 test.
122 * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
123 * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
124 * testsuite/27_io/filesystem/operations/current_path.cc: New test.
125 * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
126 * testsuite/27_io/filesystem/operations/exists.cc: New test.
127 * testsuite/27_io/filesystem/operations/file_size.cc: New test.
128 * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
129 * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
130 * testsuite/27_io/filesystem/operations/permissions.cc: New test.
131 * testsuite/27_io/filesystem/operations/proximate.cc: New test.
132 * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
133 * testsuite/27_io/filesystem/operations/relative.cc: New test.
134 * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
135 * testsuite/27_io/filesystem/operations/space.cc: New test.
136 * testsuite/27_io/filesystem/operations/status.cc: New test.
137 * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
138 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
139 test.
140 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
141 * testsuite/27_io/filesystem/path/append/path.cc: New test.
142 * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
143 * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
144 * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
145 * testsuite/27_io/filesystem/path/compare/path.cc: New test.
146 * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
147 * testsuite/27_io/filesystem/path/concat/path.cc: New test.
148 * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
149 * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
150 * testsuite/27_io/filesystem/path/construct/default.cc: New test.
151 * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
152 * testsuite/27_io/filesystem/path/construct/range.cc: New test.
153 * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
154 * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
155 * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
156 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
157 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
158 test.
159 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
160 test.
161 * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
162 * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
163 * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
164 * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
165 * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
166 * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
167 * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
168 * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
169 * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
170 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
171 test.
172 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
173 test.
174 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
175 test.
176 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
177 test.
178 * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
179 * testsuite/27_io/filesystem/path/native/string.cc: New test.
180 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
181 * testsuite/27_io/filesystem/path/query/empty.cc: New test.
182 * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
183 * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
184 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
185 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
186 test.
187 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
188 test.
189 * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
190 * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
191 * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
192 * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
193 * testsuite/experimental/filesystem/path/construct/string_view.cc:
194 Define USE_FILESYSTEM_TS.
195 * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
196 as Filesystem TS.
197
198 PR libstdc++/82644
199 * doc/xml/manual/intro.xml: Include new section.
200 * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
201 status.
202 * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
203 (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
204 * include/c_compatibility/math.h: Import special functions into
205 global namespace for C++17.
206 * testsuite/26_numerics/headers/cmath/82644.cc: New test.
207 * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
208 test.
209
210 2017-10-21 Jonathan Wakely <jwakely@redhat.com>
211
212 * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
213 increment past-the-end iterators.
214
215 2017-10-20 Jonathan Wakely <jwakely@redhat.com>
216
217 * include/std/chrono (__cpp_lib_chrono): Update macro value to
218 indicate support for P0505R0.
219 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
220 for updated macro.
221
222 * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
223 * testsuite/18_support/byte/requirements.cc: Check macro.
224
225 2017-10-19 Jonathan Wakely <jwakely@redhat.com>
226
227 * testsuite/experimental/filesystem/iterators/
228 recursive_directory_iterator.cc: Ensure that error_code arguments are
229 cleared when required.
230 * testsuite/experimental/filesystem/operations/create_directory.cc:
231 Remove redundant check.
232 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
233 Ensure that error_code argument is cleared when required.
234
235 * include/experimental/bits/fs_path.h (path::iterator++(int))
236 (path::iterator--(int)): Fix for paths with only one component.
237 * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
238 post-increment and post-decrement.
239
240 * doc/xml/manual/status_cxx2017.xml: Update references to C++17
241 section numbers.
242
243 * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
244 instead of non-standard glibc one.
245
246 2017-10-16 François Dumont <fdumont@gcc.gnu.org>
247
248 PR libstdc++/82558
249 * include/bits/stl_bvector.h (fill): Add iterator offset check.
250 * testsuite/23_containers/vector/bool/82558.cc: New.
251
252 2017-10-13 Jonathan Wakely <jwakely@redhat.com>
253
254 PR libstdc++/82522
255 * doc/xml/manual/intro.xml: Document LWG 2354 changes.
256 * include/bits/stl_map.h (map::insert(value_type&&))
257 (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
258 * include/bits/stl_multimap.h (multimap::insert(value_type&&))
259 (multimap::insert(const_iterator, value_type&&)): Likewise.
260 * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
261 (unordered_map::insert(const_iterator, value_type&&))
262 (unordered_multimap::insert(value_type&&))
263 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
264 * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
265 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
266 test.
267 * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
268 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
269 test.
270
271 PR libstdc++/82481
272 * include/std/mutex (call_once): Suppress clang-tidy warnings about
273 dangling references.
274
275 2017-10-10 Jonathan Wakely <jwakely@redhat.com>
276
277 * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
278 Update comment about NAD issue.
279
280 PR libstdc++/59087
281 PR libstdc++/82417
282 * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
283 not include C library's <complex.h>.
284 * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
285 * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
286 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
287 * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
288
289 2017-10-05 Jonathan Wakely <jwakely@redhat.com>
290
291 * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
292
293 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
294 François Dumont <fdumont@gcc.gnu.org>
295
296 * include/bits/streambuf_iterator.h
297 (istreambuf_iterator<>::operator*()): Do not capture iterator state
298 in Debug assertion.
299 (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
300 (istreambuf_iterator<>::operator++(int)): Likewise.
301 (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
302 (istreambuf_iterator<>::_S_is_eof()): New.
303 (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
304 (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
305 Return an iterator with _M_c set to eof to capture streambuf state
306 on evaluation.
307 (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
308
309 2017-10-03 Jakub Jelinek <jakub@redhat.com>
310
311 * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
312 !_GLIBCXX_USE_INT128.
313
314 2017-10-02 Jonathan Wakely <jwakely@redhat.com>
315
316 * include/Makefile.am: Add new <charconv> header.
317 * include/Makefile.in: Regenerate.
318 * include/precompiled/stdc++.h: Include <charconv>.
319 * include/std/charconv: New file.
320 (to_chars_result, to_chars, from_chars_result, from_chars): Define.
321 * testsuite/20_util/from_chars/1.cc: New test.
322 * testsuite/20_util/from_chars/1_neg.cc: New test.
323 * testsuite/20_util/from_chars/2.cc: New test.
324 * testsuite/20_util/from_chars/requirements.cc: New test.
325 * testsuite/20_util/to_chars/1.cc: New test.
326 * testsuite/20_util/to_chars/1_neg.cc: New test.
327 * testsuite/20_util/to_chars/2.cc: New test.
328 * testsuite/20_util/to_chars/requirements.cc: New test.
329
330 2017-09-27 François Dumont <fdumont@gcc.gnu.org>
331
332 * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
333 istreambuf_iterator implementation dependent.
334 * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
335
336 2017-09-25 Uros Bizjak <ubizjak@gmail.com>
337
338 PR c/81854
339 * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
340 target as a C++ function with no prototype.
341
342 2017-09-21 Jonathan Wakely <jwakely@redhat.com>
343
344 * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
345 expected results when using predicate defining reverse order.
346 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
347
348 2017-09-20 Jonathan Wakely <jwakely@redhat.com>
349
350 PR libstdc++/79162
351 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
352 (basic_string::_If_sv): Remove from the overload set when the
353 argument is derived from basic_string.
354
355 PR libstdc++/79162
356 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
357 overload set when the argument is derived from basic_string.
358 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
359 test.
360 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
361 New test.
362
363 * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
364 and dg-options directives. Fix invalid test.
365
366 PR libstdc++/81469
367 * libsupc++/exception (uncaught_exception): Deprecate for C++17.
368 * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
369 * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
370
371 * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
372 * include/bits/functional_hash.h (__hash_base::result_type)
373 (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
374 * include/std/optional (hash<optional<T>>::result_type)
375 (hash<optional<T>>::argument_type): Add deprecated attribute.
376 (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
377 * include/std/variant (hash<variant<Types...>>::result_type)
378 (hash<variant<Types...>>::argument_type): Add deprecated attribute.
379 (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
380
381 * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
382 non-standard function.
383
384 PR libstdc++/82262
385 * include/std/optional (__optional_hash_call_base): Add template
386 parameter for remove_const_t<_Tp> and use it consistently.
387 * testsuite/20_util/optional/hash.cc: Test optional<const T>.
388
389 2017-09-19 Jonathan Wakely <jwakely@redhat.com>
390
391 PR libstdc++/71500
392 * include/bits/regex_executor.tcc
393 (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
394 std::__equal4 instead of C++14 4-iterator overloads of std::equal.
395 * include/bits/stl_algobase.h (__equal4): New functions implementing
396 4-iterator overloads of std::equal for use in C++11.
397 (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
398 Move function bodies to new __equal4 functions.
399 * testsuite/28_regex/simple_c++11.cc: New.
400
401 PR libstdc++/82254
402 * include/std/type_traits (__is_invocable): Add partial specialization
403 for INVOKE<void> case and remove is_void<R> check from partial
404 specialization for INVOKE<R> case.
405 (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
406 (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
407 * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
408 conversions that can throw or fail to convert. Use static assert
409 strings to explain negative results.
410 * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
411 is_nothrow_constructible in is_nt_invocable_conv.
412
413 2017-09-18 Jonathan Wakely <jwakely@redhat.com>
414
415 PR libstdc++/81468
416 * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
417 improve static assertion messages.
418
419 * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
420 (_Build_index_tuple, make_integer_sequence): Use built-in to generate
421 pack expansion.
422
423 PR libstdc++/71187
424 * include/std/type_traits (__declval): New function to deduce return
425 type of declval.
426 (__declval_protector::_delegate): Remove.
427 (declval): Use __declval instead of add_rvalue_reference and
428 __declval_protector::__delegate.
429 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
430 lineno.
431 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
432 Likewise.
433 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
434 Likewise.
435
436 2017-09-15 Jakub Jelinek <jakub@redhat.com>
437
438 * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
439 -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead
440 of c++1z and c++17_only instead of c++1z_only. Adjust expected
441 diagnostics and comments refering to 1z to 17.
442 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
443 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
444 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
445 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
446 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
447 Likewise.
448 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
449 * testsuite/18_support/launder/1.cc (test02): Likewise.
450 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
451 * testsuite/18_support/launder/requirements.cc: Likewise.
452 * testsuite/18_support/byte/requirements.cc: Likewise.
453 * testsuite/18_support/byte/ops.cc: Likewise.
454 * testsuite/18_support/byte/global_neg.cc: Likewise.
455 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
456 Likewise.
457 * testsuite/27_io/types/4.cc: Likewise.
458 * testsuite/25_algorithms/sample/81221.cc: Likewise.
459 * testsuite/25_algorithms/sample/1.cc: Likewise.
460 * testsuite/25_algorithms/sample/2.cc: Likewise.
461 * testsuite/25_algorithms/search/searcher.cc: Likewise.
462 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
463 * testsuite/experimental/filesystem/path/construct/string_view.cc:
464 Likewise.
465 * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
466 * testsuite/24_iterators/container_access.cc: Likewise.
467 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
468 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
469 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
470 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
471 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
472 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
473 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
474 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
475 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
476 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
477 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
478 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
479 * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
480 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
481 * testsuite/20_util/variant/deduction.cc: Likewise.
482 * testsuite/20_util/tuple/78939.cc: Likewise.
483 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
484 * testsuite/20_util/void_t/1.cc: Likewise.
485 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
486 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
487 * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
488 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
489 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
490 Likewise.
491 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
492 Likewise.
493 * testsuite/20_util/has_unique_object_representations/value.cc:
494 Likewise.
495 * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
496 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
497 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
498 * testsuite/20_util/function/cons/deduction.cc: Likewise.
499 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
500 Likewise.
501 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
502 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
503 Likewise.
504 * testsuite/20_util/is_aggregate/value.cc: Likewise.
505 * testsuite/26_numerics/lcm/1.cc: Likewise.
506 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
507 * testsuite/26_numerics/gcd/1.cc: Likewise.
508 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
509 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
510 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
511 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
512 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
513 Likewise.
514 * testsuite/23_containers/array/cons/deduction.cc: Likewise.
515 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
516 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
517 Likewise.
518 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
519 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
520 Likewise.
521 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
522 Likewise.
523 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
524 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
525 Likewise.
526 * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
527 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
528 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
529 Likewise.
530 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
531 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
532 Likewise.
533 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
534 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
535 * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
536 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
537 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
538 Likewise.
539 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
540 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
541 Likewise.
542 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
543 Likewise.
544 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
545 Likewise.
546 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
547 Likewise.
548 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
549 Likewise.
550 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
551 Likewise.
552
553 2017-09-13 Jonathan Wakely <jwakely@redhat.com>
554
555 PR libstdc++/81468
556 * include/std/chrono (__enable_if_is_duration)
557 (__disable_if_is_duration): New alias templates to simplify SFINAE.
558 (duration_cast, floor, ceil): Use __enable_if_is_duration.
559 (duration::__is_float, duration::__is_harmonic): New alias templates
560 to simplify SFINAE.
561 (duration::duration(const _Rep2&)): Use _Require, __is_float and
562 __is_harmonic.
563 (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
564 (__common_rep_type): Remove, replace with ...
565 (__common_rep_t): New alias template.
566 (operator*, operator/, operator%): Use __common_rep_t and
567 __disable_if_is_duration.
568 (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
569 constraint from LWG DR 1177.
570 * testsuite/20_util/duration/cons/dr1177.cc: New.
571 * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
572 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
573 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
574 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
575 * testsuite/20_util/time_point/cons/81468.cc: New.
576
577 * doc/doxygen/mainpage.html: Fix broken URLs.
578
579 PR libstdc++/81835
580 * doc/xml/manual/extensions.xml: Replace unstable URL.
581 * doc/html/manual/ext_demangling.html: Regenerate.
582 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
583
584 * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
585 __to_address.
586 (__allocated_ptr::_S_raw_ptr): Remove.
587 * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
588 __to_address.
589 * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
590 * include/bits/ptr_traits.h (__to_address): Define new function
591 template.
592 * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
593 (__shared_ptr::_S_raw_ptr): Remove.
594 * include/bits/stl_vector.h [__cplusplus >= 201103L]
595 (vector::_M_data_ptr): Use __to_address.
596 [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
597 possibly invalid pointers.
598 * include/ext/alloc_traits.h (__alloc_traits::construct)
599 (__alloc_traits::destroy): Use __to_address.
600
601 2017-09-12 Jonathan Wakely <jwakely@redhat.com>
602
603 PR libstdc++/79433
604 * include/Makefile.am: Remove <bits/c++14_warning.h>.
605 * include/Makefile.in: Regenerate.
606 * include/bits/c++14_warning.h: Remove.
607 * include/experimental/algorithm: Do not include <c++14_warning.h>.
608 * include/experimental/any: Likewise.
609 * include/experimental/array: Likewise.
610 * include/experimental/bits/erase_if.h: Likewise.
611 * include/experimental/bits/lfts_config.h: Likewise.
612 * include/experimental/bits/shared_ptr.h: Likewise.
613 * include/experimental/bits/string_view.tcc: Likewise.
614 * include/experimental/chrono: Likewise.
615 * include/experimental/deque: Likewise.
616 * include/experimental/filesystem: Do not include <c++0x_warning.h>.
617 * include/experimental/forward_list: Do not include <c++14_warning.h>.
618 * include/experimental/functional: Likewise.
619 * include/experimental/iterator: Likewise.
620 * include/experimental/list: Likewise.
621 * include/experimental/map: Likewise.
622 * include/experimental/memory: Likewise.
623 * include/experimental/numeric: Likewise.
624 * include/experimental/optional: Likewise.
625 * include/experimental/propagate_const: Likewise.
626 * include/experimental/ratio: Likewise.
627 * include/experimental/regex: Likewise.
628 * include/experimental/set: Likewise.
629 * include/experimental/string: Likewise.
630 * include/experimental/string_view: Likewise.
631 * include/experimental/system_error: Likewise.
632 * include/experimental/tuple: Likewise.
633 * include/experimental/type_traits: Likewise.
634 * include/experimental/unordered_map: Likewise.
635 * include/experimental/unordered_set: Likewise.
636 * include/experimental/vector: Likewise.
637 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
638 line number.
639 * testsuite/experimental/array/neg.cc: Likewise.
640 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
641 Likewise.
642 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
643 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
644 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
645 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
646 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
647
648 PR libstdc++/79433
649 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
650 * doc/html/*: Regenerate.
651 * include/Makefile.am: Remove <bits/c++17_warning.h>.
652 * include/Makefile.in: Regenerate.
653 * include/bits/c++17_warning.h: Remove.
654 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
655 for pre-C++17 modes.
656 * include/std/any: Likewise.
657 (__cpp_lib_any): Define.
658 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
659 SD-6 draft.
660 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
661 draft.
662 * include/std/optional: Do not include <bits/c++17_warning.h>.
663 (__cpp_lib_optional): Define.
664 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
665 * include/std/string_view: Do not include <bits/c++17_warning.h>.
666 (__cpp_lib_string_view): Define.
667 * include/std/variant: Do not include <bits/c++17_warning.h>.
668 (__cpp_lib_variant): Define.
669 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
670 numbers.
671 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
672 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
673 numbers.
674 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
675 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
676 numbers.
677 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
678 expected value of __cpp_lib_scoped_lock.
679
680 PR libstdc++/70483
681 * include/experimental/bits/string_view.tcc (basic_string_view::find)
682 (basic_string_view::rfind, basic_string_view::find_first_of)
683 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
684 (basic_string_view::find_last_not_of): Add constexpr specifier.
685 * include/experimental/string_view (basic_string_view::remove_prefix)
686 (basic_string_view::remove_suffix, basic_string_view::swap)
687 (basic_string_view::compare, basic_string_view::find)
688 (basic_string_view::rfind, basic_string_view::find_first_of)
689 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
690 (basic_string_view::find_last_not_of, operator==, operator!=)
691 (operator<, operator>, operator<=, operator>=): Likewise.
692 * testsuite/experimental/string_view/operations/compare/char/70483.cc:
693 New.
694
695 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
696
697 PR libstdc++/70483
698 * include/bits/string_view.tcc (basic_string_view::find)
699 (basic_string_view::rfind, basic_string_view::find_first_of)
700 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
701 (basic_string_view::find_last_not_of): Add constexpr specifier.
702 * include/std/string_view (basic_string_view::operator=)
703 (basic_string_view::rbegin, basic_string_view::rend)
704 (basic_string_view::crbegin, basic_string_view::crend)
705 (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
706 (basic_string_view::swap, basic_string_view::compare)
707 (basic_string_view::find, basic_string_view::rfind)
708 (basic_string_view::find_first_of, basic_string_view::find_last_of)
709 (basic_string_view::find_first_not_of)
710 (basic_string_view::find_last_not_of, basic_string_view::_M_check)
711 (basic_string_view::_M_limit, operator==, operator!=, operator<)
712 (operator>, operator<=, operator>=): Likewise.
713 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
714 char/1.cc: Repeat tests in constexpr context.
715 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
716 wchar_t/1.cc: Likewise.
717 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
718 char/1.cc: Likewise.
719 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
720 wchar_t/1.cc: Likewise.
721 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
722 Likewise.
723 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
724 Likewise.
725 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
726 Likewise.
727 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
728 Likewise.
729 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
730 Likewise.
731 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
732 Likewise.
733 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
734 Likewise.
735 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
736 Likewise.
737 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
738 cbegin, cend, rbegin, rend, crbegin and crend.
739 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
740 Likewise.
741 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
742 Remove trailing whitespace.
743 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
744 1.cc: Likewise.
745 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
746 New.
747 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
748 New.
749 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
750 New.
751 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
752 2.cc: New.
753
754 2017-09-11 Tim Shen <timshen@google.com>
755
756 PR libstdc++/71500
757 * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
758 for back reference matches.
759 * testsuite/28_regex/regression.cc: Test case.
760
761 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
762
763 * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
764 compatibility with old COW std::string.
765
766 2017-09-09 Gerald Pfeifer <gerald@pfeifer.com>
767
768 * doc/xml/manual/allocator.xml: Adjust link for Hoard.
769 * doc/html/manual/memory.html: Regenerate.
770
771 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
772
773 PR libstdc++/79162
774 Implement LWG 2946, LWG 2758's resolution missed further corrections
775 * include/bits/basic_string.h (basic_string::compare): Add missing
776 required noexcept specifications.
777 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
778 for implicit string_view conversion.
779 (basic_string::basic_string): Fix explicit string_view conversion by
780 implicit conversion using _S_to_string_view and __sv_wrapper.
781 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
782 constructor.
783 (basic_string): Fix operator=(T) template by operator=(const T&)
784 template for uncopyable types (PR 79162).
785 (basic_string::operator+=, basic_string::append, basic_string::assign)
786 (basic_string::insert, basic_string::replace, basic_string::find)
787 (basic_string::rfind, basic_string::find_first_of)
788 (basic_string::find_last_of, basic_string::find_first_not_of)
789 (basic_string::find_last_not_of, basic_string::compare): Replace
790 __sv_type argument by template const T& (LWG 2946) and correct
791 documentation describing __sv_type argument.
792 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
793 (basic_string::find_last_of, basic_string::find_first_not_of)
794 (basic_string::find_last_not_of, basic_string::compare): Replace
795 unconditional noexcept specification by conditional noexcept
796 specification to partially balance the removal of noexcept by LWG 2946.
797 * testsuite/21_strings/basic_string/79162.cc: New.
798 * testsuite/21_strings/basic_string/lwg2946.cc: New.
799
800 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
801
802 PR c++/82039
803 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
804 Adjust null pointer constant to avoid warning.
805
806 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
807
808 * include/bits/stl_list.h
809 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
810 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
811 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
812 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
813 Remove.
814 (_List_base(_Node_alloc_type&&)): New.
815 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
816 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
817 (list<>::_M_node_count): New.
818 (list<>::size()): Adapt to call latter.
819 (list<>::_S_distance(const_iterator, const_iterator)): New.
820 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
821 Adapt to call latter.
822 (list(list&&, const allocator_type&, true_type)): New.
823 (list(list&&, const allocator_type&, false_type)): New.
824 (list(list&&, const allocator_type&)): Adapt to call latters.
825
826 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
827
828 PR libstdc++/81912
829 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
830 constexpr for C++11 and later.
831 * testsuite/24_iterators/container_access.cc: Add target selector.
832 * testsuite/24_iterators/range_access.cc: Fix clause number in
833 comment.
834 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
835 * testsuite/24_iterators/range_access_cpp17.cc: New.
836
837 2017-08-21 Richard Biener <rguenther@suse.de>
838
839 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
840 tests with -flto as well if supported.
841
842 2017-08-20 Martin Sebor <msebor@redhat.com>
843
844 PR c/81854
845 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
846 target as a C++ function with no prototype.
847 (_GLIBCXX_3_4_5_SYMVER): Ditto.
848
849 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
850
851 PR testsuite/81056
852 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
853
854 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
855
856 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
857 __value_alloc_type and __value_alloc_traits typedefs.
858 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
859 node allocator.
860 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
861 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
862 construct on the node allocator.
863 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
864 destroy on the node allocator.
865
866 PR libstdc++/81891
867 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
868 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
869 const _ExtractKey&, const allocator_type&)): Let destructor do clean
870 up if an exception is thrown.
871 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
872
873 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
874
875 PR libstdc++/81808
876 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
877 that allow opening a directory as a FILE and reading from it.
878
879 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
880
881 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
882 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
883 __is_identifier to set it.
884
885 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
886
887 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
888 __is_identifier instead of __has_builtin.
889
890 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
891
892 PR libstdc++/79820
893 PR libstdc++/81751
894 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
895 Call fflush on the stream instead of calling sync() while _M_cfile is
896 null. Restore original value of errno.
897 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
898 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
899
900 2017-07-31 Marek Polacek <polacek@redhat.com>
901
902 PR libstdc++/81599
903 * include/bits/stl_stack.h: Fix typo.
904
905 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
906
907 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
908
909 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
910
911 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
912 directive.
913
914 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
915
916 PR libstdc++/53984
917 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
918 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
919 during construction.
920 * include/std/istream: Adjust comments for formatted input functions
921 and unformatted input functions.
922 * testsuite/27_io/basic_fstream/53984.cc: New.
923 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
924
925 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
926 (ios_base::seek_dir): Remove for C++17.
927 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
928 Add deprecated attribute for C++11 and C++14.
929 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
930 * testsuite/27_io/types/4.cc: New.
931
932 2017-07-23 Michael Collison <michael.collison@arm.com>
933
934 Add optimized implementation of mersenne twister for aarch64
935 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
936 (__arch64_recursion): New function.
937 (__aarch64_lsr_128): New function.
938 (__aarch64_lsl_128): New function.
939 (operator==): New function.
940 (simd_fast_mersenne_twister_engine): Implement
941 method _M_gen_rand.
942 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
943 * include/ext/random: (simd_fast_mersenne_twister_engine):
944 add _M_state private array.
945
946 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
947
948 PR libstdc++/81064
949 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
950 * include/bits/basic_string.h: Likewise.
951 * include/bits/c++config: Likewise.
952 * include/bits/deque.tcc: Likewise.
953 * include/bits/forward_list.h: Likewise.
954 * include/bits/forward_list.tcc: Likewise.
955 * include/bits/hashtable_policy.h: Likewise.
956 * include/bits/list.tcc: Likewise.
957 * include/bits/move.h: Likewise.
958 * include/bits/quoted_string.h: Likewise.
959 * include/bits/random.h: Likewise.
960 * include/bits/random.tcc: Likewise.
961 * include/bits/regex.h: Likewise.
962 * include/bits/regex.tcc: Likewise.
963 * include/bits/regex_automaton.h: Likewise.
964 * include/bits/regex_automaton.tcc: Likewise.
965 * include/bits/regex_compiler.h: Likewise.
966 * include/bits/regex_compiler.tcc: Likewise.
967 * include/bits/regex_constants.h: Likewise.
968 * include/bits/regex_error.h: Likewise.
969 * include/bits/regex_executor.h: Likewise.
970 * include/bits/regex_executor.tcc: Likewise.
971 * include/bits/regex_scanner.h: Likewise.
972 * include/bits/regex_scanner.tcc: Likewise.
973 * include/bits/specfun.h: Likewise.
974 * include/bits/stl_algo.h: Likewise.
975 * include/bits/stl_algobase.h: Likewise.
976 * include/bits/stl_bvector.h: Likewise.
977 * include/bits/stl_deque.h: Likewise.
978 * include/bits/stl_iterator.h: Likewise.
979 * include/bits/stl_iterator_base_funcs.h: Likewise.
980 * include/bits/stl_list.h: Likewise.
981 * include/bits/stl_map.h: Likewise.
982 * include/bits/stl_multimap.h: Likewise.
983 * include/bits/stl_multiset.h: Likewise.
984 * include/bits/stl_relops.h: Likewise.
985 * include/bits/stl_set.h: Likewise.
986 * include/bits/stl_vector.h: Likewise.
987 * include/bits/uniform_int_dist.h: Likewise.
988 * include/bits/unordered_map.h: Likewise.
989 * include/bits/unordered_set.h: Likewise.
990 * include/bits/vector.tcc: Likewise.
991 * include/c_global/cmath: Likewise.
992 * include/c_std/cmath: Likewise.
993 * include/decimal/decimal: Likewise.
994 * include/decimal/decimal.h: Likewise.
995 * include/experimental/algorithm: Likewise.
996 * include/experimental/any: Likewise.
997 * include/experimental/array: Likewise.
998 * include/experimental/bits/erase_if.h: Likewise.
999 * include/experimental/bits/fs_dir.h: Likewise.
1000 * include/experimental/bits/fs_fwd.h: Likewise.
1001 * include/experimental/bits/fs_ops.h: Likewise.
1002 * include/experimental/bits/fs_path.h: Likewise.
1003 * include/experimental/bits/lfts_config.h: Likewise.
1004 * include/experimental/bits/shared_ptr.h: Likewise.
1005 * include/experimental/bits/string_view.tcc: Likewise.
1006 * include/experimental/chrono: Likewise.
1007 * include/experimental/deque: Likewise.
1008 * include/experimental/filesystem: Likewise.
1009 * include/experimental/forward_list: Likewise.
1010 * include/experimental/functional: Likewise.
1011 * include/experimental/iterator: Likewise.
1012 * include/experimental/list: Likewise.
1013 * include/experimental/map: Likewise.
1014 * include/experimental/memory: Likewise.
1015 * include/experimental/memory_resource: Likewise.
1016 * include/experimental/numeric: Likewise.
1017 * include/experimental/optional: Likewise.
1018 * include/experimental/propagate_const: Likewise.
1019 * include/experimental/random: Likewise.
1020 * include/experimental/ratio: Likewise.
1021 * include/experimental/regex: Likewise.
1022 * include/experimental/set: Likewise.
1023 * include/experimental/source_location: Likewise.
1024 * include/experimental/string: Likewise.
1025 * include/experimental/string_view: Likewise.
1026 * include/experimental/system_error: Likewise.
1027 * include/experimental/tuple: Likewise.
1028 * include/experimental/type_traits: Likewise.
1029 * include/experimental/unordered_map: Likewise.
1030 * include/experimental/unordered_set: Likewise.
1031 * include/experimental/utility: Likewise.
1032 * include/experimental/vector: Likewise.
1033 * include/ext/bitmap_allocator.h: Likewise.
1034 * include/ext/codecvt_specializations.h: Likewise.
1035 * include/ext/rope: Likewise.
1036 * include/ext/typelist.h: Likewise.
1037 * include/std/chrono: Likewise.
1038 * include/std/complex: Likewise.
1039 * include/std/functional: Likewise.
1040 * include/std/numeric: Likewise.
1041 * include/std/string_view: Likewise.
1042 * include/std/thread: Likewise.
1043 * include/std/variant: Likewise.
1044 * include/tr1/array: Likewise.
1045 * include/tr1/bessel_function.tcc: Likewise.
1046 * include/tr1/beta_function.tcc: Likewise.
1047 * include/tr1/cmath: Likewise.
1048 * include/tr1/complex: Likewise.
1049 * include/tr1/ell_integral.tcc: Likewise.
1050 * include/tr1/exp_integral.tcc: Likewise.
1051 * include/tr1/functional: Likewise.
1052 * include/tr1/functional_hash.h: Likewise.
1053 * include/tr1/gamma.tcc: Likewise.
1054 * include/tr1/hashtable.h: Likewise.
1055 * include/tr1/hashtable_policy.h: Likewise.
1056 * include/tr1/hypergeometric.tcc: Likewise.
1057 * include/tr1/legendre_function.tcc: Likewise.
1058 * include/tr1/modified_bessel_func.tcc: Likewise.
1059 * include/tr1/poly_hermite.tcc: Likewise.
1060 * include/tr1/poly_laguerre.tcc: Likewise.
1061 * include/tr1/random.h: Likewise.
1062 * include/tr1/random.tcc: Likewise.
1063 * include/tr1/regex: Likewise.
1064 * include/tr1/riemann_zeta.tcc: Likewise.
1065 * include/tr1/shared_ptr.h: Likewise.
1066 * include/tr1/special_function_util.h: Likewise.
1067 * include/tr1/tuple: Likewise.
1068 * include/tr1/type_traits: Likewise.
1069 * include/tr1/unordered_map.h: Likewise.
1070 * include/tr1/unordered_set.h: Likewise.
1071 * include/tr1/utility: Likewise.
1072 * include/tr2/bool_set: Likewise.
1073 * include/tr2/bool_set.tcc: Likewise.
1074 * include/tr2/dynamic_bitset: Likewise.
1075 * include/tr2/dynamic_bitset.tcc: Likewise.
1076 * include/tr2/ratio: Likewise.
1077 * include/tr2/type_traits: Likewise.
1078 * src/c++11/chrono.cc: Likewise.
1079 * src/c++11/compatibility-c++0x.cc: Likewise.
1080 * src/c++11/compatibility-chrono.cc: Likewise.
1081 * src/c++11/cxx11-shim_facets.cc: Likewise.
1082 * src/c++11/hashtable_c++0x.cc: Likewise.
1083 * src/c++11/placeholders.cc: Likewise.
1084 * src/c++11/thread.cc: Likewise.
1085 * src/c++98/bitmap_allocator.cc: Likewise.
1086 * src/c++98/hashtable_tr1.cc: Likewise.
1087 * src/c++98/list.cc: Likewise.
1088 * src/shared/hashtable-aux.cc: Likewise.
1089 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
1090 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1091 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1092 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1093 * testsuite/20_util/forward/c_neg.cc: Likewise.
1094 * testsuite/20_util/forward/f_neg.cc: Likewise.
1095 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1096 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1097 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1098 * python/libstdcxx/v6/printers.py: Adapt.
1099
1100 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
1101
1102 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1103 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1104 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1105 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1106 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1107 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1108 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1109 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1110 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1111 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1112 Define annotation helper types and macros.
1113 (vector::~vector, vector::push_back, vector::pop_back)
1114 (vector::_M_erase_at_end): Add annotations.
1115 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1116 (vector::insert, vector::_M_erase, vector::operator=)
1117 (vector::_M_fill_assign, vector::_M_assign_aux)
1118 (vector::_M_insert_rval, vector::_M_emplace_aux)
1119 (vector::_M_insert_aux, vector::_M_realloc_insert)
1120 (vector::_M_fill_insert, vector::_M_default_append)
1121 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1122
1123 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1124
1125 PR libstdc++/81476
1126 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1127 Only insert elements one-by-one when inserting at the end.
1128 * testsuite/performance/23_containers/insert/81476.cc: New.
1129
1130 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
1131
1132 * libsupc++/new (bad_array_new_length): Remove redundant
1133 semicolon after in-class member function definition.
1134 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1135 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1136 * include/bits/random.h (mersenne_twister_engine): Likewise.
1137 * include/tr1/random.h (mersenne_twister): Likewise
1138 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1139 * include/ext/rope (char_producer, _Rope_char_consumer,
1140 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1141 Likewise.
1142 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1143 _Rope_insert_char_consumer): Likewise.
1144
1145 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1146
1147 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1148 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1149
1150 * testsuite/util/testsuite_iterators.h: Fix indentation.
1151
1152 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1153
1154 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
1155
1156 PR libstdc++/81395
1157 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1158 pointers for write mode after reading.
1159 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1160
1161 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
1162
1163 * include/bits/stl_list.h
1164 (struct _List_node_header): New.
1165 (_List_impl()): Fix noexcept qualification.
1166 (_List_impl(_List_impl&&)): New, default.
1167 (_List_base()): Default.
1168 (_List_base(_List_base&&)): Default.
1169 (_List_base::_M_move_nodes): Adapt to use
1170 _List_node_header._M_move_nodes.
1171 (_List_base::_M_init): Likewise.
1172 (list<>()): Default.
1173 (list<>(list&&)): Default.
1174 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
1175 (__distance(_List_const_iterator<>, _List_const_iterator<>,
1176 input_iterator_tag)): Adapt.
1177 * testsuite/23_containers/list/allocator/default_init.cc: New.
1178
1179 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
1180
1181 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1182 as per P0739R0.
1183 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1184 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1185 with std::adopt_lock_t.
1186 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1187 feature-test macro.
1188
1189 2017-07-14 Jason Merrill <jason@redhat.com>
1190 Jonathan Wakely <jwakely@redhat.com>
1191
1192 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1193 the constructor for empty variants from the candidate functions
1194 during class template argument deduction.
1195 * testsuite/20_util/variant/deduction.cc: New.
1196
1197 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
1198
1199 * doc/xml/faq.xml: Update several old entries. Improve
1200 cross-references.
1201 * doc/xml/manual/intro.xml: Add anchors to each DR.
1202 * doc/html/*: Regenerate.
1203
1204 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
1205
1206 * testsuite/abi/pr42230.cc: Add header for std::free.
1207
1208 PR libstdc++/81381
1209 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1210 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
1211 (basic_stringbuf::str()): Construct new strings with an allocator.
1212 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
1213
1214 PR libstdc++/81338
1215 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1216 Declare basic_stringbuf to be a friend.
1217 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1218 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1219 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1220 length to buffer length.
1221 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1222
1223 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
1224
1225 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1226 1.cc: Free memory.
1227 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
1228 of original environment and free memory.
1229
1230 * testsuite/abi/pr42230.cc: Free memory.
1231 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
1232 instead of pointer that might need freeing.
1233 * testsuite/util/testsuite_abi.h (demangle): Likewise.
1234 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
1235
1236 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
1237 deleted overload to prevent dangling references to rvalues.
1238 * include/experimental/memory_resource
1239 (polymorphic_allocator::construct): Do not call __use_alloc with
1240 rvalue arguments.
1241
1242 2017-06-27 Tim Shen <timshen@google.com>
1243
1244 PR libstdc++/80187
1245 * include/std/variant (variant::variant, variant::~variant,
1246 variant::operator=): Implement triviality forwarding for four
1247 special member functions.
1248 * testsuite/20_util/variant/compile.cc: Tests.
1249
1250 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
1251
1252 PR libstdc++/81221
1253 * testsuite/25_algorithms/sample/81221.cc: Disable except for
1254 check-parallel.
1255
1256 PR libstdc++/81221
1257 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
1258 std.
1259 * testsuite/25_algorithms/sample/81221.cc: New.
1260
1261 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
1262
1263 PR libstdc++/81173
1264 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
1265 Do not pass null pointer to memset.
1266
1267 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1268
1269 PR libstdc++/80675
1270 PR libstdc++/80940
1271 * include/std/istream:
1272 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
1273 (__do_is_convertible_to_basic_istream_impl): Likewise.
1274 (__is_convertible_to_basic_istream_impl): Likewise.
1275 (__is_convertible_to_basic_istream): Use the new base.
1276 (__rvalue_istream_type): New.
1277 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1278 for the SFINAE check, convert to the helper alias type before
1279 doing the actual extraction.
1280 * include/std/ostream:
1281 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1282 (__do_is_convertible_to_basic_ostream_impl): Likewise.
1283 (__is_convertible_to_basic_ostream_impl): Likewise.
1284 (__is_convertible_to_basic_ostream): Use the new base.
1285 (__rvalue_ostream_type): New.
1286 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1287 for the SFINAE check, convert to the helper alias type before
1288 doing the actual insertion.
1289 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1290
1291 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1292
1293 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1294
1295 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
1296
1297 PR libstdc++/81092
1298 * configure: Regenerate.
1299
1300 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
1301
1302 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1303
1304 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1305
1306 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
1307 lp64 targets.
1308
1309 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1310
1311 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1312 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1313 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1314 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1315 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1316 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1317 Likewise.
1318 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1319 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1320 Likewise.
1321
1322 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
1323
1324 PR libstdc++/81092
1325 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1326
1327 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
1328
1329 PR libstdc++/81092
1330 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1331
1332 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1333
1334 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
1335 default args.
1336
1337 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
1338
1339 PR libstdc++/80893
1340 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
1341
1342 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
1343
1344 * include/bits/shared_ptr.h (get_deleter): Add overload matching
1345 standard signature.
1346 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
1347 get_deleter overload as a friend.
1348 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
1349
1350 2017-06-16 Jakub Jelinek <jakub@redhat.com>
1351
1352 PR libstdc++/81092
1353 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1354 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1355 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1356
1357 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
1358
1359 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1360 * testsuite/22_locale/conversions/buffer/2.cc: New.
1361
1362 PR libstdc++/81092
1363 * acinclude.m4: Bump libtool_VERSION.
1364 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1365 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1366 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
1367 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
1368 to new GLIBCXX_3.4.25 version.
1369 * doc/xml/manual/abi.xml: Document new versions.
1370 * doc/html/*: Regenerate.
1371 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1372 constructors to ensure required symbols are exported.
1373 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1374 * testsuite/util/testsuite_abi.cc: Add new version.
1375
1376 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1377 return statement.
1378 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1379 Return void.
1380 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1381 Likewise.
1382 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
1383 missing return statements.
1384 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1385 Likewise.
1386 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
1387 Return void.
1388 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
1389
1390 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
1391
1392 * include/bits/stl_bvector.h
1393 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
1394 Change signature.
1395 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
1396 (_Bvector_impl_data): New.
1397 (_Bvector_impl): Inherits from latter.
1398 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
1399 (_Bvector_impl(_Bvector_impl&&)): New, default.
1400 (_Bvector_base()): Default.
1401 (_Bvector_base(_Bvector_base&&)): Default.
1402 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
1403 (vector(vector&&, const allocator_type&)): Use latter.
1404 (vector<bool>::operator=(vector&&)): Likewise.
1405 (vector<bool>::vector()): Default.
1406 (vector<bool>::vector(vector&&)): Default.
1407 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
1408 _M_assign_aux.
1409 (vector<bool>::assign(initializer_list<bool>)): Likewise.
1410 (vector<bool>::_M_initialize_value(bool)): New.
1411 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
1412 latter.
1413 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
1414 Likewise.
1415 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
1416
1417 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
1418
1419 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
1420 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
1421
1422 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1423
1424 * testsuite: Add dg-require-effective-target pthread to -pthread
1425 tests.
1426 Remove explicit target lists from dg-do and dg-options.
1427
1428 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
1429 target list from dg-options.
1430 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
1431
1432 * 30_threads/shared_mutex/cons/1.cc: Likewise.
1433 Pass -pthread for all targets.
1434 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
1435 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
1436 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
1437
1438 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
1439 dg-require-effective-target.
1440
1441 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
1442
1443 * doc/xml/manual/test.xml: Correct instructions on running tests.
1444 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
1445 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
1446 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1447 Likewise.
1448 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
1449 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1450 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1451 exceptions_failbit.cc: Likewise.
1452 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1453 exceptions_failbit.cc: Likewise.
1454 * testsuite/27_io/basic_istream/extractors_other/char/
1455 exceptions_null.cc: Likewise.
1456 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1457 exceptions_null.cc: Likewise.
1458 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1459 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1460 * testsuite/27_io/basic_ostream/inserters_other/char/
1461 exceptions_null.cc: Likewise.
1462 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1463 exceptions_null.cc: Likewise.
1464 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1465
1466 2017-06-12 Pedro Alves <palves@redhat.com>
1467
1468 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
1469 char_traits status.
1470 * doc/html/*: Regenerate.
1471
1472 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
1473 not already defined.
1474 (__cpp_lib_constexpr_char_traits): Uncomment.
1475 (__constant_string_p, __constant_char_array_p): New.
1476 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1477 _GLIBCXX17_CONSTEXPR on compare, length and find and use
1478 __constant_string_p, __constant_char_array_p and
1479 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
1480 time.
1481
1482 * testsuite/21_strings/char_traits/requirements/
1483 constexpr_functions_c++17.cc: Uncomment
1484 __cpp_lib_constexpr_char_traits tests. Uncomment
1485 test_compare<char>, test_length<char>, test_find<char>,
1486 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
1487 static_assert tests.
1488
1489 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
1490
1491 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
1492 default init.
1493 * testsuite/util/testsuite_allocator.h
1494 (__gnu_test::default_init_allocator<>) New.
1495 * testsuite/23_containers/set/allocator/default_init.cc: New.
1496 * testsuite/23_containers/map/allocator/default_init.cc: New.
1497
1498 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
1499
1500 PR libstdc++/55917
1501 * src/c++11/thread.cc (execute_native_thread_routine): Remove
1502 try-block so that exceptions propagate out of the thread and terminate
1503 is called by the exception-handling runtime.
1504 (execute_native_thread_routine_compat): Likewise.
1505 * testsuite/30_threads/thread/cons/terminate.cc: New.
1506
1507 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
1508
1509 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
1510 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
1511 (LWG 2802).
1512 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
1513 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
1514 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
1515
1516 * include/bits/forward_list.h (forward_list): Add deduction guide.
1517 * include/bits/stl_deque.h (deque): Likewise.
1518 * include/bits/stl_list.h (list): Likewise.
1519 * include/bits/stl_vector.h (vector): Likewise.
1520 * testsuite/23_containers/deque/cons/deduction.cc: New.
1521 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
1522 * testsuite/23_containers/list/cons/deduction.cc: New.
1523 * testsuite/23_containers/vector/cons/deduction.cc: New.
1524
1525 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
1526
1527 PR libstdc++/81017
1528 * include/bits/std_function.h (function::function(function&&))
1529 (function::operator=(funtion&&)): Add noexcept.
1530 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
1531 * testsuite/20_util/function/cons/move.cc: Likewise.
1532
1533 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
1534
1535 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
1536 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
1537
1538 PR libstdc++/81002
1539 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
1540 so iterator type is deduced.
1541 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
1542 parameters to allow iterator type to be deduced.
1543 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
1544
1545 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
1546 New trait and alias for detecting Allocator-like types.
1547 * include/bits/basic_string.h (basic_string): Add deduction guide
1548 from P0433.
1549 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
1550 parameter with default template argument that causes substitution
1551 failures for types that cannot be allocators.
1552 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
1553 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
1554
1555 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
1556
1557 PR libstdc++/80939
1558 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
1559 (__erased_hash): Remove constexpr specifier and qualify calls to
1560 __ref_cast.
1561 (__erased_dtor): Remove constexpr specifier and use _Destroy.
1562
1563 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
1564
1565 * include/bits/stl_iterator_base_funcs.h
1566 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
1567 cases where incrementing or decrementing a single step.
1568
1569 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
1570 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
1571 specifiers as per LWG 2873 and LWG 2942.
1572 * testsuite/20_util/owner_less/noexcept.cc: New.
1573 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
1574 noexcept guarantees.
1575 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
1576
1577 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
1578
1579 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1580
1581 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
1582
1583 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
1584
1585 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
1586
1587 PR libstdc++/80624
1588 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
1589 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
1590 Transform eof value to U+FFFD.
1591 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
1592 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
1593 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
1594
1595 * libsupc++/Makefile.am: Remove custom targets for files that need to
1596 be compiled as C++11 or C++14.
1597 * libsupc++/Makefile.in: Regenerate.
1598 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
1599 warnings.
1600 * libsupc++/del_opvs.cc: Likewise.
1601
1602 2017-06-02 Richard Biener <rguenther@suse.de>
1603 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
1604
1605 PR libstdc++/80721
1606 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
1607 sorted and add missing freelist item merging cases.
1608
1609 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1610
1611 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
1612 Remove *-solaris* section.
1613 * configure: Regenerate.
1614
1615 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
1616
1617 PR libstdc++/80893
1618 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
1619 null pointer dereference when size is zero.
1620 * testsuite/23_containers/vector/bool/80893.cc: New.
1621 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
1622 Add non-explicit constructor from nullptr.
1623 (PointerBase::derived() const): Add const-qualified overload.
1624
1625 2017-05-20 Tim Shen <timshen@google.com>
1626
1627 PR libstdc++/80737
1628 * include/std/variant(variant::variant): SFINAE on is_same first.
1629 * testsuite/20_util/variant/any.cc: test case.
1630
1631 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
1632
1633 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
1634 instead of fixed number of bits.
1635
1636 2017-05-24 Andreas Schwab <schwab@suse.de>
1637
1638 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1639 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1640
1641 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1642 Jonathan Wakely <jwakely@redhat.com>
1643
1644 PR libstdc++/67578
1645 * acinclude.m4: Bump libtool_VERSION.
1646 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
1647 * config.h.in: Regenerate.
1648 * configure: Regenerate.
1649 * configure.ac: Add test for <linux/random.h>.
1650 * doc/xml/manual/abi.xml: Document new library version.
1651 * include/bits/random.h (random_device::entropy)
1652 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
1653 (random_device::_M_getentropy): Declare.
1654 * src/c++11/random.cc (random_device::_M_getentropy): Define.
1655 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
1656 versions, and make it the latest version.
1657
1658 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1659
1660 PR libstdc++/67214
1661 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
1662 explicit conversion to avoid signed overflow.
1663
1664 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
1665
1666 PR libstdc++/80796
1667 * include/bits/stl_algo.h (search): Add new overload for C++17.
1668 * testsuite/25_algorithms/search/searcher.cc: New.
1669
1670 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
1671
1672 PR libstdc++/80478
1673 * include/std/functional (_Mem_fn_traits_base): Add specializations
1674 for noexcept member function types.
1675 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
1676
1677 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
1678
1679 * doc/xml/manual/policy_data_structures.xml: Fix typo.
1680 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
1681 * doc/html/*: Regenerate.
1682
1683 * doc/xml/manual/abi.xml: Document latest library versions.
1684 * doc/xml/manual/build_hacking.xml: Document requirement to update
1685 abi.xml when bumping library versions.
1686 * doc/html/*: Regenerate.
1687
1688 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
1689
1690 * include/bits/refwrap.h: Fix Doxygen warning.
1691 * include/bits/specfun.h: Likewise.
1692 * include/bits/std_function.h: Likewise.
1693 * include/bits/stl_algo.h (set_union, set_intersection)
1694 (set_difference, set_symmetric_difference): Add Doxygen @param tags
1695 for output iterator parameters.
1696 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
1697 iterator parameter.
1698 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
1699 Doxygen comments.
1700
1701 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
1702
1703 Implement new C++ intrinsics __is_assignable and __is_constructible.
1704 * include/std/type_traits (__do_is_static_castable_impl): Remove.
1705 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
1706 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
1707 (__is_direct_constructible_impl): Likewise.
1708 (__is_direct_constructible_new_safe): Likewise.
1709 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
1710 (__is_direct_constructible_ref_cast): Likewise.
1711 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
1712 (__do_is_nary_constructible_impl): Likewise.
1713 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
1714 (__is_constructible_impl): Likewise.
1715 (is_constructible): Call the intrinsic.
1716 (__is_assignable_helper): Remove.
1717 (is_assignable): Call the intrinsic.
1718 (is_trivially_constructible): Likewise.
1719 (__is_trivially_copy_constructible_impl): New.
1720 (is_trivially_copy_constructible): Use it.
1721 (__is_trivially_move_constructible_impl): New.
1722 (is_trivially_move_constructible): Use it.
1723 (is_trivially_assignable): Call the intrinsic.
1724 (__is_trivially_copy_assignable_impl): New.
1725 (is_trivially_copy_assignable): Use it.
1726 (__is_trivially_move_assignable_impl): New.
1727 (is_trivially_move_assignable): Use it.
1728 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
1729 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
1730 Add test for void.
1731 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
1732 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
1733 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
1734 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
1735 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
1736 Likewise.
1737
1738 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
1739
1740 * testsuite/experimental/source_location/1.cc: Change expected result
1741 for source_location::current() used in default member initializer.
1742
1743 * doc/xml/manual/status_cxx2017.xml: Update status table.
1744 * doc/html/*: Regenerate.
1745 * include/Makefile.am: Add new header.
1746 * include/Makefile.in: Regenerate.
1747 * include/experimental/source_location: New header implementing N4519.
1748 * testsuite/experimental/source_location/1.cc: New test.
1749
1750 PR libstdc++/80285
1751 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
1752 outside versioned namespace.
1753
1754 * configure: Regenerate.
1755
1756 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
1757
1758 * include/std/optional (_Optional_base::_M_get): Check precondition.
1759 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
1760
1761 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
1762
1763 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
1764 note higher DejaGnu version requirement.
1765 * doc/html/*: Regenerate.
1766
1767 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
1768 identifiers.
1769 * doc/html/*: Regenerate.
1770
1771 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
1772
1773 PR libstdc++/80761
1774 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
1775 (tuple_size, tuple_element): Remove partial specializations.
1776 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
1777 const_iterator for std::set.
1778 * testsuite/23_containers/map/modifiers/extract.cc: New.
1779 * testsuite/23_containers/set/modifiers/extract.cc: New.
1780 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1781 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1782
1783 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
1784
1785 PR libstdc++/78939
1786 * include/std/utility (tuple_size<cv T>): Only define partial
1787 specializations when tuple_size<T>::value is valid.
1788 * testsuite/20_util/tuple/78939.cc: New.
1789 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
1790
1791 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
1792
1793 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
1794 (_Rb_tree_impl<>): Remove _Is_pod_comparator
1795 template parameter.
1796
1797 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
1798 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1799 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1800 Remove.
1801 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1802 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1803 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1804 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1805 * src/c++11/debug.cc: Adapt.
1806 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1807
1808 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
1809
1810 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1811 * doc/xml/manual/mt_allocator.xml: Likewise.
1812 * doc/html/*: Regenerate.
1813
1814 PR libstdc++/80285
1815 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1816 function to get unique fake std::type_info reference.
1817 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1818 _S_ti() fake reference.
1819 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1820 single implementation with or without RTTI enable.
1821 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1822 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1823 allocation and deallocation counts.
1824 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1825 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1826 New.
1827
1828 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
1829
1830 Bump version namespace.
1831 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1832 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1833 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1834 * include/bits/c++config: Adapt.
1835 * include/bits/regex.h: Adapt.
1836 * include/experimental/bits/fs_fwd.h: Adapt.
1837 * include/experimental/bits/lfts_config.h: Adapt.
1838 * include/std/variant: Adapt.
1839 * python/libstdcxx/v6/printers.py: Adapt.
1840 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1841
1842 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1843 _GLIBCXX_MOVE usage.
1844
1845 2017-05-09 Jason Merrill <jason@redhat.com>
1846
1847 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1848
1849 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
1850
1851 * include/std/optional: Use a separate static_assert per condition.
1852 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1853 numbers.
1854
1855 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1856 * doc/html/*: Regenerate.
1857
1858 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1859
1860 PR libstdc++/69506
1861 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1862
1863 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
1864
1865 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1866 by a note-test.
1867
1868 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
1869
1870 PR libstdc++/80553
1871 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1872 assertions to ensure type is destructible.
1873 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1874 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1875 Move to stl_construct.h.
1876 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1877 destroy_neg.cc: New test.
1878 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1879
1880 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1881 superfluous "" in dg-error.
1882
1883 2017-04-28 Tom de Vries <tom@codesourcery.com>
1884
1885 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1886 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1887
1888 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
1889
1890 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1891 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1892 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1893 Likewise.
1894
1895 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
1896
1897 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1898 comment. Ensure first test works because allocator type propagates and
1899 not because is_always_equal is true.
1900 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1901 testcase that instantiates the move-assignment operator.
1902
1903 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
1904
1905 PR libstdc++/80506
1906 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1907 number used in loop condition.
1908
1909 PR libstdc++/80504
1910 * include/bits/refwrap.h (ref, cref): Qualify calls.
1911 * testsuite/20_util/reference_wrapper/80504.cc: New test.
1912
1913 PR libstdc++/80493
1914 * include/experimental/optional (optional::swap): Fix exception
1915 specification.
1916
1917 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
1918
1919 PR libstdc++/80316
1920 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1921 _S_check calls that are done after the pointer to the shared state is
1922 already dereferenced.
1923 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1924 as partial specialization so it can be defined within the definition
1925 of _State_baseV2.
1926 (_State_baseV2::__setter): Call _S_check.
1927 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1928 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1929 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1930 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1931 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1932 Use new __setter overload.
1933 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1934 * testsuite/30_threads/promise/members/set_exception.cc: Test
1935 promise<T&> and promise<void> specializations.
1936 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1937 Test for no_state error condition.
1938 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1939
1940 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1941 of auto_ptr.
1942 * include/bits/shared_ptr.h: Likewise.
1943 * include/bits/shared_ptr_base.h: Likewise.
1944 * include/bits/unique_ptr.h: Likewise.
1945 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1946 dg-error lineno.
1947 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1948 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1949 Likewise.
1950 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1951 Likewise.
1952
1953 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1954
1955 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1956 * include/tr1/exp_integral.tcc: Increase iteration limits.
1957 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1958 pr68397.cc: New test.
1959 * testsuite/special_functions/14_expint/pr68397.cc: New test.
1960
1961 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
1962
1963 PR libstdc++/79862
1964 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1965 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1966 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1967 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1968 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1969 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1970 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1971 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1972 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1973 define.
1974
1975 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
1976
1977 * doc/xml/manual/abi.xml: Rephrase one of the references to the
1978 Itanium C++ ABI.
1979 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1980 * doc/html/*: Regenerate.
1981
1982 * libsupc++/new: Update comment on #endif directive.
1983
1984 PR libstdc++/80448
1985 * include/experimental/bits/fs_dir.h (directory_iterator)
1986 (recursive_directory_iterator): Remove noexcept from defaulted
1987 constructors.
1988
1989 PR libstdc++/80446
1990 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1991 * libsupc++/new (launder): Likewise.
1992
1993 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
1994
1995 * include/std/functional (default_searcher, __boyer_moore_array_base)
1996 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1997 (boyer_moore_horspool_searcher): Remove redundant namespace
1998 qualification.
1999 (default_searcher::operator()): Construct return value early and
2000 advance second member in-place.
2001 (boyer_moore_horspool_searcher::operator()): Increment random access
2002 iterator directly instead of using std::next.
2003 (boyer_moore_searcher::operator()): Fix return value.
2004 * testsuite/20_util/function_objects/searchers.cc: Check both parts
2005 of return values.
2006
2007 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
2008
2009 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2010 * doc/xml/manual/abi.xml. Ditto (thrice).
2011
2012 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
2013
2014 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2015 * doc/html/*: Regenerate.
2016
2017 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2018 that no longer fail.
2019
2020 * include/bits/ios_base.h: Correct comment.
2021 * testsuite/util/testsuite_hooks.h: Likewise.
2022
2023 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2024 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2025 directories for debug, parallel and profile headers.
2026 * doc/html/*: Regenerate.
2027
2028 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2029 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2030 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2031 _GLIBCXX17_CONSTEXPR on assign.
2032 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2033 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2034 * testsuite/21_strings/char_traits/requirements/
2035 constexpr_functions_c++17.cc: New test.
2036
2037 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2038
2039 PR libstdc++/79141
2040 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2041 (operator=(typename conditional<
2042 __and_<is_copy_assignable<_T1>,
2043 is_copy_assignable<_T2>>::value,
2044 const pair&, const __nonesuch&>::type)): Change __nonesuch
2045 to __nonesuch_no_braces.
2046 (operator=(typename conditional<
2047 __not_<__and_<is_copy_assignable<_T1>,
2048 is_copy_assignable<_T2>>>::value,
2049 const pair&, const __nonesuch&>::type)): Likewise.
2050 (operator=(typename conditional<
2051 __and_<is_move_assignable<_T1>,
2052 is_move_assignable<_T2>>::value,
2053 pair&&, __nonesuch&&>::type)): Likewise.
2054 * testsuite/20_util/pair/79141.cc: New.
2055
2056 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2057
2058 Implement std::is_aggregate.
2059 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2060 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2061 New.
2062 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2063 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2064
2065 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2066
2067 Adjust optional's pretty printer for LWG 2900.
2068 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2069 Look at the nested payload in case of non-experimental optional.
2070
2071 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2072
2073 Implement LWG 2900, The copy and move constructors
2074 of optional are not constexpr.
2075 * include/std/optional (_Optional_payload): New.
2076 (_Optional_base): Remove the bool parameter.
2077 (_Optional_base<_Tp, false>): Remove.
2078 (_Optional_base()): Adjust.
2079 (_Optional_base(nullopt_t)): Likewise.
2080 (_Optional_base(in_place_t, _Args&&...)): Likewise.
2081 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2082 Likewise.
2083 (_Optional_base(const _Optional_base&)): Likewise.
2084 (_Optional_base(_Optional_base&&)): Likewise.
2085 (operator=(const _Optional_base&)): Likewise.
2086 (operator=(_Optional_base&&)): Likewise.
2087 (~_Optional_base()): Remove.
2088 (_M_is_engaged()): Adjust.
2089 (_M_get()): Likewise.
2090 (_M_construct(_Args&&...)): Likewise.
2091 (_M_destruct()): Likewise.
2092 (_M_reset()): Likewise.
2093 (_Optional_base::_Empty_byte): Remove.
2094 (_Optional_base::_M_empty): Remove.
2095 (_Optional_base::_M_payload): Adjust.
2096 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2097 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2098
2099 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
2100
2101 PR libstdc++/80137
2102 * include/bits/random.tcc (generate_canonical): Use std::nextafter
2103 or numeric_limits::epsilon() to reduce out-of-range values.
2104 * testsuite/26_numerics/random/uniform_real_distribution/operators/
2105 64351.cc: Verify complexity requirement is met.
2106
2107 * doc/xml/manual/abi.xml: Add xml:id anchor.
2108 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2109 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2110 (concurrency.io.structure): Add markup.
2111 * doc/html/*: Regenerate.
2112
2113 PR libstdc++/80229
2114 * include/bits/shared_ptr_base.h
2115 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2116 non-const and then use remove_cv to get unqualified type.
2117 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2118 cast away constness on object created const.
2119 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2120
2121 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
2122
2123 PR libstdc++/80183
2124 * include/bits/stl_tree.h:
2125 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2126
2127 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
2128
2129 * testsuite/23_containers/array/tuple_interface/
2130 tuple_element_debug_neg.cc: Adjust dg-error.
2131 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2132 define a valid strict weak ordering.
2133 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2134 Debug Mode, due to debug checks making extra copies of predicate.
2135 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2136 Likewise.
2137
2138 * doc/xml/faq.xml: Add link.
2139 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2140 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2141 * doc/xml/manual/io.xml: Update broken link.
2142 * doc/html/*: Regenerate.
2143
2144 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
2145
2146 Implement LWG 2686, Why is std::hash specialized for error_code,
2147 but not error_condition?
2148 * include/std/system_error (hash<error_condition>): Define for C++17.
2149 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2150 Instantiate test for error_condition.
2151 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2152 (hash<error_condition>): Instantiate hash<error_condition>.
2153
2154 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2155 * include/bits/regex_constants.h (All std::regex_constants constants):
2156 Add _GLIBCXX17_INLINE as per P0607R0.
2157 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2158 Likewise.
2159 * include/bits/stl_pair.h (piecewise_construct): Likewise.
2160 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2161 (__is_uses_allocator_constructible_v)
2162 (__is_nothrow_uses_allocator_constructible_v): Likewise.
2163 * include/std/chrono (treat_as_floating_point_v): Likewise.
2164 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2165 Likewise.
2166 * include/std/optional (nullopt): Likewise.
2167 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2168 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2169 * include/std/system_error (is_error_code_enum_v)
2170 (is_error_condition_enum_v): Likewise.
2171 * include/std/tuple (tuple_size_v, ignore): Likewise.
2172 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2173 constexpr as per LWG 2933.
2174 * include/std/type_traits (All variable templates): Add
2175 _GLIBCXX17_INLINE as per P0607R0.
2176 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2177 (__tuple_count_v, __exactly_once): Likewise.
2178 * testsuite/18_support/headers/new/synopsis.cc
2179 (hardware_destructive_interference_size)
2180 (hardware_constructive_interference_size): Likewise for commented-out
2181 variables.
2182 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2183 test function for constexpr std::ignore (LWG 2773).
2184 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2185 test for LWG 2933.
2186
2187 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
2188
2189 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2190 guides for C++17.
2191 * include/bits/std_function.h (function): Likewise.
2192 * include/bits/stl_pair.h (pair): Likewise.
2193 * include/debug/array (__gnu_debug::array): Likewise.
2194 * include/std/array (array): Likewise.
2195 * include/std/functional (make_default_searcher)
2196 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2197 Remove generator functions.
2198 * include/std/tuple (tuple): Add deduction guides.
2199 * include/std/valarray (valarray): Likewise.
2200 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2201 class template argument deduction instead of generator functions.
2202 * testsuite/20_util/function/cons/deduction.cc: New test.
2203 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2204 * testsuite/20_util/optional/cons/deduction.cc: ... here.
2205 * testsuite/20_util/pair/cons/deduction.cc: New test.
2206 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2207 * testsuite/20_util/tuple/cons/deduction.cc: New test.
2208 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2209 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2210 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2211 * testsuite/23_containers/array/cons/deduction.cc: New test.
2212 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2213 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2214 Adjust dg-error.
2215 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2216 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2217 Likewise.
2218 * testsuite/26_numerics/valarray/deduction.cc: New test.
2219 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2220 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2221 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2222
2223 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
2224
2225 * include/bits/stl_deque.h (deque): Access allocator value_type only if
2226 concept checks are enabled.
2227 * include/bits/stl_stack.h (stack): Likewise.
2228 * include/bits/stl_vector.h (vector): Likewise.
2229 * include/bits/stl_list.h (list): Likewise and check
2230 _SGIAssignableConcept only in C++03.
2231 * include/bits/stl_map.h (map): Likewise.
2232 * include/bits/stl_set.h (set): Likewise.
2233 * include/bits/stl_multimap.h (multimap): Likewise.
2234 * include/bits/stl_multiset.h (multiset): Likewise.
2235 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
2236
2237 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
2238
2239 * doc/xml/manual/appendix_contributing.xml: Convert link to
2240 ansi.org to https.
2241 Update link to the C++ standard at ansi.org.
2242
2243 * doc/xml/faq.xml: Remove information redundant with the above;
2244 instead add a reference.
2245
2246 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
2247
2248 * src/c++11/codecvt.cc (range): Add non-type template parameter and
2249 define oerloaded operators for reading and writing code units.
2250 (range<Elem, false>): Define partial specialization for accessing
2251 wide characters in potentially unaligned byte ranges.
2252 (ucs2_span(const char16_t*, const char16_t*, ...))
2253 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
2254 to range<const char16_t, false> in order to avoid unaligned reads.
2255 (__codecvt_utf16_base<char16_t>::do_out)
2256 (__codecvt_utf16_base<char32_t>::do_out)
2257 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
2258 unaligned data to avoid unaligned writes.
2259 (__codecvt_utf16_base<char16_t>::do_in)
2260 (__codecvt_utf16_base<char32_t>::do_in)
2261 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
2262 error if there are unprocessable trailing bytes.
2263 (__codecvt_utf16_base<char16_t>::do_length)
2264 (__codecvt_utf16_base<char32_t>::do_length)
2265 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
2266 range<const char16_t, false> to span functions.
2267 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
2268
2269 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
2270
2271 PR libstdc++/79980
2272 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2273
2274 PR libstdc++/80041
2275 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2276 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2277 char16_t to work with UTF-16 instead of UTF-8.
2278 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2279
2280 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2281 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2282 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2283 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2284 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2285 (__codecvt_utf8_utf16_base<char32_t>)
2286 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2287 do_max_length() return values.
2288 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2289 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2290 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2291
2292 PR libstdc++/79980
2293 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2294 error path.
2295 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2296 for manipulating codecvt_mode values.
2297 (read_utf16_bom): Compare input to BOM constants instead of integral
2298 constants that depend on endianness. Take mode parameter by
2299 reference and adjust it, to distinguish between no BOM present and
2300 UTF-16BE BOM present.
2301 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2302 (surrogates): New enumeration type.
2303 (utf16_in, utf16_out): Add surrogates parameter to choose between
2304 UTF-16 and UCS2 behaviour.
2305 (utf16_span, ucs2_span): Use std::min not std::max.
2306 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
2307 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2308 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2309 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2310
2311 PR libstdc++/79511
2312 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2313 as a surrogate pair.
2314 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2315 for internal representation.
2316 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2317 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2318
2319 PR libstdc++/80064
2320 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2321 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2322 invalid instantiations using function types for _Compare argument.
2323 * testsuite/25_algorithms/make_heap/80064.cc: New test.
2324
2325 PR libstdc++/67440
2326 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2327 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2328
2329 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
2330
2331 Implement LWG 2857, {variant,optional,any}::emplace should
2332 return the constructed value.
2333 * include/std/any (emplace(_Args&&...)): Change the return type and
2334 return a reference to the constructed value.
2335 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2336 * include/std/optional (emplace(_Args&&...)): Likewise.
2337 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2338 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2339 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2340 (emplace<_Np>(_Args&&...)): Likewise.
2341 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2342 * testsuite/20_util/any/assign/emplace.cc: Add tests for
2343 checking the return value of emplace.
2344 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2345 * testsuite/20_util/optional/assignment/6.cc: Add tests for
2346 checking the return value of emplace.
2347 * testsuite/20_util/variant/run.cc: Likewise.
2348
2349 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2350
2351 PR libstdc++/62045
2352 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2353 (is_heap): Remove.
2354 (push_heap): Remove the wrong checking using is_heap.
2355 (make_heap): Remove the assertion using is_heap.
2356 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2357 (modify): Ditto.
2358 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2359 calling make_heap.
2360
2361 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
2362
2363 PR libstdc++/62045
2364 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2365 New test.
2366 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2367 error in comment.
2368
2369 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
2370
2371 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2372 comment.
2373 * config.h.in: Regenerate.
2374 * configure: Regenerate.
2375 * doc/Makefile.in: Regenerate.
2376
2377 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
2378
2379 PR libstdc++/79162
2380 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2381 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2382 with a constrained template.
2383 [!_GLIBCXX_USE_CXX11_ABI]
2384 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2385 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2386 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2387
2388 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2389
2390 PR libstdc++/80034
2391 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
2392 in the catch-block.
2393 (merge(list&&, _StrictWeakOrdering)): Likewise.
2394 * testsuite/23_containers/list/operations/80034.cc: New.
2395
2396 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2397
2398 Implement LWG 2806, Base class of bad_optional_access.
2399 * include/std/optional (bad_optional_access):
2400 Derive from std::exception.
2401 (bad_optional_access::bad_optional_access): Adjust.
2402 (bad_optional_access::what): New.
2403 (__throw_bad_optional_access(const char*)):
2404 Remove the parameter and adjust calls.
2405 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2406 * testsuite/20_util/optional/typedefs.cc: Likewise.
2407
2408 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
2409
2410 Implement LWG 2934, optional<const T> doesn't compare with T.
2411 * include/std/optional
2412 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
2413 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
2414 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2415 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
2416 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
2417 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
2418 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2419 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
2420 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
2421 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
2422 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
2423 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
2424 (operator==(const optional<_Tp>&, const _Tp&)):
2425 Turn into operator==(const optional<_Tp>&, const _Up&).
2426 (operator==(const _Tp&, const optional<_Tp>&)):
2427 Turn into operator==(const _Up&, const optional<_Tp>&).
2428 (operator!=(const optional<_Tp>&, const _Tp&)):
2429 Turn into operator!=(const optional<_Tp>&, const _Up&).
2430 (operator!=(const _Tp&, const optional<_Tp>&)):
2431 Turn into operator!=(const _Up&, const optional<_Tp>&).
2432 (operator<(const optional<_Tp>&, const _Tp&)):
2433 Turn into operator<(const optional<_Tp>&, const _Up&).
2434 (operator<(const _Tp&, const optional<_Tp>&)):
2435 Turn into operator<(const _Up&, const optional<_Tp>&).
2436 (operator>(const optional<_Tp>&, const _Tp&)):
2437 Turn into operator>(const optional<_Tp>&, const _Up&).
2438 (operator>(const _Tp&, const optional<_Tp>&)):
2439 Turn into operator>(const _Up&, const optional<_Tp>&).
2440 (operator<=(const optional<_Tp>&, const _Tp&)):
2441 Turn into operator<=(const optional<_Tp>&, const _Up&).
2442 (operator<=(const _Tp&, const optional<_Tp>&)):
2443 Turn into operator<=(const _Up&, const optional<_Tp>&).
2444 (operator>=(const optional<_Tp>&, const _Tp&)):
2445 Turn into operator>=(const optional<_Tp>&, const _Up&).
2446 (operator>=(const _Tp&, const optional<_Tp>&)):
2447 Turn into operator>=(const _Up&, const optional<_Tp>&).
2448 * testsuite/20_util/optional/relops/7.cc: New.
2449
2450 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
2451
2452 * testsuite/17_intro/names.cc: Undefine macros that clash with
2453 identifiers in AIX system headers.
2454
2455 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
2456 result_of, and __is_nothrow_invocable instead of
2457 __is_nothrow_callable.
2458 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
2459 instead of __is_callable.
2460 * include/std/functional (invoke): use invoke_result_t instead of
2461 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
2462 (_Not_fn): Use __invoke_result instead of result_of.
2463 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
2464 Remove partial specializations for reference_wrapper types.
2465 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
2466 (__invoke_result): Define replacement for result_of and then use it to
2467 define result_of.
2468 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
2469 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
2470 respectively.
2471 (invoke_result, invoke_result_t): Define for C++17.
2472 (is_callable, is_nothrow_callable): Replace with is_invocable,
2473 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
2474 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
2475 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
2476 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
2477 instead of is_nothrow_callable_v.
2478 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2479 main function.
2480 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
2481 instead of is_callable.
2482 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
2483 to use new traits.
2484 * testsuite/20_util/is_nothrow_callable/*: Likewise.
2485 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
2486 is_callable.
2487 * testsuite/20_util/variant/hash.cc: Likewise.
2488
2489 2017-03-10 George Lander <george.lander@arm.com>
2490
2491 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
2492 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
2493 * configure: Regenerate.
2494
2495 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
2496
2497 * include/std/functional (_Not_fn): Define macro to simplify
2498 repetitive function definitions.
2499
2500 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
2501 * include/c_global/cstddef (std::byte): Define for C++17.
2502 * testsuite/18_support/byte/global_neg.cc: New test.
2503 * testsuite/18_support/byte/ops.cc: New test.
2504 * testsuite/18_support/byte/requirements.cc: New test.
2505
2506 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
2507
2508 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
2509 * doc/html/*: Regenerate.
2510 * include/std/mutex (scoped_lock): Implement new C++17 template.
2511 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
2512 * testsuite/30_threads/scoped_lock/requirements/
2513 explicit_instantiation.cc: New test.
2514 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
2515
2516 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
2517 François Dumont <frs.dumont@gmail.com>
2518 Jonathan Wakely <jwakely@redhat.com>
2519
2520 * doc/xml/manual/debug_mode.xml: Update and simplify note
2521 on link- and run-time coexistence.
2522
2523 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
2524
2525 * testsuite/17_intro/headers/names.cc: Rename to ...
2526 * testsuite/17_intro/names.cc: ... here.
2527
2528 PR libstdc++/79789
2529 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
2530 parameters and local variables.
2531 * include/bits/ios_base.h (make_error_code, make_error_condition):
2532 Likewise.
2533 * include/bits/list.tcc (list::sort): Likewise.
2534 * include/bits/mask_array.h (mask_array): Likewise.
2535 * include/bits/regex.h (regex_token_iterator): Likewise.
2536 * include/bits/slice_array.h (slice_array): Likewise.
2537 * include/bits/stl_algo.h (__sample): Likewise.
2538 * include/std/memory (undeclare_no_pointers): Likewise.
2539 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
2540 Likewise.
2541 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
2542 * testsuite/17_intro/headers/names.cc: New test.
2543
2544 PR libstdc++/79798
2545 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
2546 result_of that loses top-level cv-qualifiers.
2547 * testsuite/20_util/bind/79798.cc: New test.
2548
2549 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
2550
2551 * doc/xml/manual/documentation_hacking.xml: Tweak link to
2552 doxygen.org.
2553
2554 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
2555
2556 * include/experimental/iterator: Include <iterator>.
2557 * testsuite/experimental/iterator/requirements.cc: Check for contents
2558 of <iterator>.
2559
2560 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
2561
2562 C++17 GB50 resolution
2563 * include/std/chrono (duration::operator++()): Add
2564 _GLIBCXX17_CONSTEXPR.
2565 (duration::operator++(int)): Likewise.
2566 (duration::operator--()): Likewise.
2567 (duration::operator--(int)): Likewise.
2568 (duration::operator+=(const duration&)): Likewise.
2569 (duration::operator-=(const duration&)): Likewise.
2570 (duration::operator*=(const rep&)): Likewise.
2571 (duration::operator/=(const rep&)): Likewise.
2572 (duration::operator%=(const rep&)): Likewise.
2573 (duration::operator%=(const duration&)): Likewise.
2574 (time_point::operator+=(const duration&)): Likewise.
2575 (time_point::operator-=(const duration&)): Likewise.
2576 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
2577 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
2578 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
2579
2580 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
2581
2582 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
2583
2584 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2585
2586 * doc/xml/manual/io.xml: Update link to groups.google.com.
2587 Tweak link description.
2588
2589 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2590
2591 * doc/xml/manual/profile_mode.xml: Fix link.
2592
2593 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
2594
2595 * doc/xml/manual/policy_data_structures.xml: Simplify and
2596 standardize references to boost.org.
2597 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
2598 * doc/xml/manual/shared_ptr.xml: Ditto.
2599
2600 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
2601
2602 PR libstdc++/60936
2603 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
2604 written to buffer, not length remaining in buffer.
2605
2606 2017-02-15 Tim Shen <timshen@google.com>
2607
2608 PR libstdc++/78723
2609 * include/std/variant (operator<(), operator>(), operator<=(),
2610 operator>=(), operator==(), operator!=()): Implement P0393R3.
2611 * testsuite/20_util/variant/compile.cc: Adjust tests.
2612 * testsuite/20_util/variant/run.cc: Adjust tests.
2613
2614 2017-02-15 Tim Shen <timshen@google.com>
2615
2616 PR libstdc++/79513
2617 * include/std/variant (visit()): Forward variant types to the return
2618 type detection code.
2619 * testsuite/20_util/variant/compile.cc: Add test cases.
2620
2621 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
2622
2623 PR libstdc++/79348
2624 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2625
2626 2017-02-13 Jakub Jelinek <jakub@redhat.com>
2627
2628 PR libstdc++/79348
2629 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2630 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2631 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
2632 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2633 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
2634 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
2635 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
2636 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
2637 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2638
2639 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
2640
2641 PR libstdc++/79486
2642 * include/std/future (__future_base::_Task_state::_M_run)
2643 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
2644 result_of expressions.
2645 * testsuite/30_threads/packaged_task/79486.cc: New.
2646
2647 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
2648
2649 PR libstdc++/79467
2650 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
2651 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
2652 __is_callable check.
2653 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
2654
2655 * include/bits/atomic_base.h: Re-indent.
2656
2657 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
2658
2659 * doc/xml/manual/profile_mode.xml: Update a paper reference.
2660
2661 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2662
2663 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
2664
2665 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
2666
2667 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
2668 name.
2669 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
2670 broken links to texts that are no longer online.
2671 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
2672 LCPC 2006 paper.
2673 * doc/xml/manual/using.xml: Update links to memory model information.
2674 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
2675 Standard-Library Exception Safety".
2676 * doc/html/*: Regenerate.
2677
2678 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2679
2680 * doc/xml/manual/profile_mode.xml: Unbreak link to
2681 "Optimizing Sorting with Machine Learning Algorithms".
2682
2683 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2684
2685 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
2686
2687 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2688
2689 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
2690 Migration Guide".
2691
2692 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
2693
2694 * doc/html/ext/lwg-active.html: Remove.
2695 * doc/html/ext/lwg-closed.html: Ditto.
2696 * doc/html/ext/lwg-defects.html: Ditto.
2697
2698 * doc/Makefile.am (xml_extradir): Remove.
2699 (xml_extra): Ditto.
2700 (stamp-html-docbook-lwg): Remove recipe...
2701 (stamp-html-docbook-data): ...and its use here.
2702 * doc/Makefile.in: Regenerate.
2703
2704 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
2705 the relationship to the upstream working group.
2706 Replace a local link to ../ext/lwg-active.html by the upstream one.
2707 Replace all reference to ../ext/lwg-defects.html by a new entity
2708 &DR; which refers to the upstream address.
2709
2710 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
2711
2712 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
2713
2714 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
2715
2716 PR libstdc++/79323
2717 * testsuite/20_util/duration/literals/range.cc: Prune extra output
2718 at -O0.
2719
2720 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
2721
2722 * doc/xml/manual/documentation_hacking.xml: Update URL of the
2723 DocBook Element Reference. Use that term as link description
2724 instead of "online".
2725 epubcheck has moved to GitHub.
2726 Remove obsolete link to DocBook Publishing Tools.
2727
2728 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
2729
2730 PR libstdc++/66145
2731 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
2732 so new ios::failure can be caught even when old ABI is the default.
2733 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2734 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2735 exceptions_failbit.cc: Likewise.
2736 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2737 exceptions_failbit.cc: Likewise.
2738 * testsuite/27_io/basic_istream/extractors_other/char/
2739 exceptions_null.cc: Likewise.
2740 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2741 exceptions_null.cc: Likewise.
2742 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2743 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2744 * testsuite/27_io/basic_ostream/inserters_other/char/
2745 exceptions_null.cc: Likewise.
2746 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2747 exceptions_null.cc: Likewise.
2748 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2749
2750 PR libstdc++/60936
2751 * src/c++11/Makefile.am: Add new files.
2752 * src/c++11/Makefile.in: Regenerate.
2753 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2754 (operator<<, operator>>, getline): Move explicit instantiations to ...
2755 * src/c++11/cow-string-io-inst.cc: ... new file.
2756 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2757 (operator<<, operator>>, getline): Move explicit instantiations to ...
2758 * src/c++11/cow-wstring-io-inst.cc: ... new file.
2759 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
2760 (__throw_future_error, __throw_bad_function_call):
2761 (__throw_regex_error): Move functions for C++11 exceptions to the
2762 files that define the exception types.
2763 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
2764 * src/c++11/future.cc (__throw_future_error): Likewise.
2765 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
2766 * src/c++11/regex.cc (__throw_regex_error): Likewise.
2767 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
2768 representation directly instead of calling __int_to_char.
2769 * src/c++11/sso_string.cc (__sso_string): New file for definition
2770 of __sso_string type.
2771 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2772 explicit instantiations of narrow string I/O functions.
2773 * src/c++11/system_error.cc (__throw_system_error): Move here.
2774 (__sso_string): Move to new file.
2775 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2776 explicit instantiations of wide string I/O functions.
2777 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2778 (operator>>, getline): Remove explicit instantiations from here.
2779
2780 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
2781
2782 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2783
2784 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2785
2786 * configure.host: Separate Solaris/SPARC and x86 baselines.
2787 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2788 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2789 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2790 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2791 ... here.
2792 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2793 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2794 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2795 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2796 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2797 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2798 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2799 ... here.
2800 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2801 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2802 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2803
2804 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2805 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2806 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2807 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2808 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2809 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2810
2811 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
2812
2813 PR libstdc++/78346
2814 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2815 not its referent.
2816 (_Iter_comp_to_iter): Likewise.
2817 * testsuite/25_algorithms/search/78346.cc: New test.
2818
2819 PR libstdc++/79254
2820 * config/abi/pre/gnu.ver: Remove recently added symbols.
2821 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2822 (basic_string::_M_copy_assign): Remove.
2823 (basic_string::operator=(const basic_string&)): Don't dispatch to
2824 _M_copy_assign. If source object is small just deallocate, otherwise
2825 perform new allocation before making any changes.
2826 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2827 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2828 Remove.
2829 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2830 Test cases where the allocators are equal or the string is small.
2831 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2832 Likewise.
2833
2834 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
2835
2836 Implement LWG 2825, LWG 2756 breaks class template argument
2837 deduction for optional.
2838 * include/std/optional: Add a deduction guide.
2839 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2840
2841 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
2842
2843 PR libstdc++/79254
2844 * config/abi/pre/gnu.ver: Add new symbols.
2845 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2846 (basic_string::_M_copy_assign): New overloaded functions to perform
2847 copy assignment.
2848 (basic_string::operator=(const basic_string&)): Dispatch to
2849 _M_copy_assign.
2850 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2851 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2852 Define, performing rollback on exception.
2853 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2854 Test exception-safety guarantee.
2855 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2856 Likewise.
2857 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2858 std::swap visible.
2859
2860 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
2861
2862 PR libstdc++/70607
2863 * include/tr1/complex (conj): Remove using-declaration and restore
2864 overloads, reverting previous change.
2865
2866 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2867 mode.
2868 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2869 Mark as unsupported in C++98 mode.
2870 * testsuite/23_containers/queue/requirements/constructible.cc:
2871 Likewise.
2872 * testsuite/23_containers/stack/requirements/constructible.cc:
2873 Likewise.
2874 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2875
2876 PR libstdc++/79243
2877 * include/bits/c++config (literals::string_view_literals::__7): Add.
2878 Only declare versioned namespaces for the relevant C++ dialects.
2879 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2880 Add versioning macros.
2881 * include/experimental/bits/lfts_config.h:
2882 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2883 * include/experimental/string_view (fundamentals_v2::__detail):
2884 Add versioning macros.
2885 (fundamentals_v2::__detail::__identity): Remove.
2886 (fundamentals_v2::__detail::__idt): Use common_type instead of
2887 __detail::__identity.
2888 * include/std/string_view (__detail::__identity, __detail::__idt):
2889 Likewise.
2890 (literals::string_view_literals): Fix nesting of versioning macros.
2891
2892 PR libstdc++/79190
2893 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2894 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2895 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2896 Retrieve original pointer value allocated by malloc.
2897 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2898 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2899 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2900 Define, adjusting pointer value allocated by malloc and storing for
2901 retrieval by operator delete.
2902
2903 2017-01-26 Jakub Jelinek <jakub@redhat.com>
2904
2905 * libsupc++/eh_atomics.h: Update copyright years.
2906 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2907
2908 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
2909
2910 PR libstdc++/61791
2911 PR libstdc++/70607
2912 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2913 (proj(T), conj(T)): Change return types per DR 1522.
2914 * include/tr1/complex (conj): Remove overloads and use std::conj.
2915 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2916 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2917 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2918 real(T) and imag(T). Allow testing for C++11 too.
2919
2920 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
2921
2922 PR libstdc++/79206
2923 * include/experimental/string_view (operator==): Check sizes first.
2924 * include/std/string_view (operator==): Likewise.
2925
2926 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2927
2928 * testsuite/experimental/array/make_array.cc: Restore <functional>
2929 inclusion.
2930
2931 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2932
2933 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2934
2935 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2936
2937 PR libstdc++/79195
2938 * include/experimental/array (__make_array_elem): New class template
2939 and partial specialization.
2940 (__is_reference_wrapper): Move into __make_array_elem specialization.
2941 (make_array): Use __make_array_elem to determine element type and move
2942 static assertion into specialization. Qualify std::forward call.
2943 (to_array): Add exception specifiation.
2944 * testsuite/experimental/array/make_array.cc: Test argument types
2945 without a common type.
2946 * testsuite/experimental/array/neg.cc: Adjust expected error message.
2947
2948 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2949
2950 * doc/xml/manual/debug.xml: code.google.com uses https now.
2951
2952 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2953
2954 * doc/xml/manual/test.xml: Fix link into gccint online manual.
2955
2956 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2957
2958 Make poisoned hashes SFINAE away the call operator of the hash.
2959 * include/bits/functional_hash.h
2960 (__poison_hash::__enable_hash_call): New.
2961 * include/std/optional (__optional_hash_call_base): New.
2962 (hash<optional<_Tp>>): Derive from the new base,
2963 move the hash function into that base.
2964 * include/std/variant (__variant_hash_call_base_impl): New.
2965 (__variant_hash_call_base): Likewise.
2966 (hash<variant<_Types...>>): Derive from the new base,
2967 move the hash function into that base.
2968 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2969 * testsuite/20_util/variant/hash.cc: Likewise.
2970
2971 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
2972
2973 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2974 * configure: Regenerate.
2975
2976 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
2977
2978 PR libstdc++/69240
2979 * include/bits/random.h (uniform_real_distribution::param_type)
2980 (normal_distribution::param_type, lognormal_distribution::param_type)
2981 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2982 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2983 (student_t_distribution::param_type)
2984 (bernoulli_distribution::param_type, binomial_distribution::param_type)
2985 (geometric_distribution::param_type)
2986 (negative_binomial_distribution::param_type)
2987 (poisson_distribution::param_type)
2988 (exponential_distribution::param_type)
2989 (weibull_distribution::param_type)
2990 (extreme_value_distribution::param_type)
2991 (discrete_distribution::param_type)
2992 (piecewise_constant_distribution::param_type)
2993 (piecewise_linear_distribution::param_type): Define operator!=.
2994 * include/bits/uniform_int_dist.h
2995 (uniform_int_distribution::param_type): Likewise.
2996 * include/ext/random (beta_distribution::param_type)
2997 (rice_distribution::param_type, nakagami_distribution::param_type)
2998 (pareto_distribution::param_type, k_distribution::param_type)
2999 (arcsine_distribution::param_type, hoyt_distribution::param_type)
3000 (triangular_distribution::param_type)
3001 (von_mises_distribution::param_type)
3002 (hypergeometric_distribution::param_type)
3003 (logistic_distribution::param_type)
3004 (uniform_on_sphere_distribution::param_type)
3005 (uniform_inside_sphere_distribution::param_type): Likewise.
3006 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3007 Test construction with param_type.
3008 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3009 Likewise.
3010 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3011 Likewise.
3012 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3013 Likewise.
3014 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3015 Likewise.
3016 * testsuite/26_numerics/random/extreme_value_distribution/cons/
3017 parms.cc: Likewise.
3018 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3019 Likewise.
3020 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3021 Likewise.
3022 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3023 Likewise.
3024 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3025 Likewise.
3026 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3027 parms.cc: Likewise.
3028 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3029 Likewise.
3030 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3031 Likewise.
3032 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3033 Likewise.
3034 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3035 Likewise.
3036 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3037 Likewise.
3038 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3039 Likewise.
3040 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3041 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3042 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3043 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3044 Likewise.
3045 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3046 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3047 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3048 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3049 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3050 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3051 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3052 Likewise.
3053 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3054 parms.cc: Likewise.
3055 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3056
3057 PR libstdc++/72792
3058 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3059 (__allocator_traits_base::__size_type): Remove.
3060 (allocator_traits::_Ptr): New class template to detect const and void
3061 pointer types without instantiating pointer_traits::rebind
3062 unnecessarily.
3063 (allocator_traits::_Diff): Likewise for detecting difference_type.
3064 (allocator_traits::_Size): New class template to detect size_type
3065 without instantiating make_unsigned unnecessarily.
3066 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3067 __detected_or_t instead of __detected_or_t_.
3068 * include/std/type_traits (__detected_or_t_): Remove.
3069 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3070
3071 PR libstdc++/72792
3072 PR libstdc++/72793
3073 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3074 Replace with class template using void_t.
3075 (__alloc_rebind): Define in terms of
3076 __allocator_traits_base::__rebind.
3077 (allocator_traits): Remove unconditional static_assert for
3078 rebind_alloc.
3079 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3080 (pointer_traits::__rebind): Replace with class template using void_t.
3081 (pointer_traits::rebind): Define in terms of __rebind.
3082 (pointer_traits): Remove unconditional static_assert for rebind.
3083 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3084 * testsuite/20_util/pointer_traits/rebind.cc: New test.
3085
3086 PR libstdc++/69321
3087 * include/experimental/any (__any_caster): Avoid instantiating
3088 manager function for types that can't be stored in any.
3089 * include/std/any (__any_caster): Likewise.
3090 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3091 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3092
3093 PR libstdc++/64903
3094 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3095 std::advance.
3096
3097 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
3098
3099 PR libstdc++/79156
3100 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3101 Fix return type.
3102 (__enable_shared_from_this): Declare __shared_ptr as a friend.
3103 * testsuite/ext/shared_ptr/1.cc: New test.
3104
3105 PR libstdc++/64903
3106 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3107 point.
3108 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3109
3110 * doc/xml/manual/abi.xml: Fix typo.
3111 * doc/html/manual/abi.html: Likewise.
3112
3113 PR libstdc++/67085
3114 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3115 converting constructors from _Iter_less_iter.
3116 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3117 _Iter_comp_iter.
3118 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3119 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3120 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3121 (__make_heap, __sort_heap): Change _Compare parameters to references.
3122 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3123 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3124 functions as lvalues.
3125 (is_heap): Call __is_heap_until directly to avoid copying __comp.
3126 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3127 count copies during construction with empty sequence.
3128
3129 PR libstdc++/67085
3130 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3131 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3132 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3133 number of copies.
3134 * testsuite/25_algorithms/make_heap/movable.cc: New test.
3135
3136 PR libstdc++/67085
3137 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3138 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3139 _GLIBCXX_MOVE when passing comparison function to other functions.
3140 (is_heap_until, is_heap): Use std::move when passing comparison
3141 function.
3142 * testsuite/23_containers/priority_queue/67085.cc: New test.
3143
3144 PR libstdc++/78905
3145 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3146 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3147 Document that the deprecated _GLIBCXX_VERSION macro was removed for
3148 the 4.0.0 release.
3149 * doc/html/*: Regenerate.
3150 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3151 * include/Makefile.in: Regenerate.
3152 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3153 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3154 dg-error.
3155
3156 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
3157
3158 PR libstdc++/69301
3159 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3160 aligned buffer instead of default-initialized variable.
3161 * testsuite/29_atomics/atomic/69301.cc: New test.
3162 * include/experimental/memory (observer_ptr::release): Use reserved
3163 name.
3164 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3165 (_Pointer_adapter::operator--(int)): Likewise.
3166
3167 PR libstdc++/68925
3168 * include/experimental/random (randint): Use temporary instead of
3169 thread_local static.
3170
3171 2017-01-17 Joshua Conner <joshconner@google.com>
3172
3173 * crossconfig.m4: Add fuchsia OS.
3174 * configure: Regenerate.
3175
3176 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
3177
3178 PR libstdc++/69699
3179 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3180 __GLIBCXX__ macro is not useful. Remove redundant date information
3181 and link to the GCC release timeline.
3182 (abi.versioning.active): Move partial sentence into the previous
3183 paragraph.
3184 * doc/html/*: Regenerate.
3185
3186 PR libstdc++/79114
3187 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3188 of remove_reference.
3189 * testsuite/18_support/nested_exception/79114.cc: New test.
3190
3191 2017-01-17 Jakub Jelinek <jakub@redhat.com>
3192
3193 PR other/79046
3194 * configure.ac: Add GCC_BASE_VER.
3195 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3196 get version from BASE-VER file.
3197 * po/Makefile.in: Regenerated.
3198 * libsupc++/Makefile.in: Regenerated.
3199 * testsuite/Makefile.in: Regenerated.
3200 * src/Makefile.in: Regenerated.
3201 * configure: Regenerated.
3202 * Makefile.in: Regenerated.
3203 * include/Makefile.in: Regenerated.
3204 * doc/Makefile.in: Regenerated.
3205 * python/Makefile.in: Regenerated.
3206 * src/c++11/Makefile.in: Regenerated.
3207 * src/c++98/Makefile.in: Regenerated.
3208 * src/filesystem/Makefile.in: Regenerated.
3209
3210 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
3211
3212 PR libstdc++/66145
3213 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3214 exceptions.
3215 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3216 for test, so new ios::failure can be caught.
3217 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3218 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3219 exceptions_failbit.cc: Likewise.
3220 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3221 exceptions_failbit.cc: Likewise.
3222 * testsuite/27_io/basic_istream/extractors_other/char/
3223 exceptions_null.cc: Likewise.
3224 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3225 exceptions_null.cc: Likewise.
3226 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3227 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3228 * testsuite/27_io/basic_ostream/inserters_other/char/
3229 exceptions_null.cc: Likewise.
3230 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3231 exceptions_null.cc: Likewise.
3232 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3233
3234 PR libstdc++/78702
3235 * include/bits/locale_classes.h (locale::facet::__shim): Change from
3236 private to protected.
3237 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
3238 make locale::facet::__shim accessible.
3239
3240 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
3241
3242 PR libstdc++/78389
3243 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
3244 (merge(list&&, _StrictWeakOrdering)): Likewise.
3245 * testsuite/23_containers/list/operations/78389.cc: Add
3246 better test for the sizes.
3247
3248 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
3249
3250 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3251 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
3252 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3253 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3254 Likewise.
3255 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
3256 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
3257 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
3258 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3259 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3260 Likewise.
3261 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
3262 Likewise.
3263 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
3264 Likewise.
3265 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3266 Likewise.
3267 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3268 Likewise.
3269 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
3270 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
3271 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
3272 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
3273 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3274 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3275 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3276 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3277 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3278 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3279 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3280 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3281 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3282
3283 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
3284
3285 PR libstdc++/65411
3286 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3287 retry fclose on EINTR.
3288
3289 * include/profile/base.h: Remove unused header that leads to header
3290 cycle in C++17 mode.
3291
3292 PR libstdc++/79075
3293 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3294 Make _If_sv private.
3295 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3296 basic_string_view arguments.
3297
3298 PR libstdc++/79075
3299 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3300 redundant option from cxxflags.
3301 (check_effective_target_cxx11-abi): Define.
3302 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3303 effective target.
3304 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3305 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3306 Likewise.
3307 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3308 Likewise.
3309 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3310 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3311 Likewise.
3312 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3313 Likewise.
3314 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3315 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3316 Likewise.
3317 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3318 Likewise.
3319 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3320 Likewise.
3321 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3322 Likewise.
3323 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3324 Likewise.
3325 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3326 Likewise.
3327 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3328 Likewise.
3329 * testsuite/23_containers/list/61347.cc: Likewise.
3330 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3331 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3332
3333 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3334
3335 PR libstdc++/78389
3336 * include/bits/list.tcc (merge(list&&)):
3337 Adjust list sizes if the comparator throws.
3338 (merge(list&&, _StrictWeakOrdering)): Likewise.
3339 (sort()): Splice elements back from the scratch buffers
3340 if the comparator throws.
3341 (sort(_StrictWeakOrdering)): Likewise.
3342 * testsuite/23_containers/list/operations/78389.cc: New.
3343
3344 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
3345
3346 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3347 XFAIL for C++17 until node reinsertion supports fancy pointers.
3348
3349 PR libstdc++/78361
3350 * testsuite/20_util/add_pointer/value.cc: Test forming function
3351 pointers.
3352
3353 2017-01-13 Michael Brune <lucdanton@free.fr>
3354
3355 PR libstdc++/78361
3356 * include/std/type_traits (__is_referenceable): Handle noexcept
3357 function types.
3358
3359 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
3360
3361 PR libstdc++/77528
3362 * include/bits/stl_queue.h (queue, priority_queue): Remove default
3363 member-initializers and define default constructors as templates with
3364 constraints.
3365 * include/bits/stl_stack.h (stack): Likewise.
3366 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3367 New.
3368 * testsuite/23_containers/priority_queue/requirements/
3369 explicit_instantiation/1.cc: Test more instantiations.
3370 * testsuite/23_containers/priority_queue/requirements/
3371 explicit_instantiation/1_c++98.cc: Likewise.
3372 * testsuite/23_containers/queue/requirements/constructible.cc: New.
3373 * testsuite/23_containers/stack/requirements/constructible.cc: New.
3374
3375 PR libstdc++/66284
3376 * doc/xml/manual/intro.xml: Document LWG 2781 change.
3377 * doc/html/*: Regenerate.
3378 * include/std/functional (_Function_base::_Ref_manager): Remove.
3379 (_Function_handler): Remove partial specializations for
3380 reference_wrapper.
3381 (function::target): Remove special case for const qualification.
3382 * testsuite/20_util/function/6.cc: Adjust tests for target type.
3383 * testsuite/20_util/function/7.cc: Likewise.
3384 * testsuite/20_util/function/8.cc: Likewise.
3385
3386 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
3387
3388 PR libstdc++/78134
3389 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3390 (map::equal_range): Fix return type of heterogeneous overloads.
3391 * include/bits/stl_multimap.h (multimap::lower_bound)
3392 (multimap::upper_bound, multimap::equal_range): Likewise.
3393 * include/bits/stl_multiset.h (multiset::lower_bound)
3394 (multiset::upper_bound, multiset::equal_range): Likewise.
3395 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3396 (set::equal_range): Likewise.
3397 * testsuite/23_containers/map/operations/2.cc
3398 * testsuite/23_containers/multimap/operations/2.cc
3399 * testsuite/23_containers/multiset/operations/2.cc
3400 * testsuite/23_containers/set/operations/2.cc
3401
3402 PR libstdc++/78273
3403 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3404 the heterogeneous comparison can only find one match.
3405 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
3406 * testsuite/23_containers/map/operations/2.cc: Test count works with
3407 comparison function that just partitions rather than sorting.
3408 * testsuite/23_containers/set/operations/2.cc: Likewise.
3409
3410 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
3411
3412 Reduce the size of variant, it doesn't need an index of
3413 type size_t internally.
3414 * include/std/variant (parse_numbers.h): New include.
3415 (__select_index): New.
3416 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
3417 _index_type for comparison with variant_npos.
3418 (_Variant_storage<false, _Types...>::__index_type): New.
3419 (_Variant_storage<false, _Types...>::_M_index): Change the
3420 type from size_t to __index_type.
3421 (_Variant_storage<true, _Types...>::__index_type): New.
3422 (_Variant_storage<true, _Types...>::_M_index): Change the
3423 type from size_t to __index_type.
3424 (_Variant_base::_M_valid): Use _Storage::__index_type
3425 for comparison with variant_npos.
3426 (variant::index): Use _Base::_Storage::__index_type
3427 for comparison with variant_npos.
3428 * testsuite/20_util/variant/index_type.cc: New.
3429
3430 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
3431
3432 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
3433 effective target selector to prevent running in C++17 mode.
3434
3435 PR libstdc++/77528
3436 * include/bits/stl_queue.h (queue::c): Add default member initializer.
3437 (queue::queue()): Add constructor and define as defaulted.
3438 (queue::queue(_Sequence&&)): Remove default argument.
3439 (priority_queue::c, priority_queue::comp): Add default member
3440 initializers.
3441 (priority_queue::priority_queue()): Add constructor and define as
3442 defaulted.
3443 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
3444 Remove default argument for first parameter.
3445 * include/bits/stl_stack.h (stack::c): Add default member initializer.
3446 (stack::stack()): Add constructor and define as defaulted.
3447 (stack::stack(const _Sequence&)): Remove default argument.
3448 * testsuite/23_containers/priority_queue/requirements/
3449 explicit_instantiation/1.cc: Test explicit instantiation with
3450 non-DefaultConstructible sequence.
3451 * testsuite/23_containers/priority_queue/77528.cc: New test.
3452 * testsuite/23_containers/priority_queue/requirements/
3453 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
3454 * testsuite/23_containers/queue/77528.cc: New test.
3455 * testsuite/23_containers/queue/requirements/explicit_instantiation/
3456 1.cc: Test explicit instantiation with non-DefaultConstructible
3457 sequence.
3458 * testsuite/23_containers/queue/requirements/explicit_instantiation/
3459 1_c++0x.cc: Replace with 1_c++98.cc.
3460 * testsuite/23_containers/stack/77528.cc: New test.
3461 * testsuite/23_containers/stack/requirements/explicit_instantiation/
3462 1.cc: Test explicit instantiation with non-DefaultConstructible
3463 sequence.
3464 * testsuite/23_containers/stack/requirements/explicit_instantiation/
3465 1_c++0x.cc: Replace with 1_c++98.cc.
3466
3467 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
3468
3469 * include/bits/locale_facets_nonio.tcc
3470 (time_get::_M_extract_via_format): Avoid compilation errors with
3471 non-standard struct tm.
3472
3473 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
3474 Jonathan Wakely <jwakely@redhat.com>
3475
3476 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
3477 (is_specialization, strip_versioned_namespace): New helpers functions
3478 to work with symbols in the versioned namespace.
3479 (Printer.add_version): Add second name using versioned namespace.
3480 (add_one_template_type_printer, add_one_type_printer): Add second
3481 type printers using versioned namespace.
3482 (register_type_printers): Add template type printer for basic_string.
3483 (build_libstdcxx_dictionary): Remove dead code.
3484 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
3485 versioned namespace.
3486 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
3487 results.
3488 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3489
3490 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
3491
3492 PR libstdc++/79017
3493 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
3494 functions separately on darwin and if they're missing define
3495 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
3496 * config.h.in: Regenerate.
3497 * configure: Regenerate.
3498 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
3499 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
3500
3501 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
3502 to detect correct thread_local destructors.
3503 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
3504 Define.
3505
3506 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
3507 Aditya Kumar <hiraditya@msn.com>
3508
3509 PR libstdc++/66414
3510 * include/bits/basic_string.tcc
3511 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
3512
3513 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
3514
3515 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
3516 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
3517
3518 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
3519 Include <cassert> header.
3520
3521 PR libstdc++/78968
3522 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
3523 * configure: Regenerate.
3524
3525 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
3526 Jonathan Wakely <jwakely@redhat.com>
3527
3528 * include/std/variant (variant, swap): Replace __and_ usage with fold
3529 expressions.
3530
3531 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3532
3533 PR go/78978
3534 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
3535 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
3536 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
3537 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
3538 HWCAP_FLAGS.
3539 * aclocal.m4: Regenerate.
3540 * configure: Regenerate.
3541 * Makefile.in, doc/Makefile.in, include/Makefile.in,
3542 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
3543 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
3544 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
3545
3546 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
3547
3548 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
3549
3550 PR libstdc++/78991
3551 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
3552 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
3553 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
3554 move function objects.
3555 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
3556 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
3557 * testsuite/25_algorithms/sort/78991.cc: New test.
3558
3559 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
3560
3561 * include/bits/std_function.h (function::_Signature_type): Remove.
3562 (function::function(_Functor)): Adjust.
3563
3564 2017-01-05 Tim Shen <timshen@google.com>
3565
3566 PR libstdc++/78996
3567 * include/std/variant (__gen_vtable_impl): rename __unused to
3568 __dimensions to avoid naming conflict.
3569
3570 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
3571
3572 PR libstdc++/78968
3573 * config.h.in: Regenerate.
3574 * configure: Likewise.
3575 * configure.ac: Check for __cxa_thread_atexit.
3576 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
3577 Don't define __cxa_thread_atexit if libc provides it.
3578
3579 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3580
3581 Implement 2801, Default-constructibility of unique_ptr.
3582 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
3583 (unique_ptr::_DeleterConstraint): Likewise.
3584 (unique_ptr()): Constrain.
3585 (unique_ptr(pointer)): Likewise.
3586 (unique_ptr(nullptr_t)): Likewise.
3587 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
3588 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
3589 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
3590 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
3591 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
3592 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
3593 * testsuite/20_util/unique_ptr/cons/default.cc: New.
3594 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
3595
3596 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
3597 Jonathan Wakely <jwakely@redhat.com>
3598
3599 PR libstdc++/64735
3600 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
3601 * config.h.in: Regenerate.
3602 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
3603 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
3604 exports for exception_ptr, nested_exception, and future conditional.
3605 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
3606 exports for exception_ptr, nested_exception, and future conditional.
3607 * configure: Regenerate.
3608 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
3609 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
3610 * libsupc++/eh_atomics.h: New file for internal use only.
3611 (__eh_atomic_inc, __eh_atomic_dec): New.
3612 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
3613 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
3614 (rethrow_exception): Use eh_atomics.h reference counting helpers.
3615 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
3616 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
3617 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
3618 * libsupc++/exception_ptr.h: Likewise.
3619 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
3620 * libsupc++/nested_exception.cc: Remove check for
3621 ATOMIC_INT_LOCK_FREE.
3622 * libsupc++/nested_exception.h: Likewise.
3623 * src/c++11/future.cc: Likewise.
3624 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
3625 * testsuite/18_support/nested_exception/*: Likewise.
3626 * testsuite/30_threads/async/*: Likewise.
3627 * testsuite/30_threads/future/*: Likewise.
3628 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3629 * testsuite/30_threads/packaged_task/*: Likewise.
3630 * testsuite/30_threads/promise/*: Likewise.
3631 * testsuite/30_threads/shared_future/*: Likewise.
3632
3633 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
3634
3635 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
3636 defaults to https; adjust reference.
3637
3638 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
3639
3640 PR libstdc++/78956
3641 * include/std/thread (thread(const thread&&)): Add deleted
3642 constructor.
3643 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
3644
3645 * doc/xml/manual/spine.xml: Update copyright years.
3646 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
3647 * doc/xml/manual/test.xml: Likewise.
3648 * doc/html/*: Regenerate.
3649
3650 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
3651
3652 * doc/xml/faq.xml: Update address of C++ ABI link.
3653 * doc/xml/manual/abi.xml: Ditto.
3654
3655 2017-01-01 Jakub Jelinek <jakub@redhat.com>
3656
3657 Update copyright years.
3658 \f
3659 Copyright (C) 2017 Free Software Foundation, Inc.
3660
3661 Copying and distribution of this file, with or without modification,
3662 are permitted in any medium without royalty provided the copyright
3663 notice and this notice are preserved.