Glen Joseph Fernandes
61cd19e6be
Add std::to_address for C++2a (P0653R2)
...
2017-11-28 Glen Joseph Fernandes <glenjofe@gmail.com>
* include/bits/ptr_traits.h (to_address): Implement to_address.
* testsuite/20_util/to_address/1.cc: New test.
From-SVN: r255199
2017-11-28 14:22:32 +00:00
Stephan Bergmann
0f42ffd7f7
Add missing noexcept in string_view::find_first_of declaration
...
2017-11-27 Stephan Bergmann <sbergman@redhat.com>
* include/std/string_view (basic_string_view::find_first_of): Add
missing noexcept.
From-SVN: r255176
2017-11-27 19:43:40 +00:00
Stephan Bergmann
68e601d879
Fix std::unordered_map deduction guide
...
2017-11-27 Stephan Bergmann <sbergman@redhat.com>
* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
* include/debug/unordered_map (unordered_map): Likewise.
From-SVN: r255174
2017-11-27 16:43:39 +00:00
Jonathan Wakely
a8541d9021
Add [[nodiscard]] attribute to std::launder
...
* libsupc++/new (launder): Add nodiscard attribute.
* testsuite/18_support/launder/nodiscard.cc: New test.
From-SVN: r255127
2017-11-24 00:00:46 +00:00
Jonathan Wakely
d69f1ec7d1
Add [[nodiscard]] attribute to C++17 components
...
* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
* include/bits/range_access.h (empty): Likewise.
* include/std/string_view (basic_string_view::empty): Likewise.
* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
test.
* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
From-SVN: r255124
2017-11-23 22:11:21 +00:00
Jonathan Wakely
4b9840f230
PR libstdc++/83134 Ensure std::__not_ converts B::value to bool
...
PR libstdc++/83134
* include/std/type_traits (__not_): Explicitly convert to bool.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
* testsuite/20_util/logical_traits/83134.cc: New test.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
From-SVN: r255122
2017-11-23 21:35:27 +00:00
Jonathan Wakely
e350134d72
PR go/83102 relax std::set checks for invocable comparison object
...
PR go/83102
* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
comparison object pre-C++17.
From-SVN: r255052
2017-11-22 11:06:15 +00:00
Jonathan Wakely
866e4d3853
PR libstdc++/48101 improve errors for invalid container specializations
...
PR libstdc++/48101
* include/bits/allocator.h (allocator<const _Tp>)
(allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
specializations.
* include/bits/forward_list.h (forward_list): Add static assertions.
* include/bits/hashtable.h (__cache_default): Use
__is_nothrow_invocable instead of __is_noexcept_hash.
(_Hashtable): Add static assertions.
* include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
* include/bits/stl_deque.h (deque): Add static assertions.
* include/bits/stl_function.h (_Identity<const _Tp>): Add partial
specialization.
* include/bits/stl_list.h (list): Add static assertions.
* include/bits/stl_map.h (map): Likewise.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_tree.h (_Rb_tree): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
Use typename instead of class in template-parameter-list and remove
spaces.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* testsuite/23_containers/deque/48101-2_neg.cc: New test.
* testsuite/23_containers/deque/48101_neg.cc: New test.
* testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
* testsuite/23_containers/forward_list/48101_neg.cc: New test.
* testsuite/23_containers/list/48101-2_neg.cc: New test.
* testsuite/23_containers/list/48101_neg.cc: New test.
* testsuite/23_containers/map/48101-2_neg.cc: New test.
* testsuite/23_containers/map/48101_neg.cc: New test.
* testsuite/23_containers/map/operations/31440.cc: Fix comparison
object to have const-qualified call operator.
* testsuite/23_containers/multimap/48101-2_neg.cc: New test.
* testsuite/23_containers/multimap/48101_neg.cc: New test.
* testsuite/23_containers/multiset/48101-2_neg.cc: New test.
* testsuite/23_containers/multiset/48101_neg.cc: New test.
* testsuite/23_containers/set/48101-2_neg.cc: New test.
* testsuite/23_containers/set/48101_neg.cc: New test.
* testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_map/48101_neg.cc: New test.
* testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
* testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
* testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
* testsuite/23_containers/unordered_set/48101_neg.cc: New test.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.
* testsuite/23_containers/vector/48101-2_neg.cc: New test.
* testsuite/23_containers/vector/48101_neg.cc: New test.
From-SVN: r255035
2017-11-21 20:47:09 +00:00
Przemyslaw Wirkus
b99415b760
Fix invalid XML in libstdc++ manual
...
2017-11-21 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* doc/xml/manual/using.xml (manual.intro.using.macros): Move
variablelist element at the end of its list.
From-SVN: r255023
2017-11-21 18:45:04 +00:00
Sebastian Huber
b76602dcf2
RTEMS: Enable some libstdc++ features
...
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
(GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
* configure: Regenerate.
From-SVN: r254985
2017-11-21 06:22:13 +00:00
François Dumont
e324f9cb92
streambuf_iterator.h (istreambuf_iterator<>): Declare std::advance for istreambuf_iterator of char types to be friend.
...
2017-11-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
std::advance for istreambuf_iterator of char types to be friend.
(std::advance(istreambuf_iterator&, _Distance)): New overload.
* include/std/streambuf (basic_streambuf<>): Declare std::advance for
istreambuf_iterator of char types to be friend.
* testsuite/22_locale/money_get/get/char/9.cc: Have
istreambuf_iterator created on the fly when calling money_get<>::get.
* testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
* testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
* testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
New.
* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
New.
* testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
on std::advance overload.
* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
Likewise.
From-SVN: r254972
2017-11-20 22:30:28 +00:00
Jonathan Wakely
9be0a9d6d2
Fix failing tests caused by duplicate dg-options
...
* testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
duplicate dg-options directive.
* testsuite/tr1/5_numerical_facilities/special_functions/
20_riemann_zeta/check_value_neg.cc: Likewise.
From-SVN: r254971
2017-11-20 21:48:31 +00:00
Ville Voutilainen
7b7b60c830
Implement LWG 2353
...
* include/bits/stl_iterator_base_funcs.h (next):
Use InputIterator instead of ForwardIterator.
* testsuite/24_iterators/operations/lwg2353.cc: New.
* testsuite/24_iterators/operations/next_neg.cc: Remove.
From-SVN: r254957
2017-11-20 16:21:42 +02:00
Edward Smith-Rowland
b46881363f
PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
...
2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
* include/tr1/ell_integral.tcc: Correct the nu sign convention
in ellint_3 and comp_ellint_3.
* testsuite/tr1/5_numerical_facilities/special_functions/
06_comp_ellint_3/check_value.cc: Regen with correct values.
* testsuite/tr1/5_numerical_facilities/special_functions/
14_ellint_3/check_value.cc: Ditto.
* testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
* testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/
01_assoc_laguerre/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
02_assoc_legendre/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
03_beta/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
04_comp_ellint_1/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
05_comp_ellint_2/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
07_conf_hyperg/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
08_cyl_bessel_i/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
09_cyl_bessel_j/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
10_cyl_bessel_k/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
11_cyl_neumann/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
12_ellint_1/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
13_ellint_2/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
15_expint/check_value_neg.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
16_hermite/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
17_hyperg/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
18_laguerre/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
19_legendre/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
20_riemann_zeta/check_value_neg.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
21_sph_bessel/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
22_sph_legendre/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
23_sph_neumann/check_value.cc: Regen.
* testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
* testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
* testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
* testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
* testsuite/special_functions/03_beta/check_value.cc: Regen.
* testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
* testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
* testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
* testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
* testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
* testsuite/special_functions/14_expint/check_value.cc: Regen.
* testsuite/special_functions/15_hermite/check_value.cc: Regen.
* testsuite/special_functions/16_laguerre/check_value.cc: Regen.
* testsuite/special_functions/17_legendre/check_value.cc: Regen.
* testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
* testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
* testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
* testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
* testsuite/tr1/5_numerical_facilities/special_functions/
06_comp_ellint_3/pr66689.cc: New.
* testsuite/tr1/5_numerical_facilities/special_functions/
14_ellint_3/pr66689.cc: New.
* testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
* testsuite/special_functions/13_ellint_3/pr66689.cc: New.
From-SVN: r254924
2017-11-19 01:01:50 +00:00
Edward Smith-Rowland
a7a389d6ee
specfun.h: Expose airy_ai and airy_bi.
...
2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/bits/specfun.h: Expose airy_ai and airy_bi.
* include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
* testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
* testsuite/ext/special_functions/airy_ai/check_value.cc: New.
* testsuite/ext/special_functions/airy_ai/compile.cc: New.
* testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
* testsuite/ext/special_functions/airy_bi/check_value.cc: New.
* testsuite/ext/special_functions/airy_bi/compile.cc: New.
From-SVN: r254917
2017-11-18 19:53:25 +00:00
Igor Tsimbalist
36101de964
Enable building libstdc++-v3 with Intel CET
...
libstdc++-v3/
* acinclude.m4: Add cet.m4.
* configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
EXTRA_CXX_FLAGS.
* libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r254895
2017-11-17 22:28:10 +01:00
Jonathan Wakely
96e0367ead
PR libstdc++/83025 fix constraints for path overloads in <fstream>
...
PR libstdc++/83025
* include/std/fstream (basic_filebuf::_If_path): Move to
namespace-scope and rename to _If_fs_path.
(basic_filebuf::open): Use new name.
(basic_ifstream(_Path, ios::openmode))
(basic_ifstream::open(_Path, ios::openmode))
(basic_ofstream(_Path, ios::openmode))
(basic_ofstream::open(_Path, ios::openmode))
(basic_fstream(_Path, ios::openmode))
(basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
* testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
as non-const char*.
* testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
* testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
* testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
* testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
* testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
* testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
From-SVN: r254871
2017-11-17 14:07:58 +00:00
Marc Glisse
c261ba2c8b
Tweak vector::_M_realloc_insert for code size
...
2017-11-17 Marc Glisse <marc.glisse@inria.fr>
* include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
values before the allocation.
From-SVN: r254849
2017-11-16 23:51:20 +00:00
Jason Merrill
aef0c806eb
Remove wrong ChangeLog entry
...
From-SVN: r254831
2017-11-16 11:24:53 -05:00
Jonathan Wakely
a930324dab
Add noexcept to std::shared_future copy operations (LWG DR 2799)
...
* include/std/future (shared_future): Add noexcept to copy constructor
and copy-assignment operator (LWG 2799).
From-SVN: r254821
2017-11-16 14:39:41 +00:00
Jason Merrill
00a2022a67
* include/std/numeric (gcd): Fix typo.
...
From-SVN: r254794
2017-11-16 00:13:16 -05:00
Ville Voutilainen
865a86a0fd
Fix gcd breakage.
...
* include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
From-SVN: r254785
2017-11-15 22:42:58 +02:00
Jonathan Wakely
4e6c429837
Minor improvements to Filesystem tests
...
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
error_code unset.
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
Check for past-the-end before dereferencing.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.
From-SVN: r254781
2017-11-15 18:22:43 +00:00
Jonathan Wakely
1949122881
Add noexcept to generic std::size, std::empty and std::data
...
* include/bits/range_access.h (size, empty, data): Add conditional
noexcept to generic overloads.
From-SVN: r254779
2017-11-15 17:50:42 +00:00
Ville Voutilainen
13545f19e0
Implement LWG 2733 and LWG 2759
...
* include/experimental/numeric (gcd): Reject cv-qualified bool.
(lcm): Likewise.
* include/std/numeric (gcd): Likewise.
(lcm): Likewise.
* testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
From-SVN: r254736
2017-11-14 20:11:33 +02:00
Jonathan Wakely
d2e9196e5f
Fix typo in std::wbuffer_convert
...
* include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
* testsuite/22_locale/conversions/buffer/3.cc: New test.
From-SVN: r254735
2017-11-14 18:00:53 +00:00
Jonathan Wakely
34c71b8b3a
Minor tweak to libstdc++ testsuite helper type
...
* testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
From-SVN: r254644
2017-11-11 00:10:07 +00:00
Jonathan Wakely
54df588530
PR libstdc++/82917 add missing returns in <fstream>
...
PR libstdc++/82917
* include/std/fstream (basic_ifstream::open, basic_ofstream::open)
(basic_fstream::open): Fix missing return.
From-SVN: r254638
2017-11-10 21:43:24 +00:00
Jonathan Wakely
d8dcc3a67d
Check for S_ISSOCK before use
...
* src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
S_ISSOCK when defined.
From-SVN: r254506
2017-11-07 19:08:06 +00:00
François Dumont
187e8ee733
tr1.cc: Compile with -O0.
...
2017-11-06 François Dumont <fdumont@gcc.gnu.org>
* testsuite/libstdc++-prettyprinters/tr1.cc: Compile with -O0.
From-SVN: r254477
2017-11-06 21:15:48 +00:00
Martin Liska
454f8b2b0c
Fix -Wreturn-type fallout.
...
2017-11-06 Martin Liska <mliska@suse.cz>
* c-c++-common/cilk-plus/AN/pr57541-2.c (foo1): Return a value
for functions with non-void return type, or change type to void,
or add -Wno-return-type for test.
(foo2): Likewise.
* c-c++-common/cilk-plus/AN/pr57541.c (foo): Likewise.
(foo1): Likewise.
* c-c++-common/cilk-plus/CK/errors.c: Likewise.
* c-c++-common/cilk-plus/CK/pr60197.c: Likewise.
* c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise.
* c-c++-common/fold-masked-cmp-1.c (test_pic): Likewise.
(test_exe): Likewise.
* c-c++-common/fold-masked-cmp-2.c (test_exe): Likewise.
* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc (my_func): Likewise.
* g++.dg/cilk-plus/CK/pr68997.cc (fa2): Likewise.
* g++.dg/eh/sighandle.C (dosegv): Likewise.
* g++.dg/ext/vector14.C (foo): Likewise.
(main): Likewise.
* g++.dg/graphite/pr41305.C: Likewise.
* g++.dg/graphite/pr42930.C: Likewise.
* g++.dg/opt/pr46640.C (struct QBasicAtomicInt): Likewise.
(makeDir): Likewise.
* g++.dg/other/i386-8.C (foo): Likewise.
* g++.dg/pr45788.C: Likewise.
* g++.dg/pr64688.C (at_c): Likewise.
* g++.dg/pr65032.C (G::DecodeVorbis): Likewise.
* g++.dg/pr71633.C (c3::fn2): Likewise.
* g++.dg/stackprotectexplicit2.C (A): Likewise.
* g++.old-deja/g++.law/weak.C (main): Likewise.
2017-11-06 Martin Liska <mliska@suse.cz>
* testsuite/libgomp.c++/loop-2.C: Return a value
for functions with non-void return type, or change type to void,
or add -Wno-return-type for test.
* testsuite/libgomp.c++/loop-4.C: Likewise.
* testsuite/libgomp.c++/parallel-1.C: Likewise.
* testsuite/libgomp.c++/shared-1.C: Likewise.
* testsuite/libgomp.c++/single-1.C: Likewise.
* testsuite/libgomp.c++/single-2.C: Likewise.
2017-11-06 Martin Liska <mliska@suse.cz>
* testsuite/27_io/basic_fstream/cons/char/path.cc (main):
Return a value for functions with non-void return type,
or change type to void, or add -Wno-return-type for test.
* testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
Likewise.
* testsuite/27_io/basic_ofstream/open/char/path.cc (main):
Likewise.
From-SVN: r254451
2017-11-06 13:41:35 +00:00
Paolo Carlini
98910bc2b9
deduction.cc: Avoid -Wreturn-type warnings.
...
2017-11-06 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
warnings.
* testsuite/20_util/pair/cons/deduction.cc: Likewise.
* testsuite/20_util/pair/traits.cc: Likewise.
* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
* testsuite/20_util/variant/compile.cc: Likewise.
* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
Likewise.
From-SVN: r254450
2017-11-06 12:55:35 +00:00
Gerald Pfeifer
ba89e5d5a7
* doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
...
From-SVN: r254426
2017-11-05 11:14:38 +00:00
Jonathan Wakely
e641ee437f
Define std::endian for C++2a (P0463R1)
...
* include/std/type_traits (endian): Define new enumeration type.
* testsuite/20_util/endian/1.cc: New test.
From-SVN: r254381
2017-11-03 15:45:49 +00:00
Jonathan Wakely
97695d99b0
Remove _Node_insert_return::get() member functions (P0508R0)
...
* include/bits/node_handle.h (_Node_insert_return::get): Remove, as
per P0508R0.
From-SVN: r254368
2017-11-03 11:04:45 +00:00
François Dumont
86397ed17c
printers.py (StdExpAnyPrinter.__init__): Strip typename versioned namespace before the substitution.
...
2017-11-01 François Dumont <fdumont@gcc.gnu.org>
* python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
typename versioned namespace before the substitution.
(StdExpOptionalPrinter.__init__): Likewise.
(StdVariantPrinter.__init__): Likewise.
(Printer.add_version): Inject versioned namespace after std or
__gnu_cxx.
(build_libstdcxx_dictionary): Adapt add_version usages, always pass
namespace first and symbol second.
From-SVN: r254320
2017-11-01 17:52:05 +00:00
Jonathan Wakely
50e248f0c8
PR libstdc++/82777 fix path normalization for dot-dot
...
PR libstdc++/82777
* src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
elements correctly.
* testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
* testsuite/util/testsuite_fs.h (compare_paths): Improve exception
text.
From-SVN: r254317
2017-11-01 17:09:14 +00:00
Jonathan Wakely
97b99f9c77
Don't create broken symlink in libstdc++-v3/include/bits
...
* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
to stamp-bits.
* include/Makefile.in: Regenerate.
From-SVN: r254229
2017-10-30 16:28:13 +00:00
Jonathan Wakely
0a6e98b78b
Remove ios_mode::trunc from basic_ofstream openmode arguments
...
* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
Remove outdated comments about calling c_str() to create a file stream
from a std::string.
(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
redundant ios_mode::trunc bits from default arguments and comments.
From-SVN: r254226
2017-10-30 15:35:02 +00:00
Jonathan Wakely
932bfa9bc7
Minor tweak to libstdc++ FAQ
...
* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
From-SVN: r254224
2017-10-30 14:56:23 +00:00
Jonathan Wakely
02a2c6303f
Minor header reorganization for unordered containers
...
* include/bits/hashtable_policy.h: Include <tuple>.
* include/std/unordered_map: Only include <bits/stl_pair.h> instead
of <utility> and <tuple>.
* include/std/unordered_set: Likewise.
From-SVN: r254223
2017-10-30 14:54:28 +00:00
Ville Voutilainen
ccbbf8df05
Implement LWG 2485
...
* include/debug/array (get(const array<_Tp, _Nm>&&)): New.
* include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
* include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
(get(const tuple<_Types...>&&)): Likewise.
* include/std/utility
(__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
Likewise.
(get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
(get(const pair<_Tp, _Up>&&)): Likewise.
(get(const pair<_Up, _Tp>&&)): Likewise.
* testsuite/20_util/pair/astuple/get.cc: Add tests for
new overloads.
* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
From-SVN: r254222
2017-10-30 16:31:04 +02:00
Jonathan Wakely
6c6705a904
Simplify _Node_insert_return to avoid including <tuple>
...
* include/bits/node_handle.h (_Node_insert_return::get): Avoid
use of std::tie and std::get.
From-SVN: r254162
2017-10-27 18:49:36 +01:00
Jonathan Wakely
5880ce184a
List headers in Makefile in alphabetical order
...
* include/Makefile.am: Put headers in alphabetical order.
* include/Makefile.in: Regenerate.
From-SVN: r254161
2017-10-27 18:49:32 +01:00
Jonathan Wakely
29453a9ffd
Remove noexcept from filesystem iterators and operations (LWG 3013, 3014)
...
* include/bits/fs_dir.h (directory_iterator): Remove noexcept from
constructors and increment member (LWG 3013).
(recursive_directory_iterator): Likewise.
* include/bits/fs_ops.h (copy, copy_file, create_directories)
(is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
* src/filesystem/std-dir.cc (directory_iterator::increment)
(recursive_directory_iterator::increment): Remove noexcept.
* src/filesystem/std-ops.cc (copy, copy_file, create_directories)
(is_empty, remove_all): Remove noexcept
From-SVN: r254160
2017-10-27 18:49:29 +01:00
Jonathan Wakely
9a3effa411
Make filesystem::file_status default constructor non-explicit (LWG 2787)
...
* include/bits/fs_dir.h (file_status): Make default constructor
non-explicit (LWG 2787).
* testsuite/27_io/filesystem/file_status/1.cc: New test.
* testsuite/experimental/filesystem/file_status/1.cc: New test.
From-SVN: r254159
2017-10-27 18:49:21 +01:00
Jonathan Wakely
d49f254a6c
Provide filesystem::path overloads for file streams (LWG 2676, partial)
...
* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
(basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_fstream<Path>(const Path&, const ios_base::openmode&))
(basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
New constructors and member functions.
* testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
* testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_fstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
From-SVN: r254148
2017-10-27 13:39:01 +01:00
Jonathan Wakely
0348dd008a
Define std::filesystem::path::format enum (P0430R2)
...
* include/bits/fs_path.h (path::format): Define new enumeration type.
(path(string_type&&), path<Source>(const Source&))
(path<InputIterator>(InputIterator, InputIterator))
(path<Source>(const Source&, const locale&))
(path<InputIterator>(InputIterator, InputIterator, const locale&)):
Add format parameter.
* testsuite/27_io/filesystem/path/construct/format.cc: New test.
From-SVN: r254144
2017-10-27 13:01:49 +01:00
Jonathan Wakely
d67be4437a
Protect more algorithms from overloaded comma operators
...
* include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
to ensure overloaded comma not used.
* include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
* include/bits/stl_uninitialized.h (__uninitialized_fill_n)
(__uninitialized_fill_n_a, __uninitialized_default_n_1)
(__uninitialized_default_n_a, __uninitialized_copy_n)
(__uninitialized_copy_n_pair): Likewise
* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
Use test iterator wrappers with overloaded comma operator.
* testsuite/25_algorithms/fill_n/1.cc: Likewise.
* testsuite/25_algorithms/generate_n/1.cc: New test.
* testsuite/25_algorithms/stable_partition/1.cc: New test.
* testsuite/util/testsuite_iterators.h (operator,): Add deleted
non-member comma operator with iterator wrappers as right operand.
From-SVN: r254128
2017-10-27 00:50:40 +01:00
Ville Voutilainen
957f5feacf
Deduction guides for associative containers, debug mode deduction guide fixes.
...
* include/bits/stl_iterator.h (__iter_key_t)
(__iter_val_t, __iter_to_alloc_t): New.
* include/bits/stl_map.h: Add deduction guides.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/debug/deque: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/list: Likewise.
* include/debug/map.h: Likewise.
* include/debug/multimap.h: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* testsuite/23_containers/map/cons/deduction.cc: New.
* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
* testsuite/23_containers/set/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
From-SVN: r254113
2017-10-26 19:42:31 +03:00
Jonathan Wakely
5fdbeb16d7
Update C++17 library status documentation
...
* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
information on feature-test macros.
* doc/html/*: Regenerate.
From-SVN: r254078
2017-10-25 15:06:12 +01:00
Jonathan Wakely
30e0aed183
PR libstdc++/82716 avoid stupid -Wmismatched-tags warnings
...
PR libstdc++/82716
* include/std/array (tuple_size, tuple_element): Change class-key
from class to struct, to avoid annoying Clang warnings.
From-SVN: r254077
2017-10-25 14:55:56 +01:00
Jonathan Wakely
220645d019
PR libstdc++/79283 fix filesystem::read_symlink for /proc
...
PR libstdc++/79283
* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
* src/filesystem/std-ops.cc (read_symlink): Likewise.
(do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
From-SVN: r254076
2017-10-25 13:42:58 +01:00
Jonathan Wakely
eeb517d3e7
Fix filesystem::path::lexically_normal algorithm
...
* src/filesystem/std-path.cc (path::lexically_normal): Add missing
step to algorithm, for removing dot-dot elements after root-directory.
* testsuite/27_io/filesystem/operations/canonical.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
* testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
Likewise.
* testsuite/27_io/filesystem/path/generation/normal.cc: Use
compare_paths for more exhaustive checks. Add extra testcases.
* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
* testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
unused header.
* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
comment.
* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
Likewise.
* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
Likewise.
* testsuite/util/testsuite_fs.h (compare_paths): Also compare native
strings.
From-SVN: r254075
2017-10-25 13:42:53 +01:00
Jonathan Wakely
e921c7e5a6
PR libstdc++/82706 fix test for case where operations succeed
...
PR libstdc++/82706
* testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
From-SVN: r254067
2017-10-25 01:27:10 +01:00
François Dumont
8468bfe8cb
libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.
...
2017-10-24 François Dumont <fdumont@gcc.gnu.org>
* testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
c++config.h include.
(check_v3_target_normal_namespace): New.
* testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
* testsuite/18_support/headers/limits/synopsis.cc: Add latter.
* testsuite/20_util/from_chars/requirements.cc: Likewise.
* testsuite/20_util/headers/functional/synopsis.cc: Likewise.
* testsuite/20_util/headers/memory/synopsis.cc: Likewise.
* testsuite/20_util/headers/utility/synopsis.cc: Likewise.
* testsuite/20_util/to_chars/requirements.cc: Likewise.
* testsuite/21_strings/headers/string/synopsis.cc: Likewise.
* testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
* testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
* testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
* testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
* testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
* testsuite/27_io/headers/ios/synopsis.cc: Likewise.
* testsuite/27_io/headers/istream/synopsis.cc: Likewise.
* testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
* testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
* testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
From-SVN: r254060
2017-10-24 20:20:12 +00:00
Jonathan Wakely
d56a36834f
Avoid -Wattribute-alias warnings for long double compat symbols
...
* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
-Wattribute-alias warnings.
* src/c++11/istream-inst.cc: Likewise.
* src/c++11/locale-inst.cc: Likewise.
* src/c++11/ostream-inst.cc: Likewise.
* src/c++11/wlocale-inst.cc: Likewise.
* src/c++98/hash-long-double-tr1-aux.cc: Likewise.
From-SVN: r254045
2017-10-24 14:18:59 +01:00
Jonathan Wakely
02e2a7d8ef
Refactor std::basic_string_view members and add noexcept
...
* include/bits/string_view.tcc (find_first_of, find_last_of)
(find_first_not_of, find_last_not_of): Add noexcept.
* include/std/string_view (basic_string_view(const _CharT*))
(basic_string_view(const _CharT*, size_type))
(front, back, remove_prefix, remove_suffix, find, rfind)
(find_first_of, find_first_not_of): Add noexcept.
(at(size_type), _S_compare(size_type, size_type)): Replace conditional
expressions with if statements.
(copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
Use _M_check for length checks.
(compare(basic_string_view)): Reformat.
(_M_check(size_type, const char)): Add noexcept(false).
(_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
From-SVN: r254044
2017-10-24 14:18:52 +01:00
Jonathan Wakely
6a19d2a2ee
PR libstdc++/82685 add 'noexcept' to string_view literals
...
PR libstdc++/82685
* include/experimental/string_view (operator""sv): Add noexcept.
* include/std/string_view (operator""sv): Likewise.
From-SVN: r254041
2017-10-24 12:28:40 +01:00
Jonathan Wakely
641cb5a675
Implement C++17 Filesystem library
...
Based on Filesystem TS implementation, with the changes applied by:
- P0219R1 Relative Paths for Filesystem
- P0317R1 Directory Entry Caching for Filesystem
- P0492R2 Resolution of C++17 National Body Comments
Where appropriate code is shared between the TS and C++17
implementations.
* include/Makefile.am: Add new headers for C++17 filesystem library.
* include/Makefile.in: Regenerate.
* include/bits/fs_dir.h: New header, based on Filesystem TS code in
include/experimental/bits directory.
* include/bits/fs_fwd.h: Likewise.
* include/bits/fs_ops.h: Likewise.
* include/bits/fs_path.h: Likewise.
* include/experimental/bits/fs_dir.h: Rename Doxygen group.
* include/experimental/bits/fs_fwd.h: Likewise.
* include/experimental/bits/fs_ops.h: Likewise.
* include/experimental/bits/fs_path.h: Likewise.
* include/experimental/filesystem (filesystem_error::_M_gen_what):
Remove inline definition.
* include/precompiled/stdc++.h: Add <filesystem> to precompiled
header.
* include/std/filesystem: New header.
* python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
paths.
* src/filesystem/Makefile.am: Add new files. Compile as C++17.
* src/filesystem/Makefile.in: Regenerate.
* src/filesystem/cow-dir.cc: Update comment.
* src/filesystem/cow-ops.cc: Likewise.
* src/filesystem/cow-path.cc: Likewise.
* src/filesystem/cow-std-dir.cc: New file.
* src/filesystem/cow-std-ops.cc: New file.
* src/filesystem/cow-std-path.cc: New file.
* src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
for common code.
* src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
(open_dir): Move to _Dir_base constructor.
(get_file_type): Move to dir-common.h.
(recurse): Move to _Dir_base::should_recurse.
* src/filesystem/ops-common.h: New header for common code.
* src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
(is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
* src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
* src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
* src/filesystem/std-ops.cc: Likewise.
* src/filesystem/std-dir.cc: Likewise.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
test.
* testsuite/27_io/filesystem/iterators/pop.cc: New test.
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
New test.
* testsuite/27_io/filesystem/operations/absolute.cc: New test.
* testsuite/27_io/filesystem/operations/canonical.cc: New test.
* testsuite/27_io/filesystem/operations/copy.cc: New test.
* testsuite/27_io/filesystem/operations/copy_file.cc: New test.
* testsuite/27_io/filesystem/operations/create_directories.cc: New
test.
* testsuite/27_io/filesystem/operations/create_directory.cc: New test.
* testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
* testsuite/27_io/filesystem/operations/current_path.cc: New test.
* testsuite/27_io/filesystem/operations/equivalent.cc: New test.
* testsuite/27_io/filesystem/operations/exists.cc: New test.
* testsuite/27_io/filesystem/operations/file_size.cc: New test.
* testsuite/27_io/filesystem/operations/is_empty.cc: New test.
* testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
* testsuite/27_io/filesystem/operations/permissions.cc: New test.
* testsuite/27_io/filesystem/operations/proximate.cc: New test.
* testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
* testsuite/27_io/filesystem/operations/relative.cc: New test.
* testsuite/27_io/filesystem/operations/remove_all.cc: New test.
* testsuite/27_io/filesystem/operations/space.cc: New test.
* testsuite/27_io/filesystem/operations/status.cc: New test.
* testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
test.
* testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
* testsuite/27_io/filesystem/path/append/path.cc: New test.
* testsuite/27_io/filesystem/path/assign/assign.cc: New test.
* testsuite/27_io/filesystem/path/assign/copy.cc: New test.
* testsuite/27_io/filesystem/path/compare/compare.cc: New test.
* testsuite/27_io/filesystem/path/compare/path.cc: New test.
* testsuite/27_io/filesystem/path/compare/strings.cc: New test.
* testsuite/27_io/filesystem/path/concat/path.cc: New test.
* testsuite/27_io/filesystem/path/concat/strings.cc: New test.
* testsuite/27_io/filesystem/path/construct/copy.cc: New test.
* testsuite/27_io/filesystem/path/construct/default.cc: New test.
* testsuite/27_io/filesystem/path/construct/locale.cc: New test.
* testsuite/27_io/filesystem/path/construct/range.cc: New test.
* testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
* testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
* testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
* testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
* testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
test.
* testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
test.
* testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
* testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
* testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
* testsuite/27_io/filesystem/path/generation/normal.cc: New test.
* testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
* testsuite/27_io/filesystem/path/generation/relative.cc: New test.
* testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
* testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
* testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
test.
* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
test.
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
test.
* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
test.
* testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
* testsuite/27_io/filesystem/path/native/string.cc: New test.
* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
* testsuite/27_io/filesystem/path/query/empty.cc: New test.
* testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
* testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
* testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
* testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
test.
* testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
test.
* testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
* testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
* testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
* testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
* testsuite/experimental/filesystem/path/construct/string_view.cc:
Define USE_FILESYSTEM_TS.
* testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
as Filesystem TS.
From-SVN: r254008
2017-10-23 13:11:22 +01:00
Jonathan Wakely
908d1d3aea
PR libstdc++/82644 document IS 29124 support
...
Also fix declarations of special functions in C++17, to import them into
the global namespace in <math.h>, and to prevent defining the
non-standard hypergeometric functions in strict mode.
PR libstdc++/82644
* doc/xml/manual/intro.xml: Include new section.
* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
status.
* include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
(conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
* include/c_compatibility/math.h: Import special functions into
global namespace for C++17.
* testsuite/26_numerics/headers/cmath/82644.cc: New test.
* testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
test.
From-SVN: r254004
2017-10-23 12:10:28 +01:00
Jonathan Wakely
dfdf2839b5
Fix invalid path::iterator test
...
* testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
increment past-the-end iterators.
From-SVN: r253967
2017-10-21 02:16:43 +01:00
Jonathan Wakely
233fa165ad
Update value of __cpp_lib_chrono feature-test macro
...
* include/std/chrono (__cpp_lib_chrono): Update macro value to
indicate support for P0505R0.
* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
for updated macro.
From-SVN: r253959
2017-10-20 22:05:11 +01:00
Jonathan Wakely
253e8d2150
Define __cpp_lib_byte feature-test macro
...
* include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
* testsuite/18_support/byte/requirements.cc: Check macro.
From-SVN: r253952
2017-10-20 19:02:19 +01:00
Jonathan Wakely
db62ad7c66
Improve tests for error reporting in Filesystem TS
...
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Ensure that error_code arguments are
cleared when required.
* testsuite/experimental/filesystem/operations/create_directory.cc:
Remove redundant check.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Ensure that error_code argument is cleared when required.
From-SVN: r253897
2017-10-19 14:57:10 +01:00
Jonathan Wakely
551124d561
Fix path::iterator post-increment and post-decrement
...
* include/experimental/bits/fs_path.h (path::iterator++(int))
(path::iterator--(int)): Fix for paths with only one component.
* testsuite/experimental/filesystem/path/itr/traversal.cc: Test
post-increment and post-decrement.
From-SVN: r253896
2017-10-19 14:57:06 +01:00
Jonathan Wakely
89b1e16136
Update references to C++17 in libstdc++ manual
...
* doc/xml/manual/status_cxx2017.xml: Update references to C++17
section numbers.
From-SVN: r253895
2017-10-19 14:57:02 +01:00
Jonathan Wakely
af23b26ab0
Use __LONG_LONG_MAX__ instead of LONG_LONG_MAX in test
...
* testsuite/decimal/conversion-to-integral.cc: Use predefined macro
instead of non-standard glibc one.
From-SVN: r253894
2017-10-19 14:56:55 +01:00
François Dumont
1be043a140
re PR libstdc++/82558 (V8 JavaScript engine segfaults since r249235)
...
2017-10-16 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/82558
* include/bits/stl_bvector.h (fill): Add iterator offset check.
* testsuite/23_containers/vector/bool/82558.cc: New.
From-SVN: r253776
2017-10-16 05:44:03 +00:00
Jonathan Wakely
3b0dd4fea2
PR libstdc++/82522 overload map insert functions for rvalues (LWG 2354)
...
PR libstdc++/82522
* doc/xml/manual/intro.xml: Document LWG 2354 changes.
* include/bits/stl_map.h (map::insert(value_type&&))
(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
* include/bits/stl_multimap.h (multimap::insert(value_type&&))
(multimap::insert(const_iterator, value_type&&)): Likewise.
* include/bits/unordered_map.h (unordered_map::insert(value_type&&))
(unordered_map::insert(const_iterator, value_type&&))
(unordered_multimap::insert(value_type&&))
(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
* testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
test.
* testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
* testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
test.
From-SVN: r253725
2017-10-13 13:39:32 +01:00
Jonathan Wakely
d1e85aa999
PR libstdc++/82481 Suppress clang-tidy warnings
...
PR libstdc++/82481
* include/std/mutex (call_once): Suppress clang-tidy warnings about
dangling references.
From-SVN: r253724
2017-10-13 13:39:24 +01:00
Jonathan Wakely
0e7300bb80
Update comment referring to status of LWG issue 111
...
* include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
Update comment about NAD issue.
From-SVN: r253582
2017-10-10 12:26:10 +01:00
Jonathan Wakely
5d2b807526
PR libstdc++/82417 do not include C99 <complex.h> in strict modes
...
As an extension the C++ version of <complex.h> includes the C version,
but that defines macros with non-reserved names that should not be
defined in ISO C++. Only include the C header for non-strict modes, or
for pre-C++11 (because C++98 doesn't mention <complex.h> at all).
PR libstdc++/59087
PR libstdc++/82417
* include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
not include C library's <complex.h>.
* testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
* testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
* testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
* testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
From-SVN: r253581
2017-10-10 12:25:45 +01:00
Jonathan Wakely
e58683fb9f
Fix new testsuite failure on newlib targets
...
* testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
From-SVN: r253463
2017-10-05 21:26:08 +01:00
Petr Ovtchenkov
4e91452412
2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
...
François Dumont <fdumont@gcc.gnu.org>
* include/bits/streambuf_iterator.h
(istreambuf_iterator<>::operator*()): Do not capture iterator state
in Debug assertion.
(istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
(istreambuf_iterator<>::operator++(int)): Likewise.
(istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
(istreambuf_iterator<>::_S_is_eof()): New.
(istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
(find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
Return an iterator with _M_c set to eof to capture streambuf state
on evaluation.
(testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
Co-Authored-By: François Dumont <fdumont@gcc.gnu.org>
From-SVN: r253417
2017-10-04 16:15:18 +00:00
Jakub Jelinek
9a741aee62
charconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.
...
* include/std/charconv (__unsigned_least_t): Fix number of closing >s for
!_GLIBCXX_USE_INT128.
From-SVN: r253371
2017-10-03 01:28:54 +02:00
Jonathan Wakely
804b7cc438
C++17 P0067R5 std::to_chars and std::from_chars (partial)
...
This adds the integral overloads of std::to_chars and std::from_chars,
including the changes made by P0682R0. Support for floating point types
is absent.
* include/Makefile.am: Add new <charconv> header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include <charconv>.
* include/std/charconv: New file.
(to_chars_result, to_chars, from_chars_result, from_chars): Define.
* testsuite/20_util/from_chars/1.cc: New test.
* testsuite/20_util/from_chars/1_neg.cc: New test.
* testsuite/20_util/from_chars/2.cc: New test.
* testsuite/20_util/from_chars/requirements.cc: New test.
* testsuite/20_util/to_chars/1.cc: New test.
* testsuite/20_util/to_chars/1_neg.cc: New test.
* testsuite/20_util/to_chars/2.cc: New test.
* testsuite/20_util/to_chars/requirements.cc: New test.
From-SVN: r253353
2017-10-02 15:06:40 +01:00
François Dumont
c320262396
22131.cc: Make test less istreambuf_iterator implementation dependent.
...
2017-09-27 François Dumont <fdumont@gcc.gnu.org>
* testsuite/22_locale/money_get/get/char/22131.cc: Make test less
istreambuf_iterator implementation dependent.
* testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
From-SVN: r253237
2017-09-27 20:16:43 +00:00
Uros Bizjak
75c44d2246
re PR c/81854 (weak alias of an incompatible symbol accepted)
...
PR c/81854
* src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
target as a C++ function with no prototype.
From-SVN: r253153
2017-09-25 16:59:19 +02:00
Jonathan Wakely
f3f08c3f03
Fix tests for std::clamp
...
* testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
expected results when using predicate defining reverse order.
* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
From-SVN: r253051
2017-09-21 10:59:55 +01:00
Jonathan Wakely
9d2bac69bc
PR libstdc++/79162 Fix std::string regression due to LWG 2946 (old ABI)
...
PR libstdc++/79162
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
(basic_string::_If_sv): Remove from the overload set when the
argument is derived from basic_string.
From-SVN: r253035
2017-09-20 23:03:37 +01:00
Jonathan Wakely
4cf5930fdc
PR libstdc++/79162 Fix std::string regression due to LWG 2946
...
PR libstdc++/79162
* include/bits/basic_string.h (basic_string::_If_sv): Remove from the
overload set when the argument is derived from basic_string.
* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
test.
* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
New test.
From-SVN: r253024
2017-09-20 18:59:50 +01:00
Jonathan Wakely
e18f68c715
Fix failing C++17 test
...
* testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
and dg-options directives. Fix invalid test.
From-SVN: r253019
2017-09-20 17:34:53 +01:00
Jonathan Wakely
95ed529d34
PR libstdc++/81469 deprecate std::uncaught_exception for C++17
...
PR libstdc++/81469
* libsupc++/exception (uncaught_exception): Deprecate for C++17.
* testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
* testsuite/18_support/uncaught_exception/14026.cc: Likewise.
From-SVN: r253018
2017-09-20 17:34:49 +01:00
Jonathan Wakely
f78958c9b4
Deprecate nested types in std::hash
...
* include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
* include/bits/functional_hash.h (__hash_base::result_type)
(__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
* include/std/optional (hash<optional<T>>::result_type)
(hash<optional<T>>::argument_type): Add deprecated attribute.
(__is_fast_hash<hash<optional<T>>>): Add partial specialization.
* include/std/variant (hash<variant<Types...>>::result_type)
(hash<variant<Types...>>::argument_type): Add deprecated attribute.
(__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
From-SVN: r253017
2017-09-20 17:34:42 +01:00
Jonathan Wakely
20f661fbd2
Remove non-standard std::copy_exception function
...
* libsupc++/exception_ptr.h (copy_exception): Remove deprecated
non-standard function.
From-SVN: r253011
2017-09-20 14:25:07 +01:00
Jonathan Wakely
f6b05c44aa
PR libstdc++/82262 fix std::hash<std::optional<const T>>
...
PR libstdc++/82262
* include/std/optional (__optional_hash_call_base): Add template
parameter for remove_const_t<_Tp> and use it consistently.
* testsuite/20_util/optional/hash.cc: Test optional<const T>.
From-SVN: r253010
2017-09-20 14:24:45 +01:00
Jonathan Wakely
23b49089a4
PR libstdc++/71500 restore C++11 compatibility in <regex>
...
PR libstdc++/71500
* include/bits/regex_executor.tcc
(_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
std::__equal4 instead of C++14 4-iterator overloads of std::equal.
* include/bits/stl_algobase.h (__equal4): New functions implementing
4-iterator overloads of std::equal for use in C++11.
(equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
Move function bodies to new __equal4 functions.
* testsuite/28_regex/simple_c++11.cc: New.
From-SVN: r252981
2017-09-19 18:06:12 +01:00
Jonathan Wakely
c4b06e7f1d
PR libstdc++/82254 fix std::is_nothrow_invocable_r w.r.t throwing conversions
...
PR libstdc++/82254
* include/std/type_traits (__is_invocable): Add partial specialization
for INVOKE<void> case and remove is_void<R> check from partial
specialization for INVOKE<R> case.
(__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
(is_nothrow_invocable_r): Use __is_nt_invocable_impl.
* testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
conversions that can throw or fail to convert. Use static assert
strings to explain negative results.
* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
is_nothrow_constructible in is_nt_invocable_conv.
From-SVN: r252977
2017-09-19 15:33:51 +01:00
Jonathan Wakely
e1227692dd
PR libstdc++/81468 fix test for duration conversions
...
PR libstdc++/81468
* testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
improve static assertion messages.
From-SVN: r252950
2017-09-18 21:00:32 +01:00
Jonathan Wakely
db624b3b4b
Use built-in for std::make_integer_sequnce
...
* include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
(_Build_index_tuple, make_integer_sequence): Use built-in to generate
pack expansion.
From-SVN: r252923
2017-09-18 13:02:19 +01:00
Jonathan Wakely
ec26ff5a01
PR libstdc++/71187 reimplement declval without add_rvalue_reference
...
PR libstdc++/71187
* include/std/type_traits (__declval): New function to deduce return
type of declval.
(__declval_protector::_delegate): Remove.
(declval): Use __declval instead of add_rvalue_reference and
__declval_protector::__delegate.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
lineno.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
From-SVN: r252922
2017-09-18 12:40:10 +01:00
Jakub Jelinek
7b9361409d
invoke.texi: Document -std=c++17 and -std=gnu++17 and document c++1z and gnu++1z as deprecated.
...
* doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
c++1z and gnu++1z as deprecated. Change other references to
-std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
Change -Wc++1z-compat to -Wc++17-compat.
* doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
* dwarf2out.c (highest_c_language): Handle C++17.
(gen_compile_unit_die): Likewise.
c-family/
* c.opt (Wc++1z-compat): Change from option to undocumented alias.
(Wc++17-compat): Change from undocumented alias to option.
(Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat,
change C++1z to C++17 in description.
(std=c++1z, std=gnu++1z): Change from option to undocumented
deprecated alias.
(std=c++17, std=gnu++17): Change from undocumented alias to option.
Adjust description.
* c-common.h (enum cxx_dialect): Rename cxx1z to cxx17.
* c-opts.c (set_std_cxx1z): Rename to ...
(set_std_cxx17): ... this.
(c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17
and OPT_std_gnu__1z to OPT_std_gnu__17. Adjust set_std_cxx1z
caller.
(c_common_post_options): Use cxx17 instead of cxx1z. Adjust
comments.
cp/
* decl.c (redeclaration_error_message): Use cxx17 instead of cxx1z,
adjust diagnostics refering to C++1z or -std=gnu++1z or -std=c++1z
to C++17 or -std=gnu++17 or -std=c++17. Adjust comments.
(cxx_init_decl_processing, next_initializable_field,
is_direct_enum_init, check_initializer, cp_finish_decl,
mark_inline_variable, grokdeclarator, grokparms, xref_basetypes,
finish_function): Likewise.
* cp-tree.h (DECL_INLINE_VAR_P): Likewise.
* pt.c (mark_template_parm, convert_nontype_argument,
instantiate_class_template_1, type_unification_real, unify,
get_partial_spec_bindings, dependent_type_p_r): Likewise.
* typeck.c (cp_build_unary_op): Likewise.
* constexpr.c (var_in_maybe_constexpr_fn): Likewise.
* call.c (build_user_type_conversion_1, build_over_call,
build_special_member_call): Likewise.
* lambda.c (begin_lambda_type): Likewise.
* typeck2.c (process_init_constructor_record): Likewise.
* class.c (build_base_field, finalize_literal_type_property,
explain_non_literal_class): Likewise.
* parser.c (cp_parser_diagnose_invalid_type_name,
cp_parser_primary_expression, cp_parser_lambda_introducer,
cp_parser_lambda_declarator_opt, cp_parser_selection_statement,
cp_convert_range_for, cp_parser_perform_range_for_lookup,
cp_parser_decomposition_declaration, cp_parser_linkage_specification,
cp_parser_static_assert, cp_parser_simple_type_specifier,
cp_parser_namespace_definition, cp_parser_using_declaration,
cp_parser_init_declarator, cp_parser_type_parameter_key,
cp_parser_exception_specification_opt, cp_parser_std_attribute_spec,
cp_parser_constructor_declarator_p): Likewise.
* mangle.c (struct globals): Rename need_cxx1z_warning to
need_cxx17_warning.
(write_exception_spec, start_mangling, mangle_decl): Likewise.
* Make-lang.in (check-c++1z): Rename to check-c++17, depend on
it.
(check-c++17): New goal. Use 17 instead of 1z.
(check-c++-all): Use 17 instead of 1z.
testsuite/
* lib/g++-dg.exp (g++-dg-runtest): Use 17 instead of 1z.
* lib/target-supports.exp (check_effective_target_c++14): Use
check_effective_target_c++17 instead of check_effective_target_c++1z.
(check_effective_target_c++14_down): Likewise.
(check_effective_target_c++1z_only): Rename to ...
(check_effective_target_c++17_only): ... this.
(check_effective_target_c++1z): Rename to ...
(check_effective_target_c++17): ... this.
* g++.dg/debug/dwarf2/inline-var-1.C: Use -std=c++17 or -std=gnu++17
instead of -std=c++1z or -std=gnu++1z. Use c++17 instead of c++1z
and c++17_only instead of c++1z_only. Adjust expected diagnostics
and comments refering to 1z to 17.
* g++.dg/debug/dwarf2/inline-var-2.C: Likewise.
* g++.dg/template/partial5.C: Likewise.
* g++.dg/template/nontype8.C: Likewise.
* g++.dg/cpp1z/noexcept-type5.C: Likewise.
* g++.dg/cpp1z/nontype3a.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda4.C: Likewise.
* g++.dg/cpp1z/noexcept-type16.C: Likewise.
* g++.dg/cpp1z/class-deduction32.C: Likewise.
* g++.dg/cpp1z/pr78771.C: Likewise.
* g++.dg/cpp1z/elide1.C: Likewise.
* g++.dg/cpp1z/fold3.C: Likewise.
* g++.dg/cpp1z/class-deduction2.C: Likewise.
* g++.dg/cpp1z/noexcept-type12.C: Likewise.
* g++.dg/cpp1z/inline-var2.C: Likewise.
* g++.dg/cpp1z/eval-order2.C: Likewise.
* g++.dg/cpp1z/decomp21.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda11.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda9.C: Likewise.
* g++.dg/cpp1z/utf8-neg.C: Likewise.
* g++.dg/cpp1z/class-deduction41.C: Likewise.
* g++.dg/cpp1z/class-deduction23.C: Likewise.
* g++.dg/cpp1z/nodiscard3.C: Likewise.
* g++.dg/cpp1z/static_assert-nomsg.C: Likewise.
* g++.dg/cpp1z/noexcept-type9.C: Likewise.
* g++.dg/cpp1z/class-deduction21.C: Likewise.
* g++.dg/cpp1z/range-for1.C: Likewise.
* g++.dg/cpp1z/init-statement4.C: Likewise.
* g++.dg/cpp1z/udlit-utf8char.C: Likewise.
* g++.dg/cpp1z/decomp30.C: Likewise.
* g++.dg/cpp1z/class-deduction39.C: Likewise.
* g++.dg/cpp1z/register2.C: Likewise.
* g++.dg/cpp1z/decomp9.C: Likewise.
* g++.dg/cpp1z/regress1.C: Likewise.
* g++.dg/cpp1z/direct-enum-init1.C: Likewise.
* g++.dg/cpp1z/class-deduction30.C: Likewise.
* g++.dg/cpp1z/abbrev2.C: Likewise.
* g++.dg/cpp1z/nontype-auto6.C: Likewise.
* g++.dg/cpp1z/regress2.C: Likewise.
* g++.dg/cpp1z/decomp16.C: Likewise.
* g++.dg/cpp1z/bool-increment1.C: Likewise.
* g++.dg/cpp1z/aligned-new1.C: Likewise.
* g++.dg/cpp1z/decomp3.C: Likewise.
* g++.dg/cpp1z/register1.C: Likewise.
* g++.dg/cpp1z/namespace-attribs.C: Likewise.
* g++.dg/cpp1z/class-deduction1.C: Likewise.
* g++.dg/cpp1z/decomp10.C: Likewise.
* g++.dg/cpp1z/constexpr-if11.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda10.C: Likewise.
* g++.dg/cpp1z/decomp27.C: Likewise.
* g++.dg/cpp1z/noexcept-type2.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda6.C: Likewise.
* g++.dg/cpp1z/class-deduction9.C: Likewise.
* g++.dg/cpp1z/attributes-enum-1.C: Likewise.
* g++.dg/cpp1z/decomp11.C: Likewise.
* g++.dg/cpp1z/aligned-new3.C: Likewise.
* g++.dg/cpp1z/utf8-2.C: Likewise.
* g++.dg/cpp1z/lambda-this3.C: Likewise.
* g++.dg/cpp1z/decomp-constexpr1.C: Likewise.
* g++.dg/cpp1z/byte1.C: Likewise.
* g++.dg/cpp1z/nontype-auto9.C: Likewise.
* g++.dg/cpp1z/aggr-base4.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda1.C: Likewise.
* g++.dg/cpp1z/nontype-auto3.C: Likewise.
* g++.dg/cpp1z/utf8-2a.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda7.C: Likewise.
* g++.dg/cpp1z/aggr-base6.C: Likewise.
* g++.dg/cpp1z/cplusplus.C: Likewise.
* g++.dg/cpp1z/class-deduction20.C: Likewise.
* g++.dg/cpp1z/aggr-base2.C: Likewise.
* g++.dg/cpp1z/class-deduction6.C: Likewise.
* g++.dg/cpp1z/noexcept-type3.C: Likewise.
* g++.dg/cpp1z/class-deduction31.C: Likewise.
* g++.dg/cpp1z/class-deduction25.C: Likewise.
* g++.dg/cpp1z/class-deduction18.C: Likewise.
* g++.dg/cpp1z/fold9.C: Likewise.
* g++.dg/cpp1z/noexcept-type8.C: Likewise.
* g++.dg/cpp1z/abbrev1.C: Likewise.
* g++.dg/cpp1z/constexpr-if10.C: Likewise.
* g++.dg/cpp1z/utf8.C: Likewise.
* g++.dg/cpp1z/noexcept-type7.C: Likewise.
* g++.dg/cpp1z/aggr-base3.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda8.C: Likewise.
* g++.dg/cpp1z/init-statement2.C: Likewise.
* g++.dg/cpp1z/nontype-auto4.C: Likewise.
* g++.dg/cpp1z/constexpr-if12.C: Likewise.
* g++.dg/cpp1z/class-deduction40.C: Likewise.
* g++.dg/cpp1z/nontype3.C: Likewise.
* g++.dg/cpp1z/class-deduction14.C: Likewise.
* g++.dg/cpp1z/fold7.C: Likewise.
* g++.dg/cpp1z/nontype2.C: Likewise.
* g++.dg/cpp1z/class-deduction15.C: Likewise.
* g++.dg/cpp1z/nested-namespace-def1.C: Likewise.
* g++.dg/cpp1z/class-deduction13.C: Likewise.
* g++.dg/cpp1z/aligned-new7.C: Likewise.
* g++.dg/cpp1z/noexcept-type1.C: Likewise.
* g++.dg/cpp1z/nontype1.C: Likewise.
* g++.dg/cpp1z/init-statement5.C: Likewise.
* g++.dg/cpp1z/nontype-auto2.C: Likewise.
* g++.dg/cpp1z/decomp17.C: Likewise.
* g++.dg/cpp1z/fold4.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda2.C: Likewise.
* g++.dg/cpp1z/fold7a.C: Likewise.
* g++.dg/cpp1z/nontype-auto5.C: Likewise.
* g++.dg/cpp1z/init-statement7.C: Likewise.
* g++.dg/cpp1z/aggr-base5.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda5.C: Likewise.
* g++.dg/cpp1z/pr79143.C: Likewise.
* g++.dg/cpp1z/class-deduction38.C: Likewise.
* g++.dg/cpp1z/nontype-auto8.C: Likewise.
* g++.dg/cpp1z/class-deduction12.C: Likewise.
* g++.dg/cpp1z/decomp20.C: Likewise.
* g++.dg/cpp1z/class-deduction22.C: Likewise.
* g++.dg/cpp1z/class-deduction29.C: Likewise.
* g++.dg/cpp1z/class-deduction8.C: Likewise.
* g++.dg/cpp1z/class-deduction43.C: Likewise.
* g++.dg/cpp1z/feat-cxx1z.C: Likewise.
* g++.dg/cpp1z/fold8.C: Likewise.
* g++.dg/cpp1z/init-statement3.C: Likewise.
* g++.dg/cpp1z/nontype-auto10.C: Likewise.
* g++.dg/cpp1z/class-deduction36.C: Likewise.
* g++.dg/cpp1z/noexcept-type17.C: Likewise.
* g++.dg/cpp1z/fallthrough1.C: Likewise.
* g++.dg/cpp1z/fold1.C: Likewise.
* g++.dg/cpp1z/class-deduction26.C: Likewise.
* g++.dg/cpp1z/fold-ice1.C: Likewise.
* g++.dg/cpp1z/fold5.C: Likewise.
* g++.dg/cpp1z/class-deduction34.C: Likewise.
* g++.dg/cpp1z/noexcept-type6.C: Likewise.
* g++.dg/cpp1z/class-deduction7.C: Likewise.
* g++.dg/cpp1z/class-deduction16.C: Likewise.
* g++.dg/cpp1z/class-deduction10.C: Likewise.
* g++.dg/cpp1z/eval-order3.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda13.C: Likewise.
* g++.dg/cpp1z/aggr-base2a.C: Likewise.
* g++.dg/cpp1z/nontype-auto1.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda3.C: Likewise.
* g++.dg/cpp1z/nontype-auto7.C: Likewise.
* g++.dg/cpp1z/decomp15.C: Likewise.
* g++.dg/cpp1z/noexcept-type4.C: Likewise.
* g++.dg/cpp1z/fold-mangle.C: Likewise.
* g++.dg/cpp1z/class-deduction35.C: Likewise.
* g++.dg/cpp1z/decomp4.C: Likewise.
* g++.dg/cpp1z/class-deduction42.C: Likewise.
* g++.dg/cpp1z/init-statement8.C: Likewise.
* g++.dg/cpp1z/inline-var1a.C: Likewise.
* g++.dg/cpp1z/init-statement6.C: Likewise.
* g++.dg/cpp1z/class-deduction17.C: Likewise.
* g++.dg/cpp1z/class-deduction28.C: Likewise.
* g++.dg/cpp1z/class-deduction27.C: Likewise.
* g++.dg/cpp1z/decomp-bitfield1.C: Likewise.
* g++.dg/cpp1z/attributes-enum-1a.C: Likewise.
* g++.dg/cpp1z/class-deduction11.C: Likewise.
* g++.dg/cpp1z/constexpr-lambda12.C: Likewise.
* g++.dg/cpp1z/init-statement9.C: Likewise.
* g++.dg/cpp1z/class-deduction19.C: Likewise.
* g++.dg/cpp1z/class-deduction5.C: Likewise.
* g++.dg/cpp1z/fold2.C: Likewise.
* g++.dg/cpp1z/class-deduction33.C: Likewise.
* g++.dg/cpp1z/class-deduction24.C: Likewise.
* g++.dg/cpp1z/aggr-base1.C: Likewise.
* g++.dg/cpp1z/fold6.C: Likewise.
* g++.dg/cpp1z/decomp12.C: Likewise.
* g++.dg/cpp1z/class-deduction4.C: Likewise.
* g++.dg/cpp1z/inline-var1.C: Likewise.
* g++.dg/cpp1z/aligned-new2.C: Likewise.
* g++.dg/cpp1z/class-deduction3.C: Likewise.
* g++.dg/other/error3.C: Likewise.
* g++.dg/init/new25.C: Likewise.
* g++.dg/init/new13.C: Likewise.
* g++.dg/tls/diag-2.C: Likewise.
* g++.dg/tls/diag-4.C: Likewise.
* g++.dg/opt/noreturn-1.C: Likewise.
* g++.dg/eh/async-unwind2.C: Likewise.
* g++.dg/eh/spec9.C: Likewise.
* g++.dg/eh/spec7.C: Likewise.
* g++.dg/eh/template1.C: Likewise.
* g++.dg/eh/cond4.C: Likewise.
* g++.dg/eh/pr41819.C: Likewise.
* g++.dg/eh/delete1.C: Likewise.
* g++.dg/eh/spec3.C: Likewise.
* g++.dg/eh/forced4.C: Likewise.
* g++.dg/eh/spec2.C: Likewise.
* g++.dg/eh/shadow1.C: Likewise.
* g++.dg/eh/pr38662.C: Likewise.
* g++.dg/eh/ehopt1.C: Likewise.
* g++.dg/eh/spec8.C: Likewise.
* g++.dg/eh/init-temp2.C: Likewise.
* g++.dg/rtti/crash3.C: Likewise.
* g++.dg/warn/Wreturn-type-3.C: Likewise.
* g++.dg/warn/register-parm-1.C: Likewise.
* g++.dg/warn/register-var-2.C: Likewise.
* g++.dg/gcov/gcov-7.C: Likewise.
* g++.dg/tree-ssa/pr45605.C: Likewise.
* g++.dg/cpp/pr23827_cxx98_neg.C: Likewise.
* g++.dg/lookup/exception1.C: Likewise.
* g++.dg/ubsan/pr79589.C: Likewise.
* g++.dg/tm/pr47340.C: Likewise.
* g++.dg/tm/pr46567.C: Likewise.
* g++.dg/expr/bitfield5.C: Likewise.
* g++.dg/expr/bool1.C: Likewise.
* g++.dg/expr/lval3.C: Likewise.
* g++.dg/expr/lval4.C: Likewise.
* g++.dg/expr/bitfield4.C: Likewise.
* g++.dg/expr/bitfield6.C: Likewise.
* g++.dg/expr/bool3.C: Likewise.
* g++.dg/ext/has_nothrow_constructor.C: Likewise.
* g++.dg/ext/has_nothrow_copy-7.C: Likewise.
* g++.dg/ext/has_nothrow_copy-1.C: Likewise.
* g++.dg/ext/has_nothrow_copy-2.C: Likewise.
* g++.dg/ext/has_nothrow_copy-4.C: Likewise.
* g++.dg/ext/has_nothrow_copy-5.C: Likewise.
* g++.dg/ext/has_nothrow_copy-6.C: Likewise.
* g++.dg/ext/has_nothrow_assign.C: Likewise.
* g++.dg/parse/register1.C: Likewise.
* g++.dg/parse/error15.C: Likewise.
* g++.dg/parse/linkage2.C: Likewise.
* g++.dg/concepts/intro2.C: Likewise.
* g++.dg/concepts/class.C: Likewise.
* g++.dg/concepts/traits1.C: Likewise.
* g++.dg/concepts/req5.C: Likewise.
* g++.dg/concepts/var-concept5.C: Likewise.
* g++.dg/concepts/fn-concept2.C: Likewise.
* g++.dg/concepts/traits2.C: Likewise.
* g++.dg/concepts/placeholder2.C: Likewise.
* g++.dg/concepts/class6.C: Likewise.
* g++.dg/concepts/memtmpl1.C: Likewise.
* g++.dg/concepts/friend2.C: Likewise.
* g++.dg/concepts/template-parm3.C: Likewise.
* g++.dg/concepts/template-parm10.C: Likewise.
* g++.dg/concepts/explicit-spec1.C: Likewise.
* g++.dg/concepts/explicit-spec3.C: Likewise.
* g++.dg/concepts/var-templ2.C: Likewise.
* g++.dg/concepts/intro5.C: Likewise.
* g++.dg/concepts/deduction-constraint1.C: Likewise.
* g++.dg/concepts/iconv1.C: Likewise.
* g++.dg/concepts/constrained-parm.C: Likewise.
* g++.dg/concepts/template-template-parm1.C: Likewise.
* g++.dg/concepts/var-concept3.C: Likewise.
* g++.dg/concepts/class3.C: Likewise.
* g++.dg/concepts/memfun2.C: Likewise.
* g++.dg/concepts/req1.C: Likewise.
* g++.dg/concepts/disjunction1.C: Likewise.
* g++.dg/concepts/req17.C: Likewise.
* g++.dg/concepts/pr65848.C: Likewise.
* g++.dg/concepts/placeholder4.C: Likewise.
* g++.dg/concepts/decl-diagnose.C: Likewise.
* g++.dg/concepts/intro7.C: Likewise.
* g++.dg/concepts/pr68683.C: Likewise.
* g++.dg/concepts/partial-spec4.C: Likewise.
* g++.dg/concepts/template-parm5.C: Likewise.
* g++.dg/concepts/explicit-inst1.C: Likewise.
* g++.dg/concepts/class-deduction1.C: Likewise.
* g++.dg/concepts/class1.C: Likewise.
* g++.dg/concepts/req15.C: Likewise.
* g++.dg/concepts/memfun.C: Likewise.
* g++.dg/concepts/pr68434.C: Likewise.
* g++.dg/concepts/inherit-ctor4.C: Likewise.
* g++.dg/concepts/partial-spec6.C: Likewise.
* g++.dg/concepts/var-templ1.C: Likewise.
* g++.dg/concepts/template-parm8.C: Likewise.
* g++.dg/concepts/explicit-inst3.C: Likewise.
* g++.dg/concepts/class4.C: Likewise.
* g++.dg/concepts/req6.C: Likewise.
* g++.dg/concepts/fn8.C: Likewise.
* g++.dg/concepts/class5.C: Likewise.
* g++.dg/concepts/placeholder5.C: Likewise.
* g++.dg/concepts/req16.C: Likewise.
* g++.dg/concepts/req10.C: Likewise.
* g++.dg/concepts/var-concept2.C: Likewise.
* g++.dg/concepts/auto3.C: Likewise.
* g++.dg/concepts/generic-fn-err.C: Likewise.
* g++.dg/concepts/pr65552.C: Likewise.
* g++.dg/concepts/partial-concept-id2.C: Likewise.
* g++.dg/concepts/fn1.C: Likewise.
* g++.dg/concepts/partial-spec.C: Likewise.
* g++.dg/concepts/template-parm12.C: Likewise.
* g++.dg/concepts/diagnostic1.C: Likewise.
* g++.dg/concepts/intro1.C: Likewise.
* g++.dg/concepts/explicit-inst4.C: Likewise.
* g++.dg/concepts/req18.C: Likewise.
* g++.dg/concepts/explicit-spec5.C: Likewise.
* g++.dg/concepts/var-concept6.C: Likewise.
* g++.dg/concepts/fn9.C: Likewise.
* g++.dg/concepts/req2.C: Likewise.
* g++.dg/concepts/template-parm7.C: Likewise.
* g++.dg/concepts/req14.C: Likewise.
* g++.dg/concepts/template-parm6.C: Likewise.
* g++.dg/concepts/variadic4.C: Likewise.
* g++.dg/concepts/fn6.C: Likewise.
* g++.dg/concepts/req-neg1.C: Likewise.
* g++.dg/concepts/alias3.C: Likewise.
* g++.dg/concepts/expression2.C: Likewise.
* g++.dg/concepts/partial-spec3.C: Likewise.
* g++.dg/concepts/expression3.C: Likewise.
* g++.dg/concepts/memfun-err.C: Likewise.
* g++.dg/concepts/pr66091.C: Likewise.
* g++.dg/concepts/explicit-spec2.C: Likewise.
* g++.dg/concepts/equiv.C: Likewise.
* g++.dg/concepts/friend1.C: Likewise.
* g++.dg/concepts/fn4.C: Likewise.
* g++.dg/concepts/var-templ3.C: Likewise.
* g++.dg/concepts/explicit-inst2.C: Likewise.
* g++.dg/concepts/alias2.C: Likewise.
* g++.dg/concepts/regress/alias-decl-42.C: Likewise.
* g++.dg/concepts/placeholder6.C: Likewise.
* g++.dg/concepts/fn10.C: Likewise.
* g++.dg/concepts/req3.C: Likewise.
* g++.dg/concepts/variadic2.C: Likewise.
* g++.dg/concepts/pr65636.C: Likewise.
* g++.dg/concepts/intro6.C: Likewise.
* g++.dg/concepts/class2.C: Likewise.
* g++.dg/concepts/fn2.C: Likewise.
* g++.dg/concepts/req20.C: Likewise.
* g++.dg/concepts/req8.C: Likewise.
* g++.dg/concepts/placeholder1.C: Likewise.
* g++.dg/concepts/pr65854.C: Likewise.
* g++.dg/concepts/member-concept.C: Likewise.
* g++.dg/concepts/template-parm2.C: Likewise.
* g++.dg/concepts/variadic1.C: Likewise.
* g++.dg/concepts/fn7.C: Likewise.
* g++.dg/concepts/intro4.C: Likewise.
* g++.dg/concepts/req13.C: Likewise.
* g++.dg/concepts/inherit-ctor3.C: Likewise.
* g++.dg/concepts/explicit-spec6.C: Likewise.
* g++.dg/concepts/auto1.C: Likewise.
* g++.dg/concepts/alias1.C: Likewise.
* g++.dg/concepts/fn-concept1.C: Likewise.
* g++.dg/concepts/template-parm11.C: Likewise.
* g++.dg/concepts/explicit-spec4.C: Likewise.
* g++.dg/concepts/partial-concept-id1.C: Likewise.
* g++.dg/concepts/req9.C: Likewise.
* g++.dg/concepts/req4.C: Likewise.
* g++.dg/concepts/pr65681.C: Likewise.
* g++.dg/concepts/req7.C: Likewise.
* g++.dg/concepts/req12.C: Likewise.
* g++.dg/concepts/fn5.C: Likewise.
* g++.dg/concepts/alias4.C: Likewise.
* g++.dg/concepts/generic-fn.C: Likewise.
* g++.dg/concepts/feature-macro.C: Likewise.
* g++.dg/concepts/req19.C: Likewise.
* g++.dg/concepts/placeholder3.C: Likewise.
* g++.dg/concepts/intro3.C: Likewise.
* g++.dg/concepts/partial-spec5.C: Likewise.
* g++.dg/concepts/template-parm4.C: Likewise.
* g++.dg/concepts/dr1430.C: Likewise.
* g++.dg/concepts/pr65634.C: Likewise.
* g++.dg/concepts/var-concept4.C: Likewise.
* g++.dg/concepts/pr67249.C: Likewise.
* g++.dg/concepts/expression.C: Likewise.
* g++.dg/concepts/pr65575.C: Likewise.
* g++.dg/concepts/partial-spec2.C: Likewise.
* g++.dg/concepts/template-parm9.C: Likewise.
* g++.dg/concepts/inherit-ctor1.C: Likewise.
* g++.dg/concepts/equiv2.C: Likewise.
* g++.dg/concepts/req11.C: Likewise.
* g++.dg/concepts/template-parm1.C: Likewise.
* g++.dg/concepts/inherit-ctor2.C: Likewise.
* g++.dg/concepts/var-concept1.C: Likewise.
* g++.dg/concepts/fn3.C: Likewise.
* g++.dg/torture/pr46364.C: Likewise.
* g++.dg/torture/stackalign/eh-alloca-1.C: Likewise.
* g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
* g++.dg/torture/stackalign/eh-vararg-1.C: Likewise.
* g++.dg/torture/stackalign/eh-vararg-2.C: Likewise.
* g++.dg/torture/stackalign/eh-global-1.C: Likewise.
* g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise.
* g++.dg/torture/stackalign/eh-inline-2.C: Likewise.
* g++.dg/torture/stackalign/eh-inline-1.C: Likewise.
* g++.dg/torture/pr52918-1.C: Likewise.
* g++.dg/torture/pr49394.C: Likewise.
* g++.dg/torture/pr57190.C: Likewise.
* g++.dg/cpp0x/static_assert8.C: Likewise.
* g++.dg/cpp0x/noexcept19.C: Likewise.
* g++.dg/cpp0x/variadic-throw.C: Likewise.
* g++.dg/cpp0x/variadic73.C: Likewise.
* g++.dg/cpp0x/noexcept02.C: Likewise.
* g++.dg/cpp0x/defaulted23.C: Likewise.
* g++.dg/cpp0x/noexcept08.C: Likewise.
* g++.dg/cpp0x/auto9.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-eh2.C: Likewise.
* g++.dg/cpp0x/error5.C: Likewise.
* c-c++-common/gomp/atomic-12.c: Likewise.
* c-c++-common/gomp/atomic-13.c: Likewise.
* c-c++-common/gomp/atomic-14.c: Likewise.
* c-c++-common/Wvarargs-2.c: Likewise.
* c-c++-common/Wvarargs.c: Likewise.
* c-c++-common/vector-subscript-2.c: Likewise.
* g++.old-deja/g++.robertl/eb123.C: Likewise.
* g++.old-deja/g++.eh/tmpl3.C: Likewise.
* g++.old-deja/g++.eh/cleanup2.C: Likewise.
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
* g++.old-deja/g++.eh/throw2.C: Likewise.
* g++.old-deja/g++.eh/throw1.C: Likewise.
* g++.old-deja/g++.eh/tmpl1.C: Likewise.
* g++.old-deja/g++.other/new7.C: Likewise.
* g++.old-deja/g++.other/crash30.C: Likewise.
* g++.old-deja/g++.other/regstack.C: Likewise.
* g++.old-deja/g++.other/crash28.C: Likewise.
* g++.old-deja/g++.jason/bool5.C: Likewise.
* g++.old-deja/g++.mike/p10416.C: Likewise.
* g++.old-deja/g++.mike/eh25.C: Likewise.
* g++.old-deja/g++.mike/eh55.C: Likewise.
libcpp/
* include/cpplib.h (enum c_lang): Rename CLK_GNUCXX1Z
to CLK_GNUCXX17 and CLK_CXX1Z to CLK_CXX17.
* init.c (lang_defaults, cpp_init_builtins): Likewise.
* expr.c (cpp_classify_number): Use C++17 instead of C++1z
in diagnostics.
libstdc++-v3/
* testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
-std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead
of c++1z and c++17_only instead of c++1z_only. Adjust expected
diagnostics and comments refering to 1z to 17.
* testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
* testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
* testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
Likewise.
* testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
* testsuite/18_support/launder/1.cc (test02): Likewise.
* testsuite/18_support/launder/requirements_neg.cc: Likewise.
* testsuite/18_support/launder/requirements.cc: Likewise.
* testsuite/18_support/byte/requirements.cc: Likewise.
* testsuite/18_support/byte/ops.cc: Likewise.
* testsuite/18_support/byte/global_neg.cc: Likewise.
* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
Likewise.
* testsuite/27_io/types/4.cc: Likewise.
* testsuite/25_algorithms/sample/81221.cc: Likewise.
* testsuite/25_algorithms/sample/1.cc: Likewise.
* testsuite/25_algorithms/sample/2.cc: Likewise.
* testsuite/25_algorithms/search/searcher.cc: Likewise.
* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
* testsuite/experimental/filesystem/path/construct/string_view.cc:
Likewise.
* testsuite/24_iterators/range_access_cpp17.cc: Likewise.
* testsuite/24_iterators/container_access.cc: Likewise.
* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
* testsuite/20_util/pair/cons/deduction.cc: Likewise.
* testsuite/20_util/variant/deduction.cc: Likewise.
* testsuite/20_util/tuple/78939.cc: Likewise.
* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
* testsuite/20_util/void_t/1.cc: Likewise.
* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
* testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
* testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
* testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
Likewise.
* testsuite/20_util/has_unique_object_representations/value.cc:
Likewise.
* testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
* testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
* testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
* testsuite/20_util/function/cons/deduction.cc: Likewise.
* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
Likewise.
* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
Likewise.
* testsuite/20_util/is_aggregate/value.cc: Likewise.
* testsuite/26_numerics/lcm/1.cc: Likewise.
* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
* testsuite/26_numerics/gcd/1.cc: Likewise.
* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
* testsuite/26_numerics/valarray/deduction.cc: Likewise.
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
* testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
* testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
Likewise.
* testsuite/23_containers/array/cons/deduction.cc: Likewise.
* testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
Likewise.
* testsuite/23_containers/deque/cons/deduction.cc: Likewise.
* testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
Likewise.
* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
Likewise.
* testsuite/23_containers/list/cons/deduction.cc: Likewise.
* testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
Likewise.
* testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
Likewise.
* testsuite/23_containers/vector/cons/deduction.cc: Likewise.
* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
Likewise.
* testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
Likewise.
From-SVN: r252826
2017-09-15 18:15:46 +02:00
Jonathan Wakely
d0dda80415
PR libstdc++/81468 constrain std::chrono::time_point constructor
...
PR libstdc++/81468
* include/std/chrono (__enable_if_is_duration)
(__disable_if_is_duration): New alias templates to simplify SFINAE.
(duration_cast, floor, ceil): Use __enable_if_is_duration.
(duration::__is_float, duration::__is_harmonic): New alias templates
to simplify SFINAE.
(duration::duration(const _Rep2&)): Use _Require, __is_float and
__is_harmonic.
(duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
(__common_rep_type): Remove, replace with ...
(__common_rep_t): New alias template.
(operator*, operator/, operator%): Use __common_rep_t and
__disable_if_is_duration.
(time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
constraint from LWG DR 1177.
* testsuite/20_util/duration/cons/dr1177.cc: New.
* testsuite/20_util/duration/literals/range.cc: Update dg-error line.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/time_point/cons/81468.cc: New.
From-SVN: r252085
2017-09-13 15:07:44 +01:00
Jonathan Wakely
c29730ec17
Fix broken URLs in libstdc++ API docs
...
* doc/doxygen/mainpage.html: Fix broken URLs.
From-SVN: r252070
2017-09-13 11:17:44 +01:00
Jonathan Wakely
ff7e6f066b
PR libstdc++/81835 fix broken URLs in libstdc++ docs
...
PR libstdc++/81835
* doc/xml/manual/extensions.xml: Replace unstable URL.
* doc/html/manual/ext_demangling.html: Regenerate.
* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
From-SVN: r252066
2017-09-13 11:05:59 +01:00
Jonathan Wakely
2af96386a6
Define std::__to_address helper
...
* include/bits/allocated_ptr.h (__allocated_ptr::get): Use
__to_address.
(__allocated_ptr::_S_raw_ptr): Remove.
* include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
__to_address.
* include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
* include/bits/ptr_traits.h (__to_address): Define new function
template.
* include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
(__shared_ptr::_S_raw_ptr): Remove.
* include/bits/stl_vector.h [__cplusplus >= 201103L]
(vector::_M_data_ptr): Use __to_address.
[__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
possibly invalid pointers.
* include/ext/alloc_traits.h (__alloc_traits::construct)
(__alloc_traits::destroy): Use __to_address.
From-SVN: r252055
2017-09-13 08:27:40 +01:00
Jonathan Wakely
d681026df1
PR libstdc++/79433 no #error for including TS headers with wrong -std
...
PR libstdc++/79433
* include/Makefile.am: Remove <bits/c++14_warning.h>.
* include/Makefile.in: Regenerate.
* include/bits/c++14_warning.h: Remove.
* include/experimental/algorithm: Do not include <c++14_warning.h>.
* include/experimental/any: Likewise.
* include/experimental/array: Likewise.
* include/experimental/bits/erase_if.h: Likewise.
* include/experimental/bits/lfts_config.h: Likewise.
* include/experimental/bits/shared_ptr.h: Likewise.
* include/experimental/bits/string_view.tcc: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/deque: Likewise.
* include/experimental/filesystem: Do not include <c++0x_warning.h>.
* include/experimental/forward_list: Do not include <c++14_warning.h>.
* include/experimental/functional: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/numeric: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/set: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/vector: Likewise.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
line number.
* testsuite/experimental/array/neg.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
From-SVN: r252019
2017-09-12 15:03:06 +01:00
Jonathan Wakely
c6888c6257
PR libstdc++/79433 no #error for including headers with wrong -std
...
PR libstdc++/79433
* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
* doc/html/*: Regenerate.
* include/Makefile.am: Remove <bits/c++17_warning.h>.
* include/Makefile.in: Regenerate.
* include/bits/c++17_warning.h: Remove.
* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
for pre-C++17 modes.
* include/std/any: Likewise.
(__cpp_lib_any): Define.
* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
SD-6 draft.
* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
draft.
* include/std/optional: Do not include <bits/c++17_warning.h>.
(__cpp_lib_optional): Define.
* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
* include/std/string_view: Do not include <bits/c++17_warning.h>.
(__cpp_lib_string_view): Define.
* include/std/variant: Do not include <bits/c++17_warning.h>.
(__cpp_lib_variant): Define.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
numbers.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
expected value of __cpp_lib_scoped_lock.
From-SVN: r252018
2017-09-12 15:02:59 +01:00
Jonathan Wakely
2be7a166a9
PR libstdc++/70483 make std::experimental::string_view fully constexpr
...
PR libstdc++/70483
* include/experimental/bits/string_view.tcc (basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of): Add constexpr specifier.
* include/experimental/string_view (basic_string_view::remove_prefix)
(basic_string_view::remove_suffix, basic_string_view::swap)
(basic_string_view::compare, basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of, operator==, operator!=)
(operator<, operator>, operator<=, operator>=): Likewise.
* testsuite/experimental/string_view/operations/compare/char/70483.cc:
New.
From-SVN: r252017
2017-09-12 14:31:20 +01:00
Jonathan Wakely
c5ae1a27bd
PR libstdc++/70483 make std::string_view fully constexpr
...
PR libstdc++/70483
* include/bits/string_view.tcc (basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of): Add constexpr specifier.
* include/std/string_view (basic_string_view::operator=)
(basic_string_view::rbegin, basic_string_view::rend)
(basic_string_view::crbegin, basic_string_view::crend)
(basic_string_view::remove_prefix, basic_string_view::remove_suffix)
(basic_string_view::swap, basic_string_view::compare)
(basic_string_view::find, basic_string_view::rfind)
(basic_string_view::find_first_of, basic_string_view::find_last_of)
(basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of, basic_string_view::_M_check)
(basic_string_view::_M_limit, operator==, operator!=, operator<)
(operator>, operator<=, operator>=): Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
char/1.cc: Repeat tests in constexpr context.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
cbegin, cend, rbegin, rend, crbegin and crend.
* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
Remove trailing whitespace.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
New.
* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
New.
* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
New.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
2.cc: New.
From-SVN: r251988
2017-09-11 22:47:41 +01:00
Tim Shen
3366a47408
re PR libstdc++/71500 (regex::icase only works on first character in a range)
...
PR libstdc++/71500
* include/bits/regex_executor.tcc: Support icase in regex_tratis<...>
for back reference matches.
* testsuite/28_regex/regression.cc: Test case.
From-SVN: r251982
2017-09-11 19:02:34 +00:00
Jonathan Wakely
47d7966a70
Adjust test to pass with old std::string
...
* testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
compatibility with old COW std::string.
From-SVN: r251981
2017-09-11 17:54:57 +01:00
Gerald Pfeifer
630e912e68
allocator.xml: Adjust link for Hoard.
...
* doc/xml/manual/allocator.xml: Adjust link for Hoard.
* doc/html/manual/memory.html: Regenerate.
From-SVN: r251919
2017-09-09 06:51:49 +00:00
Daniel Kruegler
df66af3b1e
PR libstdc++/79162 implement LWG 2946 and LWG 2758
...
2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
PR libstdc++/79162
Implement LWG 2946, LWG 2758's resolution missed further corrections
* include/bits/basic_string.h (basic_string::compare): Add missing
required noexcept specifications.
(basic_string): Introduce internal _S_to_string_view and __sv_wrapper
for implicit string_view conversion.
(basic_string::basic_string): Fix explicit string_view conversion by
implicit conversion using _S_to_string_view and __sv_wrapper.
(basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
constructor.
(basic_string): Fix operator=(T) template by operator=(const T&)
template for uncopyable types (PR 79162).
(basic_string::operator+=, basic_string::append, basic_string::assign)
(basic_string::insert, basic_string::replace, basic_string::find)
(basic_string::rfind, basic_string::find_first_of)
(basic_string::find_last_of, basic_string::find_first_not_of)
(basic_string::find_last_not_of, basic_string::compare): Replace
__sv_type argument by template const T& (LWG 2946) and correct
documentation describing __sv_type argument.
(basic_string::find, basic_string::rfind, basic_string::find_first_of)
(basic_string::find_last_of, basic_string::find_first_not_of)
(basic_string::find_last_not_of, basic_string::compare): Replace
unconditional noexcept specification by conditional noexcept
specification to partially balance the removal of noexcept by LWG 2946.
* testsuite/21_strings/basic_string/79162.cc: New.
* testsuite/21_strings/basic_string/lwg2946.cc: New.
From-SVN: r251664
2017-09-04 16:48:47 +01:00
Jonathan Wakely
89c6ecfa4c
PR c++/82039 suppress -Wzero-as-null-pointer-constant warning
...
PR c++/82039
* include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
Adjust null pointer constant to avoid warning.
From-SVN: r251570
2017-08-31 17:45:37 +01:00
François Dumont
55500f5d28
stl_list.h [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
...
2017-08-24 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_list.h
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
(_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
(_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
[!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
Remove.
(_List_base(_Node_alloc_type&&)): New.
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
(list<>::_M_node_count): New.
(list<>::size()): Adapt to call latter.
(list<>::_S_distance(const_iterator, const_iterator)): New.
(list<>::splice(iterator, list&, const_iterator, const_iterator)):
Adapt to call latter.
(list(list&&, const allocator_type&, true_type)): New.
(list(list&&, const allocator_type&, false_type)): New.
(list(list&&, const allocator_type&)): Adapt to call latters.
From-SVN: r251342
2017-08-24 20:31:53 +00:00
Jonathan Wakely
2c0378f467
PR libstdc++/81912 make std::__iterator_category constexpr
...
PR libstdc++/81912
* include/bits/stl_iterator_base_types.h (__iterator_category): Add
constexpr for C++11 and later.
* testsuite/24_iterators/container_access.cc: Add target selector.
* testsuite/24_iterators/range_access.cc: Fix clause number in
comment.
* testsuite/24_iterators/range_access_cpp14.cc: Likewise.
* testsuite/24_iterators/range_access_cpp17.cc: New.
From-SVN: r251234
2017-08-21 16:14:27 +01:00
Richard Biener
1ea85365b4
re PR go/78628 (GO fails to build a translation unit decl)
...
2017-08-21 Richard Biener <rguenther@suse.de>
include/
* simple-object.h (simple_object_copy_lto_debug_sections): New
function.
libiberty/
* simple-object-common.h (struct simple_object_functions): Add
copy_lto_debug_sections hook.
* simple-object.c: Include fcntl.h.
(handle_lto_debug_sections): New helper function.
(simple_object_copy_lto_debug_sections): New function copying
early LTO debug sections to regular debug sections in a new file.
(simple_object_start_write): Handle NULL segment_name.
* simple-object-coff.c (simple_object_coff_functions): Adjust
for not implemented copy_lto_debug_sections hook.
* simple-object-mach-o.c (simple_object_mach_o_functions): Likewise.
* simple-object-xcoff.c (simple_object_xcoff_functions): Likewise.
* simple-object-elf.c (SHT_NULL, SHT_SYMTAB, SHT_RELA, SHT_REL,
SHT_GROUP): Add various sectopn header types.
(SHF_EXCLUDE): Add flag.
(Elf32_External_Sym, Elf64_External_Sym): Add symbol struct.
(ELF_ST_BIND, ELF_ST_TYPE, ELF_ST_INFO): Add accessors.
(STT_OBJECT, STT_FUNC, STT_TLS, STT_GNU_IFUNC): Add Symbol types.
(STV_DEFAULT): Add symbol visibility.
(SHN_COMMON): Add special section index name.
(struct simple_object_elf_write): New.
(simple_object_elf_start_write): Adjust for new private data.
(simple_object_elf_write_shdr): Pass in values for all fields
we write.
(simple_object_elf_write_to_file): Adjust. Copy from recorded
section headers if requested.
(simple_object_elf_release_write): Release private data.
(simple_object_elf_copy_lto_debug_sections): Copy and rename sections
as denoted by PFN and all their dependences, symbols and relocations
to the empty destination file.
(simple_object_elf_functions): Adjust for copy_lto_debug_sections hook.
gcc/
* debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
register_external_die hooks.
(debug_false_tree_charstarstar_uhwistar): Declare.
(debug_nothing_tree_charstar_uhwi): Likewise.
* debug.c (do_nothing_debug_hooks): Adjust.
(debug_false_tree_charstarstar_uhwistar): New do nothing.
(debug_nothing_tree_charstar_uhwi): Likewise.
* dbxout.c (dbx_debug_hooks): Adjust.
(xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* dwarf2out.c (macinfo_label_base): New global.
(dwarf2out_register_external_die): New function for the
register_external_die hook.
(dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
(dwarf2_debug_hooks): Use them.
(dwarf2_lineno_debug_hooks): Adjust.
(struct die_struct): Add with_offset flag.
(DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
defining section names for the early LTO debug variants.
(reset_indirect_string): New helper.
(add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
(print_dw_val): Add support for offsetted symbol references.
(get_ultimate_context): Split out from is_cxx.
(is_cxx): Use get_ultimate_context.
(is_fortran): Add decl overload.
(compute_comp_unit_symbol): Split out worker from
compute_section_prefix.
(compute_section_prefix): Call compute_comp_unit_symbol and
set comdat_type_p here.
(output_die): Skip DIE symbol output for the LTO added one.
Handle DIE symbol references with offset.
(output_comp_unit): Guard section name mangling properly.
For LTO debug sections emit a symbol at the section beginning
which we use to refer to its DIEs.
(add_abstract_origin_attribute): For DIEs registered via
dwarf2out_register_external_die directly refer to the early
DIE rather than indirectly through the shadow one we created.
Remove obsolete call to dwarf2out_abstract_function for
non-function/block origins.
(gen_array_type_die): When generating early LTO debug do
not emit DW_AT_string_length.
(gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
late when in LTO. As suggested place a gcc_unreachable for
the DECL_ABSTRACT_P case.
(gen_subprogram_die): Avoid another specification DIE
for early built declarations/definitions for the late LTO case.
(gen_variable_die): Add type references for late duplicated VLA dies
when in late LTO.
(gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
we have the abstract instance already.
(process_scope_var): Adjust decl DIE contexts in LTO which
first puts them in limbo.
(gen_decl_die): Do not generate type DIEs late apart from
types for VLAs or for decls we do not yet have a DIE. Do not
call dwarf2out_abstract_function late.
(dwarf2out_early_global_decl): Make sure to create DIEs
for abstract instances of a decl first.
(dwarf2out_late_global_decl): Adjust comment.
(output_macinfo_op): With multiple macro sections use
macinfo_label_base to distinguish labels.
(output_macinfo): Likewise. Update macinfo_label_base.
Pass in the line info label.
(note_variable_value_in_expr): When generating LTO resolve
all variable values here by generating DIEs as needed.
(init_sections_and_labels): Add early LTO debug flag parameter
and generate different sections and names if set. Add generation
counter for the labels so we can have multiple of them.
(reset_dies): Helper to allow DIEs to be output multiple times.
(dwarf2out_finish): When outputting DIEs to the fat part of an
LTO object first reset DIEs.
(dwarf2out_early_finish): Output early DIEs when generating LTO.
(modified_type_die): Check for decl_ultimate_origin being self
before recursing.
(gen_type_die_with_usage): Likewise.
(gen_typedef_die): Allow decl_ultimate_origin being self.
(set_decl_abstract_flags): Remove.
(set_block_abstract_flags): Likewise.
(dwarf2out_abstract_function): Treat the early generated DIEs
as the abstract copy and only add DW_AT_inline and
DW_AT_artificial here and call set_decl_origin_self.
If the DIE has an abstract origin don't do anything.
* tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
if we have none yet (Go fails to build one, PR78628).
(variably_modified_type_p): Prevent endless recursion for Ada
cyclic pointer types.
* lto-streamer-in.c: Include debug.h.
(dref_queue): New global.
(lto_read_tree_1): Stream in DIE references.
(lto_input_tree): Register DIE references.
(input_function): Stream DECL_DEBUG_ARGS.
* lto-streamer-out.c: Include debug.h.
(lto_write_tree_1): Output DIE references.
(DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
(output_function): Stream DECL_DEBUG_ARGS.
* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
Stream DECL_ABSTRACT_ORIGIN.
* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
(write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
DECL_CONTEXT for file-scope decls.
* lto-streamer.h (struct dref_entry): Declare.
(dref_queue): Likewise.
* cfgexpand.c (pass_expand::execute): Do not call the
outlining_inline_function hook here.
* lto-wrapper.c (debug_obj): New global.
(tool_cleanup): Unlink it if required.
(debug_objcopy): New function.
(run_gcc): Handle early debug sections in the IL files by
extracting them to separate files, partially linkin them and
feeding the result back as result to the linker.
* config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
sections into a separate segment.
* config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
segments.
(darwin_asm_dwarf_section): Likewise.
(darwin_asm_output_dwarf_offset): Likewise.
* config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
lto/
* lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs.
(lto_read_decls): Process TRANSLATION_UNIT_DECLs. Remove
TYPE_DECL debug processing, register DIE references from
prevailing SCCs with the debug machinery.
(lto_section_with_id): Handle LTO debug sections.
libstdc++/
* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
tests with -flto as well if supported.
testsuite/
* c-c++-common/asan/global-overflow-1.c: Adjust diagnostic location
regex to handle the LTO case.
* c-c++-common/asan/heap-overflow-1.c: Likewise.
* c-c++-common/asan/misalign-1.c: Likewise.
* c-c++-common/asan/misalign-2.c: Likewise.
* c-c++-common/asan/null-deref-1.c: Likewise.
* c-c++-common/asan/stack-overflow-1.c: Likewise.
* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
* c-c++-common/asan/use-after-free-1.c: Likewise.
* c-c++-common/asan/alloca_big_alignment.c: Likewise.
* c-c++-common/asan/alloca_detect_custom_size.c: Likewise.
* c-c++-common/asan/alloca_overflow_partial.c: Likewise.
* c-c++-common/asan/alloca_overflow_right.c: Likewise.
* c-c++-common/asan/alloca_underflow_left.c: Likewise.
* g++.dg/asan/large-func-test-1.C: Likewise.
* gfortran.dg/save_6.f90: Add -flto -g variant of save_5.f90.
From-SVN: r251220
2017-08-21 10:29:00 +00:00
Martin Sebor
be56159c65
re PR c/81854 (weak alias of an incompatible symbol accepted)
...
libstdc++/ChangeLog:
PR c/81854
* src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
target as a C++ function with no prototype.
(_GLIBCXX_3_4_5_SYMVER): Ditto.
From-SVN: r251211
2017-08-20 15:31:39 -06:00
John David Anglin
1104d918b5
Fix typo.
...
From-SVN: r251210
2017-08-20 19:03:36 +00:00
John David Anglin
ab7fc02ec1
re PR testsuite/81056 (FAIL: 17_intro/names.cc (test for excess errors))
...
PR testsuite/81056
* testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__
From-SVN: r251208
2017-08-20 18:52:59 +00:00
Jonathan Wakely
b74f0db11a
Simplify allocator usage in unordered containers
...
* include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
__value_alloc_type and __value_alloc_traits typedefs.
(_ReuseOrAllocNode::operator()): Call construct and destroy on the
node allocator.
(_Hashtable_alloc): Simplify __value_alloc_traits typedef.
(_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
construct on the node allocator.
(_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
destroy on the node allocator.
From-SVN: r251187
2017-08-18 19:20:43 +01:00
Jonathan Wakely
676c4146f5
PR libstdc++/81891 fix double-free in hashtable constructor
...
PR libstdc++/81891
* include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
const _ExtractKey&, const allocator_type&)): Let destructor do clean
up if an exception is thrown.
* testsuite/23_containers/unordered_map/cons/81891.cc: New.
From-SVN: r251185
2017-08-18 18:46:57 +01:00
Jonathan Wakely
1ea93d89a9
PR libstdc++/81808 skip test if reading directory doesn't fail
...
PR libstdc++/81808
* testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
that allow opening a directory as a FILE and reading from it.
From-SVN: r251041
2017-08-11 01:14:57 +01:00
Jonathan Wakely
2d763763ed
Fix test for __has_unique_object_representations support in Clang
...
* include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
__is_identifier to set it.
From-SVN: r251009
2017-08-09 22:38:05 +01:00
Katsuhiko Nishimra
2ae804bf9d
Fix test for __is_aggregate support in Clang
...
2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
__is_identifier instead of __has_builtin.
From-SVN: r251008
2017-08-09 22:37:52 +01:00
Jonathan Wakely
04d07b61cb
PR libstdc++/81751 don't call fflush(NULL)
...
PR libstdc++/79820
PR libstdc++/81751
* config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
Call fflush on the stream instead of calling sync() while _M_cfile is
null. Restore original value of errno.
* testsuite/ext/stdio_filebuf/char/79820.cc: New.
* testsuite/ext/stdio_filebuf/char/81751.cc: New.
From-SVN: r250993
2017-08-09 18:52:10 +01:00
Marek Polacek
4ab033db41
re PR libstdc++/81599 (Error in documentation of std::stack)
...
PR libstdc++/81599
* include/bits/stl_stack.h: Fix typo.
From-SVN: r250743
2017-07-31 13:44:16 +00:00
Jonathan Wakely
958dc0c224
PR libstdc++/53984 fix failing test
...
PR libstdc++/53984
* testsuite/27_io/basic_fstream/53984.cc: Fix test.
From-SVN: r250594
2017-07-26 23:06:13 +01:00
Paolo Carlini
3b1aa533df
53984.cc: Fix typo in dg-require directive.
...
2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
directive.
From-SVN: r250575
2017-07-26 14:13:15 +00:00
Jonathan Wakely
c2830789ba
PR libstdc++/53984 handle exceptions in basic_istream::sentry
...
PR libstdc++/53984
* include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
* include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
during construction.
* include/std/istream: Adjust comments for formatted input functions
and unformatted input functions.
* testsuite/27_io/basic_fstream/53984.cc: New.
* testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
From-SVN: r250545
2017-07-25 21:36:06 +01:00
Jonathan Wakely
a74bc411bc
Remove deprecated iostream members for C++17
...
* include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
(ios_base::seek_dir): Remove for C++17.
* include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
Add deprecated attribute for C++11 and C++14.
* testsuite/27_io/types/1.cc: Don't run for C++17 and later.
* testsuite/27_io/types/4.cc: New.
From-SVN: r250531
2017-07-25 18:47:52 +01:00
Michael Collison
5bbf7664c3
Add optimized implementation of mersenne twister for aarch64
...
2017-07-23 Michael Collison <michael.collison@arm.com>
Add optimized implementation of mersenne twister for aarch64
* config/cpu/aarch64/opt/ext/opt_random.h: New file.
(__arch64_recursion): New function.
(__aarch64_lsr_128): New function.
(__aarch64_lsl_128): New function.
(operator==): New function.
(simd_fast_mersenne_twister_engine): Implement
method _M_gen_rand.
* config/cpu/aarch64/opt/bits/opt_random.h: New file.
* include/ext/random: (simd_fast_mersenne_twister_engine):
add _M_state private array.
From-SVN: r250464
2017-07-23 22:46:34 +00:00
François Dumont
4a15d84228
re PR libstdc++/81064 (Inline namespace regression)
...
2017-07-23 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/81064
* include/bits/algorithmfwd.h: Reorganize versioned namespace.
* include/bits/basic_string.h: Likewise.
* include/bits/c++config: Likewise.
* include/bits/deque.tcc: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/forward_list.tcc: Likewise.
* include/bits/hashtable_policy.h: Likewise.
* include/bits/list.tcc: Likewise.
* include/bits/move.h: Likewise.
* include/bits/quoted_string.h: Likewise.
* include/bits/random.h: Likewise.
* include/bits/random.tcc: Likewise.
* include/bits/regex.h: Likewise.
* include/bits/regex.tcc: Likewise.
* include/bits/regex_automaton.h: Likewise.
* include/bits/regex_automaton.tcc: Likewise.
* include/bits/regex_compiler.h: Likewise.
* include/bits/regex_compiler.tcc: Likewise.
* include/bits/regex_constants.h: Likewise.
* include/bits/regex_error.h: Likewise.
* include/bits/regex_executor.h: Likewise.
* include/bits/regex_executor.tcc: Likewise.
* include/bits/regex_scanner.h: Likewise.
* include/bits/regex_scanner.tcc: Likewise.
* include/bits/specfun.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_iterator_base_funcs.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_relops.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/uniform_int_dist.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/bits/vector.tcc: Likewise.
* include/c_global/cmath: Likewise.
* include/c_std/cmath: Likewise.
* include/decimal/decimal: Likewise.
* include/decimal/decimal.h: Likewise.
* include/experimental/algorithm: Likewise.
* include/experimental/any: Likewise.
* include/experimental/array: Likewise.
* include/experimental/bits/erase_if.h: Likewise.
* include/experimental/bits/fs_dir.h: Likewise.
* include/experimental/bits/fs_fwd.h: Likewise.
* include/experimental/bits/fs_ops.h: Likewise.
* include/experimental/bits/fs_path.h: Likewise.
* include/experimental/bits/lfts_config.h: Likewise.
* include/experimental/bits/shared_ptr.h: Likewise.
* include/experimental/bits/string_view.tcc: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/deque: Likewise.
* include/experimental/filesystem: Likewise.
* include/experimental/forward_list: Likewise.
* include/experimental/functional: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/memory_resource: Likewise.
* include/experimental/numeric: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/random: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/set: Likewise.
* include/experimental/source_location: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/utility: Likewise.
* include/experimental/vector: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/codecvt_specializations.h: Likewise.
* include/ext/rope: Likewise.
* include/ext/typelist.h: Likewise.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/std/functional: Likewise.
* include/std/numeric: Likewise.
* include/std/string_view: Likewise.
* include/std/thread: Likewise.
* include/std/variant: Likewise.
* include/tr1/array: Likewise.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/beta_function.tcc: Likewise.
* include/tr1/cmath: Likewise.
* include/tr1/complex: Likewise.
* include/tr1/ell_integral.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/functional: Likewise.
* include/tr1/functional_hash.h: Likewise.
* include/tr1/gamma.tcc: Likewise.
* include/tr1/hashtable.h: Likewise.
* include/tr1/hashtable_policy.h: Likewise.
* include/tr1/hypergeometric.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/poly_hermite.tcc: Likewise.
* include/tr1/poly_laguerre.tcc: Likewise.
* include/tr1/random.h: Likewise.
* include/tr1/random.tcc: Likewise.
* include/tr1/regex: Likewise.
* include/tr1/riemann_zeta.tcc: Likewise.
* include/tr1/shared_ptr.h: Likewise.
* include/tr1/special_function_util.h: Likewise.
* include/tr1/tuple: Likewise.
* include/tr1/type_traits: Likewise.
* include/tr1/unordered_map.h: Likewise.
* include/tr1/unordered_set.h: Likewise.
* include/tr1/utility: Likewise.
* include/tr2/bool_set: Likewise.
* include/tr2/bool_set.tcc: Likewise.
* include/tr2/dynamic_bitset: Likewise.
* include/tr2/dynamic_bitset.tcc: Likewise.
* include/tr2/ratio: Likewise.
* include/tr2/type_traits: Likewise.
* src/c++11/chrono.cc: Likewise.
* src/c++11/compatibility-c++0x.cc: Likewise.
* src/c++11/compatibility-chrono.cc: Likewise.
* src/c++11/cxx11-shim_facets.cc: Likewise.
* src/c++11/hashtable_c++0x.cc: Likewise.
* src/c++11/placeholders.cc: Likewise.
* src/c++11/thread.cc: Likewise.
* src/c++98/bitmap_allocator.cc: Likewise.
* src/c++98/hashtable_tr1.cc: Likewise.
* src/c++98/list.cc: Likewise.
* src/shared/hashtable-aux.cc: Likewise.
* testsuite/20_util/duration/literals/range.cc: Adapt line number.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/forward/c_neg.cc: Likewise.
* testsuite/20_util/forward/f_neg.cc: Likewise.
* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
* python/libstdcxx/v6/printers.py: Adapt.
From-SVN: r250458
2017-07-23 08:41:35 +00:00
Jonathan Wakely
8c7331c556
Add AddressSanitizer annotations to std::vector
...
* config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
* include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
(_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
(_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
(_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
(_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
Define annotation helper types and macros.
(vector::~vector, vector::push_back, vector::pop_back)
(vector::_M_erase_at_end): Add annotations.
* include/bits/vector.tcc (vector::reserve, vector::emplace_back)
(vector::insert, vector::_M_erase, vector::operator=)
(vector::_M_fill_assign, vector::_M_assign_aux)
(vector::_M_insert_rval, vector::_M_emplace_aux)
(vector::_M_insert_aux, vector::_M_realloc_insert)
(vector::_M_fill_insert, vector::_M_default_append)
(vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
From-SVN: r250430
2017-07-21 17:05:10 +01:00
Jonathan Wakely
304a15ec64
PR libstdc++/81476 Optimise vector insertion from input iterators
...
PR libstdc++/81476
* include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
Only insert elements one-by-one when inserting at the end.
* testsuite/performance/23_containers/insert/81476.cc: New.
From-SVN: r250366
2017-07-19 20:32:15 +01:00
Volker Reichelt
57c51668ee
new (bad_array_new_length): Remove redundant semicolon after in-class member function definition.
...
* libsupc++/new (bad_array_new_length): Remove redundant
semicolon after in-class member function definition.
* include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
* include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
* include/bits/random.h (mersenne_twister_engine): Likewise.
* include/tr1/random.h (mersenne_twister): Likewise
* include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
* include/ext/rope (char_producer, _Rope_char_consumer,
_Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
Likewise.
* include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
_Rope_insert_char_consumer): Likewise.
From-SVN: r250357
2017-07-19 16:59:00 +00:00
Jonathan Wakely
e020783cd6
Fix indentation in std::basic_filebuf member functions
...
* include/bits/fstream.tcc (basic_filebuf::xsgetn)
(basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
From-SVN: r250353
2017-07-19 16:46:04 +01:00
Jonathan Wakely
4e66b02bc1
Fix indentation in libstdc++ testsuite utils
...
* testsuite/util/testsuite_iterators.h: Fix indentation.
From-SVN: r250349
2017-07-19 15:49:00 +01:00
Jonathan Wakely
1f78c47bf0
Use dg-require-fileio in new test
...
* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
From-SVN: r250333
2017-07-19 01:23:00 +01:00
Jonathan Wakely
fddcd19abf
PR libstdc++/81395 fix crash when write follows large read
...
PR libstdc++/81395
* include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
pointers for write mode after reading.
* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
From-SVN: r250328
2017-07-19 00:39:34 +01:00
François Dumont
4f9e1f4d9d
stl_list.h (struct _List_node_header): New.
...
2017-07-18 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_list.h
(struct _List_node_header): New.
(_List_impl()): Fix noexcept qualification.
(_List_impl(_List_impl&&)): New, default.
(_List_base()): Default.
(_List_base(_List_base&&)): Default.
(_List_base::_M_move_nodes): Adapt to use
_List_node_header._M_move_nodes.
(_List_base::_M_init): Likewise.
(list<>()): Default.
(list<>(list&&)): Default.
(list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
(__distance(_List_const_iterator<>, _List_const_iterator<>,
input_iterator_tag)): Adapt.
* testsuite/23_containers/list/allocator/default_init.cc: New.
From-SVN: r250320
2017-07-18 20:26:08 +00:00
Jonathan Wakely
e12d3780e6
Reorder std::scoped_lock parameters as per P0739R0 DR status
...
* include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
as per P0739R0.
* testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
* testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
with std::adopt_lock_t.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
feature-test macro.
From-SVN: r250223
2017-07-15 16:43:22 +01:00
Jason Merrill
20316b9b2e
Constrain std::variant constructor for class template argument deduction
...
2017-07-14 Jason Merrill <jason@redhat.com>
Jonathan Wakely <jwakely@redhat.com>
* include/std/variant (variant::variant(_Tp&&)): Constrain to remove
the constructor for empty variants from the candidate functions
during class template argument deduction.
* testsuite/20_util/variant/deduction.cc: New.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r250213
2017-07-14 20:13:49 +01:00
Jonathan Wakely
6a28a7531b
Improvements to the libstdc++ FAQ and manual
...
* doc/xml/faq.xml: Update several old entries. Improve
cross-references.
* doc/xml/manual/intro.xml: Add anchors to each DR.
* doc/html/*: Regenerate.
From-SVN: r250125
2017-07-11 12:11:33 +01:00
Jonathan Wakely
b0e90d2acf
Include missing header for std::free
...
* testsuite/abi/pr42230.cc: Add header for std::free.
From-SVN: r250102
2017-07-10 19:43:02 +01:00
Jonathan Wakely
387c17d312
PR libstdc++/81381 support stateful allocators in basic_stringbuf
...
PR libstdc++/81381
* include/bits/sstream.tcc (basic_stringbuf::overflow)
(basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
(basic_stringbuf::str()): Construct new strings with an allocator.
* testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
From-SVN: r250101
2017-07-10 18:59:02 +01:00
Jonathan Wakely
93ef155b3d
PR libstdc++/81338 correctly manage string capacity
...
PR libstdc++/81338
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
Declare basic_stringbuf to be a friend.
* include/bits/sstream.tcc (basic_stringbuf::overflow)
[_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
* include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
length to buffer length.
* testsuite/27_io/basic_stringstream/assign/81338.cc: New.
From-SVN: r250100
2017-07-10 18:58:56 +01:00
Jonathan Wakely
32aaf6ef10
Fix memory leaks in libstdc++ tests
...
* testsuite/20_util/specialized_algorithms/memory_management_tools/
1.cc: Free memory.
* testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
of original environment and free memory.
From-SVN: r250021
2017-07-06 13:42:51 +01:00
Jonathan Wakely
4f7c2c7ff2
Fix memory leaks in libstdc++ ABI tests
...
* testsuite/abi/pr42230.cc: Free memory.
* testsuite/util/testsuite_abi.cc (demangle): Return std::string
instead of pointer that might need freeing.
* testsuite/util/testsuite_abi.h (demangle): Likewise.
* testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
From-SVN: r250020
2017-07-06 13:42:46 +01:00
Jonathan Wakely
318c48e304
Prevent __uses_alloc from holding dangling references
...
* include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
deleted overload to prevent dangling references to rvalues.
* include/experimental/memory_resource
(polymorphic_allocator::construct): Do not call __use_alloc with
rvalue arguments.
From-SVN: r250019
2017-07-06 12:54:10 +01:00
Tim Shen
7050372474
re PR libstdc++/80187 (C++ variant should be trivially copy constructible if possible)
...
PR libstdc++/80187
* include/std/variant (variant::variant, variant::~variant,
variant::operator=): Implement triviality forwarding for four
special member functions.
* testsuite/20_util/variant/compile.cc: Tests.
From-SVN: r249706
2017-06-27 18:19:03 +00:00
Jonathan Wakely
68fe5f441e
PR libstdc++/81221 only run new test for check-parallel
...
PR libstdc++/81221
* testsuite/25_algorithms/sample/81221.cc: Disable except for
check-parallel.
From-SVN: r249697
2017-06-27 17:19:16 +01:00
Jonathan Wakely
e708b94bb7
PR libstdc++/81221 fix namespace qualification for parallel mode
...
PR libstdc++/81221
* include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
std.
* testsuite/25_algorithms/sample/81221.cc: New.
From-SVN: r249692
2017-06-27 15:44:50 +01:00
Jonathan Wakely
b6d03af0b1
PR libstdc++/81173 fix undefined memset with null pointer
...
PR libstdc++/81173
* include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
Do not pass null pointer to memset.
From-SVN: r249554
2017-06-22 15:16:38 +01:00
Ville Voutilainen
5e88d2d08d
PR libstdc++/80675, PR libstdc++/80940
...
* include/std/istream:
(__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream): Use the new base.
(__rvalue_istream_type): New.
(operator>>(_Istream&&, _Tp&&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual extraction.
* include/std/ostream:
(__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream): Use the new base.
(__rvalue_ostream_type): New.
(operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual insertion.
* testsuite/27_io/rvalue_streams-2.cc: Add new tests.
From-SVN: r249468
2017-06-21 22:53:26 +03:00
Ramana Radhakrishnan
6bea305b3e
Update baseline symbols for aarch64-none-linux-gnu
...
* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Regenerate
From-SVN: r249454
2017-06-21 14:38:56 +00:00
Jonathan Wakely
ed39d22d1b
PR libstdc++/81092 Regenerate configure for libtool_VERSION change
...
PR libstdc++/81092
* configure: Regenerate.
From-SVN: r249438
2017-06-21 09:55:26 +01:00
Uros Bizjak
3263979465
baseline_symbols.txt: Update.
...
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r249418
2017-06-20 17:50:57 +02:00
Rainer Orth
67ea3f4e0f
Always check for target i?86 and x86_64
...
libstdc++-v3:
* testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
lp64 targets.
gcc/testsuite:
* c-c++-common/fold-masked-cmp-1.c: Allow for i?86-*-* target.
* c-c++-common/fold-masked-cmp-2.c: Likewise.
* c-c++-common/fold-masked-cmp-3.c: Likewise.
* g++.dg/cpp0x/alignas4.C: Allow for i?86-*-* target, don't
restrict to x86_64-*-*-gnu.
Skip scan-assembler on *-*-darwin*.
* g++.dg/vect/pr70944.cc: Allow for i?86-*-* target.
* gcc.dg/loop-invariant.c: Likewise.
* gcc.dg/lto/pr70955_0.c: Likewise.
* gcc.dg/tree-ssa/pr69196-1.c: Likewise.
* gcc.dg/tree-ssa/pr79803.c: Likewise.
* gfortran.dg/pr68078.f90: Allow for i?86-*-linux*.
* g++.dg/debug/dwarf2/const2b.C: Allow for x86_64-*-* target.
* gcc.dg/attr-ms_struct-1.c: Allow for all i?86-*-*, x86_64-*-*
targets.
* gcc.dg/attr-ms_struct-2.c: Likewise.
* gcc.dg/attr-ms_struct-packed1.c: Likewise.
* gcc.dg/bf-ms-layout.c: Likewise.
* gcc.dg/bf-ms-layout-2.c: Likewise.
* gcc.dg/pic-macro-define.c: Remove target restrictions.
Require fpic support.
* gcc.target/i386/bitfield1.c: Allow for all i?86-*-*, x86_64-*-*
targets.
* gcc.target/i386/bitfield2.c: Likewise.
* gcc.target/i386/darwin-fpmath.c: Allow for x86_64-*-darwin*
targets.
* gfortran.dg/fmt_pf.f90: Remove i?86-*-solaris2.9* from xfail.
From-SVN: r249409
2017-06-20 13:01:32 +00:00
Rainer Orth
a06a538548
Update Solaris baselines for GCC 8.0 (PR libstdc++/81092)
...
* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
Likewise.
* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
Likewise.
From-SVN: r249362
2017-06-19 10:06:41 +00:00
H.J. Lu
82aa64e5af
x32: Update baseline_symbols.txt
...
PR libstdc++/81092
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
From-SVN: r249349
2017-06-18 09:43:53 -07:00
Andreas Schwab
60a51885f2
re PR libstdc++/81092 (Missing symbols for new std::wstring constructors)
...
PR libstdc++/81092
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r249348
2017-06-18 14:36:02 +00:00
Rainer Orth
4f4b0ab85f
Get rid of dg-skip-if etc. default args
...
libstdc++-v3:
* testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
default args.
libgomp:
* testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
default args.
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
dg-xfail-run-if default args.
gcc/testsuite:
Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if default args.
From-SVN: r249339
2017-06-17 15:32:28 +00:00
Jonathan Wakely
14d8a91212
PR libstdc++/80893 don't run test for C++98 modes
...
PR libstdc++/80893
* testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
From-SVN: r249338
2017-06-17 13:11:47 +01:00
Jonathan Wakely
78a8b676f1
Add std::get_deleter overload with correct signature
...
* include/bits/shared_ptr.h (get_deleter): Add overload matching
standard signature.
* include/bits/shared_ptr_base.h (__shared_ptr): Declare new
get_deleter overload as a friend.
* testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
From-SVN: r249267
2017-06-16 16:20:14 +01:00
Jakub Jelinek
fb7a163397
re PR libstdc++/81092 (Missing symbols for new std::wstring constructors)
...
PR libstdc++/81092
* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
From-SVN: r249260
2017-06-16 16:29:55 +02:00
Jonathan Wakely
bfe8a528aa
Fix std::wbuffer_convert::sync()
...
* include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
* testsuite/22_locale/conversions/buffer/2.cc: New.
From-SVN: r249255
2017-06-16 14:23:42 +01:00
Jonathan Wakely
4317778a9b
PR libstdc++/81092 add std::wstring symbols and bump library version
...
PR libstdc++/81092
* acinclude.m4: Bump libtool_VERSION.
* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
* config/abi/pre/gnu.ver: Add wstring constructor symbols to
GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
to new GLIBCXX_3.4.25 version.
* doc/xml/manual/abi.xml: Document new versions.
* doc/html/*: Regenerate.
* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
constructors to ensure required symbols are exported.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
* testsuite/util/testsuite_abi.cc: Add new version.
From-SVN: r249246
2017-06-16 12:54:59 +01:00
Jonathan Wakely
6ec3c9c841
Fix missing returns in libstdc++ header and tests
...
* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
return statement.
* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
Return void.
* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
Likewise.
* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
missing return statements.
* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
Return void.
* testsuite/special_functions/14_expint/pr68397.cc: Likewise.
From-SVN: r249238
2017-06-16 09:13:37 +01:00
François Dumont
7d594224c2
stl_bvector.h (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)): Change signature.
...
2017-06-16 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_bvector.h
(__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
Change signature.
(std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
(_Bvector_impl_data): New.
(_Bvector_impl): Inherits from latter.
(_Bvector_impl(_Bit_alloc_type&&)): Delete.
(_Bvector_impl(_Bvector_impl&&)): New, default.
(_Bvector_base()): Default.
(_Bvector_base(_Bvector_base&&)): Default.
(_Bvector_base::_M_move_data(_Bvector_base&&)): New.
(vector(vector&&, const allocator_type&)): Use latter.
(vector<bool>::operator=(vector&&)): Likewise.
(vector<bool>::vector()): Default.
(vector<bool>::vector(vector&&)): Default.
(vector<bool>::assign(_InputIterator, _InputIterator)): Use
_M_assign_aux.
(vector<bool>::assign(initializer_list<bool>)): Likewise.
(vector<bool>::_M_initialize_value(bool)): New.
(vector<bool>(size_type, const bool&, const allocator_type&)): Use
latter.
(vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
Likewise.
(vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
From-SVN: r249235
2017-06-16 05:28:06 +00:00
François Dumont
0356a0749b
2017-06-15 François Dumont <fdumont@gcc.gnu.org>
...
* src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
From-SVN: r249226
2017-06-15 20:32:09 +00:00
Rainer Orth
d12366802a
Use pthread effective-target in testsuite
...
* testsuite: Add dg-require-effective-target pthread to -pthread
tests.
Remove explicit target lists from dg-do and dg-options.
* testsuite/30_threads/async/forced_unwind.cc: Remove explit
target list from dg-options.
* testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
* 30_threads/shared_mutex/cons/1.cc: Likewise.
Pass -pthread for all targets.
* 30_threads/shared_mutex/try_lock/1.cc: Likewise.
* 30_threads/shared_mutex/try_lock/2.cc: Likewise.
* 30_threads/shared_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/this_thread/57060.cc: Require c++11 via
dg-require-effective-target.
From-SVN: r249217
2017-06-15 12:18:05 +00:00
Jonathan Wakely
cdd17d6e99
Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0
...
* doc/xml/manual/test.xml: Correct instructions on running tests.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
From-SVN: r249206
2017-06-14 20:38:30 +01:00
Pedro Alves
b51483f48f
Finish implementing P0426R1 "Constexpr for std::char_traits" for C++17
...
As discussed in PR c++/80265 ("__builtin_{memcmp,memchr,strlen} are
not usable in constexpr functions"), use __builtin_constant_p to tell
whether we can defer to a constexpr algorithm.
I used __always_inline__ just to be thorough. It isn't really really
necessary as far as I could determine.
Changes like these:
if (__n == 0)
return 0;
- return wmemcmp(__s1, __s2, __n);
+ else
+ return wmemcmp(__s1, __s2, __n);
are necessary otherwise G++ complains that we're calling a
non-constexpr function, which looks like a a manifestation of PR67026
to me.
libstdc++-v3:
2017-06-12 Pedro Alves <palves@redhat.com>
* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
char_traits status.
* doc/html/*: Regenerate.
* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
not already defined.
(__cpp_lib_constexpr_char_traits): Uncomment.
(__constant_string_p, __constant_char_array_p): New.
(std::char_traits<char>, std::char_traits<wchar_t>): Add
_GLIBCXX17_CONSTEXPR on compare, length and find and use
__constant_string_p, __constant_char_array_p and
__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
time.
* testsuite/21_strings/char_traits/requirements/
constexpr_functions_c++17.cc: Uncomment
__cpp_lib_constexpr_char_traits tests. Uncomment
test_compare<char>, test_length<char>, test_find<char>,
test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
static_assert tests.
From-SVN: r249137
2017-06-12 22:22:39 +00:00
François Dumont
07cfc2d75d
stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator default init.
...
2017-06-12 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
default init.
* testsuite/util/testsuite_allocator.h
(__gnu_test::default_init_allocator<>) New.
* testsuite/23_containers/set/allocator/default_init.cc: New.
* testsuite/23_containers/map/allocator/default_init.cc: New.
From-SVN: r249136
2017-06-12 20:38:16 +00:00
Jonathan Wakely
754d67d5ba
PR libstdc++/55917 do not handle exceptions in std::thread
...
PR libstdc++/55917
* src/c++11/thread.cc (execute_native_thread_routine): Remove
try-block so that exceptions propagate out of the thread and terminate
is called by the exception-handling runtime.
(execute_native_thread_routine_compat): Likewise.
* testsuite/30_threads/thread/cons/terminate.cc: New.
From-SVN: r249130
2017-06-12 17:37:28 +01:00
Jonathan Wakely
53d01fd9e9
Support move-only deleters in std::shared_ptr (LWG 2802)
...
* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
* include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
(LWG 2802).
* include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
(_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
* testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
From-SVN: r249061
2017-06-09 14:20:37 +01:00
Jonathan Wakely
225ab2b07b
Add deduction guides for sequence containers (P0433R2, partial)
...
* include/bits/forward_list.h (forward_list): Add deduction guide.
* include/bits/stl_deque.h (deque): Likewise.
* include/bits/stl_list.h (list): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* testsuite/23_containers/deque/cons/deduction.cc: New.
* testsuite/23_containers/forward_list/cons/deduction.cc: New.
* testsuite/23_containers/list/cons/deduction.cc: New.
* testsuite/23_containers/vector/cons/deduction.cc: New.
From-SVN: r249054
2017-06-09 12:04:53 +01:00
Jonathan Wakely
853ed6bc10
PR libstdc++/81017 add noexcept to std::function move operations
...
PR libstdc++/81017
* include/bits/std_function.h (function::function(function&&))
(function::operator=(funtion&&)): Add noexcept.
* testsuite/20_util/function/assign/move.cc: Check for noexcept.
* testsuite/20_util/function/cons/move.cc: Likewise.
From-SVN: r249018
2017-06-08 15:27:45 +01:00
Jonathan Wakely
bfd88d1df1
Add C++17 deduction guide for std::basic_regex (P0433R2, partial)
...
* include/bits/regex.h (basic_regex): Add deduction guide from P0433.
* testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
From-SVN: r248990
2017-06-07 16:43:54 +01:00
Jonathan Wakely
d840779ff4
PR libstdc++/81002 fix std::basic_regex range constructor
...
PR libstdc++/81002
* include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
so iterator type is deduced.
* include/bits/regex_compiler.h (__compile_nfa): Reorder template
parameters to allow iterator type to be deduced.
* testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
From-SVN: r248989
2017-06-07 16:43:35 +01:00
Jonathan Wakely
6d82c56288
Add C++17 deduction guide for std::basic_string (P0433R2, partial)
...
* include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
New trait and alias for detecting Allocator-like types.
* include/bits/basic_string.h (basic_string): Add deduction guide
from P0433.
* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
parameter with default template argument that causes substitution
failures for types that cannot be allocators.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
From-SVN: r248967
2017-06-07 13:35:08 +01:00
Jonathan Wakely
94895bd98d
PR libstdc++/80939 Remove unmeetable constexpr specifiers
...
PR libstdc++/80939
* include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
(__erased_hash): Remove constexpr specifier and qualify calls to
__ref_cast.
(__erased_dtor): Remove constexpr specifier and use _Destroy.
From-SVN: r248881
2017-06-05 17:49:04 +01:00
Jonathan Wakely
6c24177862
Optimize std::advance for single increments
...
* include/bits/stl_iterator_base_funcs.h
(__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
cases where incrementing or decrementing a single step.
From-SVN: r248875
2017-06-05 11:34:13 +01:00
Jonathan Wakely
d08606ce6c
Add noexcept to shared_ptr owner comparisons (LWG 2873)
...
* include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
(__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
specifiers as per LWG 2873 and LWG 2942.
* testsuite/20_util/owner_less/noexcept.cc: New.
* testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
noexcept guarantees.
* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
From-SVN: r248874
2017-06-05 10:33:19 +01:00
Andreas Schwab
d9850c48a9
baseline_symbols.txt: Update.
...
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r248854
2017-06-03 09:56:43 +00:00
Eric Botcazou
76052545d2
configure.ac (*-*-linux-android*): Set target_makefile_frag.
...
* configure.ac (*-*-linux-android*): Set target_makefile_frag.
* configure: Regenerate.
config/
* mt-android: New file.
libstdc++-v3/
* src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
From-SVN: r248853
2017-06-03 08:23:22 +00:00
Jonathan Wakely
4c19e432d6
PR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()
...
PR libstdc++/80624
* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
Transform eof value to U+FFFD.
* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
From-SVN: r248843
2017-06-02 19:35:37 +01:00
Jonathan Wakely
ef3985dbd1
Remove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14
...
* libsupc++/Makefile.am: Remove custom targets for files that need to
be compiled as C++11 or C++14.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
warnings.
* libsupc++/del_opvs.cc: Likewise.
From-SVN: r248823
2017-06-02 12:49:04 +01:00
Richard Biener
1c26adb74d
re PR libstdc++/80721 (Sorting/Merging of free EH-emergency buffer may wrong or uncomplete)
...
2017-06-02 Richard Biener <rguenther@suse.de>
Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.
Co-Authored-By: Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
From-SVN: r248816
2017-06-02 08:10:48 +00:00
Rainer Orth
e34fd4dc1c
Fix cross compilation to Solaris
...
(GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
Remove *-solaris* section.
* configure: Regenerate.
From-SVN: r248791
2017-06-01 13:50:03 +00:00
Ville Voutilainen
e257141f07
re PR c++/80812 (ICE: in build_value_init_noctor, at cp/init.c:483)
...
PR c++/80812
cp/
PR c++/80812
* method.c (constructible_expr): Strip array types before calling
build_value_init.
libstdc++/
PR c++/80812
* testsuite/20_util/is_constructible/80812.cc: New.
From-SVN: r248788
2017-06-01 14:09:41 +03:00
Jonathan Wakely
046a84762b
PR libstdc++/80893 Fix null dereference in vector<bool>
...
PR libstdc++/80893
* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
null pointer dereference when size is zero.
* testsuite/23_containers/vector/bool/80893.cc: New.
* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
Add non-explicit constructor from nullptr.
(PointerBase::derived() const): Add const-qualified overload.
From-SVN: r248734
2017-05-31 13:41:45 +01:00
Tim Shen
a8127c0cca
re PR c++/80737 (variant<any> as class member resulting to compile errors)
...
PR libstdc++/80737
* include/std/variant(variant::variant): SFINAE on is_same first.
* testsuite/20_util/variant/any.cc: test case.
From-SVN: r248548
2017-05-28 21:27:30 +00:00
Jonathan Wakely
b678436176
Use CHAR_BIT instead of assuming 8 bits
...
* src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
instead of fixed number of bits.
From-SVN: r248428
2017-05-24 20:27:28 +01:00
Andreas Schwab
e1b6749586
baseline_symbols.txt: Update.
...
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
From-SVN: r248420
2017-05-24 14:33:07 +00:00
Xi Ruoyao
78aa76df40
PR libstdc++/67578 Implement non-trivial std::random_device::entropy
...
2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/67578
* acinclude.m4: Bump libtool_VERSION.
* config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add test for <linux/random.h>.
* doc/xml/manual/abi.xml: Document new library version.
* include/bits/random.h (random_device::entropy)
[_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
(random_device::_M_getentropy): Declare.
* src/c++11/random.cc (random_device::_M_getentropy): Define.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
versions, and make it the latest version.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r248374
2017-05-23 17:11:57 +01:00
Xi Ruoyao
5383998a58
PR libstdc++/67214 Avoid signed overflow in num_get::_M_extract_int
...
2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
PR libstdc++/67214
* include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
explicit conversion to avoid signed overflow.
From-SVN: r248362
2017-05-23 11:16:08 +01:00
Jonathan Wakely
f710ca61ba
PR libstdc++/80796 Add new std::search overload for C++17
...
PR libstdc++/80796
* include/bits/stl_algo.h (search): Add new overload for C++17.
* testsuite/25_algorithms/search/searcher.cc: New.
From-SVN: r248266
2017-05-19 13:11:31 +01:00
Jonathan Wakely
747217d179
PR libstdc++/80478 make std::mem_fn work with noexcept functions
...
PR libstdc++/80478
* include/std/functional (_Mem_fn_traits_base): Add specializations
for noexcept member function types.
* testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
From-SVN: r248245
2017-05-18 18:32:06 +01:00
Jonathan Wakely
8985968cc4
Fix typos in libstdc++ manual
...
* doc/xml/manual/policy_data_structures.xml: Fix typo.
* doc/xml/manual/test_policy_data_structures.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r248189
2017-05-18 11:26:02 +01:00
Jonathan Wakely
8268fc6022
Update libstdc++ version info in manual
...
* doc/xml/manual/abi.xml: Document latest library versions.
* doc/xml/manual/build_hacking.xml: Document requirement to update
abi.xml when bumping library versions.
* doc/html/*: Regenerate.
From-SVN: r248186
2017-05-18 11:09:32 +01:00
Jonathan Wakely
26bddba34a
Fixes to Doxygen comments in libstdc++ headers
...
* include/bits/refwrap.h: Fix Doxygen warning.
* include/bits/specfun.h: Likewise.
* include/bits/std_function.h: Likewise.
* include/bits/stl_algo.h (set_union, set_intersection)
(set_difference, set_symmetric_difference): Add Doxygen @param tags
for output iterator parameters.
* include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
iterator parameter.
* include/std/mutex (try_lock, lock): Change Mutex to Lockable in
Doxygen comments.
From-SVN: r248160
2017-05-17 17:02:33 +01:00
Ville Voutilainen
b42cc3ca24
Implement new C++ intrinsics __is_assignable and __is_constructible.
...
c-family/
Implement new C++ intrinsics __is_assignable and __is_constructible.
* c-common.c (__is_assignable, __is_constructible): New.
* c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.
cp/
PR c++/80654
PR c++/80682
Implement new C++ intrinsics __is_assignable and __is_constructible.
* cp-tree.h (CPTK_IS_ASSIGNABLE, CPTK_IS_CONSTRUCTIBLE): New.
(is_xible): New.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.
* method.c (constructible_expr): Set cp_unevaluated.
(is_xible_helper): New.
(is_trivially_xible): Adjust.
(is_xible): New.
* parser.c (cp_parser_primary_expression): Handle
RID_IS_ASSIGNABLE and RID_IS_CONSTRUCTIBLE.
(cp_parser_trait_expr): Likewise.
* semantics.c (trait_expr_value): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.
testsuite/
* g++.dg/ext/80654.C: New.
libstdc++-v3/
Implement new C++ intrinsics __is_assignable and __is_constructible.
* include/std/type_traits (__do_is_static_castable_impl): Remove.
(__is_static_castable_impl, __is_static_castable_safe): Likewise.
(__is_static_castable, __do_is_direct_constructible_impl): Likewise.
(__is_direct_constructible_impl): Likewise.
(__is_direct_constructible_new_safe): Likewise.
(__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
(__is_direct_constructible_ref_cast): Likewise.
(__is_direct_constructible_new, __is_direct_constructible): Likewise.
(__do_is_nary_constructible_impl): Likewise.
(__is_nary_constructible_impl, __is_nary_constructible): Likewise.
(__is_constructible_impl): Likewise.
(is_constructible): Call the intrinsic.
(__is_assignable_helper): Remove.
(is_assignable): Call the intrinsic.
(is_trivially_constructible): Likewise.
(__is_trivially_copy_constructible_impl): New.
(is_trivially_copy_constructible): Use it.
(__is_trivially_move_constructible_impl): New.
(is_trivially_move_constructible): Use it.
(is_trivially_assignable): Call the intrinsic.
(__is_trivially_copy_assignable_impl): New.
(is_trivially_copy_assignable): Use it.
(__is_trivially_move_assignable_impl): New.
(is_trivially_move_assignable): Use it.
(testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
(testsuite/20_util/is_trivially_copy_assignable/value.cc):
Add test for void.
(testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
(testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
(testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
Likewise.
From-SVN: r248153
2017-05-17 16:54:23 +03:00
Jonathan Wakely
058c785479
Test source_location::current() in default member initializer
...
* testsuite/experimental/source_location/1.cc: Change expected result
for source_location::current() used in default member initializer.
From-SVN: r248111
2017-05-16 15:26:14 +01:00
Jonathan Wakely
2673bae9d2
Implement std::experimental::source_location (N4519)
...
* configure: Regenerate.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/*: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/experimental/source_location: New header implementing N4519.
* testsuite/experimental/source_location/1.cc: New test.
From-SVN: r248110
2017-05-16 14:37:52 +01:00
Jonathan Wakely
423624979a
Fix forward declaration of std::type_info for versioned-namespace
...
PR libstdc++/80285
* include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
outside versioned namespace.
From-SVN: r248109
2017-05-16 14:16:34 +01:00
Jonathan Wakely
ba1a69079f
Regenerate libstdc++-v3/configure for versioned-namespace soname
...
* configure: Regenerate.
From-SVN: r248107
2017-05-16 14:12:16 +01:00
Marc Glisse
2c27a627a3
optional (_Optional_base::_M_get): Check precondition.
...
2017-05-16 Marc Glisse <marc.glisse@inria.fr>
* include/std/optional (_Optional_base::_M_get): Check precondition.
* testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
From-SVN: r248099
2017-05-16 12:54:16 +00:00
Jonathan Wakely
5f54ae00d0
Add cross-reference for test permutations in libstdc++ manual
...
* doc/xml/manual/appendix_contributing.xml: Link to test docs and
note higher DejaGnu version requirement.
* doc/html/*: Regenerate.
From-SVN: r248092
2017-05-16 11:37:22 +01:00
Jonathan Wakely
ad2b8b37ec
Add cross-reference for BADNAMES in libstdc++ manual
...
* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
identifiers.
* doc/html/*: Regenerate.
From-SVN: r248091
2017-05-16 10:46:21 +01:00
Jonathan Wakely
85c05b5eec
Fix order and types of members in C++17 insert_return_type structs
...
PR libstdc++/80761
* include/bits/node_handle.h (_Node_insert_return): Reorder members.
(tuple_size, tuple_element): Remove partial specializations.
* include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
const_iterator for std::set.
* testsuite/23_containers/map/modifiers/extract.cc: New.
* testsuite/23_containers/set/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
From-SVN: r248062
2017-05-15 14:47:40 +01:00
François Dumont
3838e0c086
Revert revision 247926.
...
From-SVN: r247998
2017-05-12 21:19:39 +00:00
Jonathan Wakely
f859f912e4
PR libstdc++/78939 make tuple_size<cv T> depend on tuple_size<T>
...
PR libstdc++/78939
* include/std/utility (tuple_size<cv T>): Only define partial
specializations when tuple_size<T>::value is valid.
* testsuite/20_util/tuple/78939.cc: New.
* testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
From-SVN: r247973
2017-05-12 15:43:11 +01:00
François Dumont
fee84d551f
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
...
* include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
(_Rb_tree_impl<>): Remove _Is_pod_comparator
template parameter.
From-SVN: r247929
2017-05-11 20:30:44 +00:00
François Dumont
ea594612f0
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
...
* include/debug/safe_container.h [_GLIBCXX_USE_CXX11_ABI]
(_Safe_container<>): Remove _IsCxx11AllocatorAware template parameter.
* include/debug/string: Adapt.
From-SVN: r247926
2017-05-11 20:03:47 +00:00
François Dumont
dc4dd7f63f
2017-05-11 François Dumont <fdumont@gcc.gnu.org>
...
* include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
(__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
Remove.
(__gnu_debug::_Error_formatter::_M_format_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_word): Remove.
(__gnu_debug::_Error_formatter::_M_print_string): Remove.
(__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
* src/c++11/debug.cc: Adapt.
* config/abi/pre/gnu-versioned-namespace.ver: Adapt.
From-SVN: r247925
2017-05-11 19:49:26 +00:00
Jonathan Wakely
395ec8f30c
Fix ViewCVS URLs in libstdc++ manual
...
* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r247911
2017-05-11 16:01:10 +01:00
Jonathan Wakely
f8cba3aaae
PR libstdc++/80285 optimize std::make_shared for -fno-rtti
...
PR libstdc++/80285
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
function to get unique fake std::type_info reference.
(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
_S_ti() fake reference.
(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
single implementation with or without RTTI enable.
[!__cpp_rtti]: Pass fake reference to _M_get_deleter.
* testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
allocation and deallocation counts.
* testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
New.
From-SVN: r247905
2017-05-11 14:21:07 +01:00
François Dumont
87c7063d68
Bump version namespace.
...
2017-05-10 François Dumont <fdumont@gcc.gnu.org>
Bump version namespace.
* config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
* acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
* include/bits/c++config: Adapt.
* include/bits/regex.h: Adapt.
* include/experimental/bits/fs_fwd.h: Adapt.
* include/experimental/bits/lfts_config.h: Adapt.
* include/std/variant: Adapt.
* python/libstdcxx/v6/printers.py: Adapt.
* testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
* include/bits/stl_tree.h (_Rb_tree_impl<>): Remove _Is_pod_comparator
template parameter when version namespace is active.
From-SVN: r247858
2017-05-10 20:40:28 +00:00
François Dumont
e5795ce493
stl_algobase.h (std::__iter_swap<false>): Remove _GLIBCXX_MOVE usage.
...
2017-05-10 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
_GLIBCXX_MOVE usage.
From-SVN: r247855
2017-05-10 20:05:26 +00:00
Jason Merrill
e91c2cac34
* testsuite/24_iterators/container_access.cc (test03): Make il3 static.
...
From-SVN: r247799
2017-05-09 11:11:19 -04:00
Jonathan Wakely
9057edd30c
Tweak static assertions in std::optional
...
* include/std/optional: Use a separate static_assert per condition.
* testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
numbers.
From-SVN: r247748
2017-05-08 18:13:38 +01:00
Jonathan Wakely
6d430cbd12
Clarify mt_allocator documentation w.r.t deallocation
...
* doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
* doc/html/*: Regenerate.
From-SVN: r247742
2017-05-08 16:09:08 +01:00
Hugo Beauzée-Luyssen
8a20a3c76f
re PR bootstrap/69506 (check-in 232454 seems to cause problems with cygwin builds)
...
2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
PR libstdc++/69506
* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
From-SVN: r247502
2017-05-02 15:04:39 +00:00
François Dumont
30fc569c18
48362.cc: Replace a regexp-test by a note-test.
...
2017-04-29 François Dumont <fdumont@gcc.gnu.org>
* testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
by a note-test.
From-SVN: r247411
2017-04-29 19:35:28 +00:00
Jonathan Wakely
b26f45f069
PR libstdc++/80553 don't allow destroying non-destructible types
...
PR libstdc++/80553
* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
assertions to ensure type is destructible.
(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
Move to stl_construct.h.
* testsuite/20_util/specialized_algorithms/memory_management_tools/
destroy_neg.cc: New test.
* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
From-SVN: r247379
2017-04-28 13:56:53 +01:00
Jonathan Wakely
38233afdcf
Remove superfluous "" in dg-error.
...
* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous "" in dg-error.
From-SVN: r247378
2017-04-28 13:56:38 +01:00
Tom de Vries
f166beaf42
Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)
...
find $(find -type d -name testsuite) -type f \
| xargs sed -ri \
's#(dg-(error|warning|message|bogus).*) \{ target \*-\*-\* \} \}#\1 }#'
2017-04-28 Tom de Vries <tom@codesourcery.com>
* g++.dg/parse/error2.C: Remove superfluous '{ target *-*-* }' in
dg-(error|warning|message|bogus).
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Same.
* gcc.dg/Wpointer-sign-Wall.c: Same.
* gcc.dg/Wpointer-sign-pedantic.c: Same.
* gcc.dg/cpp/19990413-1.c: Same.
* gcc.dg/dg-test-1.c: Same.
* gcc.dg/empty-source-2.c: Same.
* gcc.dg/empty-source-3.c: Same.
* gcc.dg/format/c99-printf-1.c: Same.
* gcc.dg/format/c99-scanf-1.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/uninit-pr20644-O0.c: Same.
* gfortran.dg/pr70006.f90: Same.
* obj-c++.dg/fsf-package-0.m: Same.
* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
From-SVN: r247364
2017-04-28 07:26:32 +00:00
Jonathan Wakely
4ca4927ac6
Remove reundant const-qualification from cast targets
...
* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
(PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
* testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
Likewise.
From-SVN: r247346
2017-04-27 16:17:05 +01:00
Jonathan Wakely
9425300b41
Improve tests for vector and deque move-assignment
...
* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
comment. Ensure first test works because allocator type propagates and
not because is_always_equal is true.
* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
testcase that instantiates the move-assignment operator.
From-SVN: r247284
2017-04-26 20:25:30 +01:00
Jonathan Wakely
957221f551
PR libstdc++/80506 fix constant used in condition
...
PR libstdc++/80506
* include/bits/random.tcc (gamma_distribution::operator()): Fix magic
number used in loop condition.
From-SVN: r247099
2017-04-24 14:43:19 +01:00
Jonathan Wakely
6e2e575a03
PR libstdc++/80504 qualify calls to avoid ADL
...
PR libstdc++/80504
* include/bits/refwrap.h (ref, cref): Qualify calls.
* testsuite/20_util/reference_wrapper/80504.cc: New test.
From-SVN: r247094
2017-04-24 12:40:07 +01:00
Jonathan Wakely
71f257f78e
PR libstdc++/80493 fix invalid exception specification
...
PR libstdc++/80493
* include/experimental/optional (optional::swap): Fix exception
specification.
From-SVN: r247093
2017-04-24 12:40:02 +01:00
Jonathan Wakely
946ecd6ab2
PR libstdc++/80316 make promise::set_value throw no_state error
...
PR libstdc++/80316
* include/std/future (_State_baseV2::_Setter::operator()): Remove
_S_check calls that are done after the pointer to the shared state is
already dereferenced.
(_State_baseV2::_Setter<_Res, void>): Define specialization for void
as partial specialization so it can be defined within the definition
of _State_baseV2.
(_State_baseV2::__setter): Call _S_check.
(_State_baseV2::__setter(promise<void>*)): Add overload for use by
promise<void>::set_value and promise<void>::set_value_at_thread_exit.
(promise<T>, promise<T&>, promise<void>): Make _State a friend.
(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
Use new __setter overload.
* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
* testsuite/30_threads/promise/members/set_exception.cc: Test
promise<T&> and promise<void> specializations.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
Test for no_state error condition.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
From-SVN: r247064
2017-04-21 15:49:19 +01:00
Jonathan Wakely
a2c0a1942c
Avoid deprecated warnings about std::auto_ptr in library headers
...
* include/backward/auto_ptr.h: Ignore deprecated warnings from use
of auto_ptr.
* include/bits/shared_ptr.h: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
dg-error lineno.
* libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
Likewise.
From-SVN: r247063
2017-04-21 14:08:51 +01:00
Edward Smith-Rowland
4ba07ed462
PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
...
2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
* include/tr1/exp_integral.tcc: Increase iteration limits.
* testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
pr68397.cc: New test.
* testsuite/special_functions/14_expint/pr68397.cc: New test.
From-SVN: r247027
2017-04-20 15:41:59 +00:00
Jonathan Wakely
1b36f6036e
PR79862 check macro for type aliases that depend on <stdint.h>
...
PR libstdc++/79862
* include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
(atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
(atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
(atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
(atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
(atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
(atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
(atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
(atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
define.
From-SVN: r247021
2017-04-20 14:04:28 +01:00
Jonathan Wakely
db7ab54fbf
Rationalise ABI links in libstdc++ manual
...
* doc/xml/manual/abi.xml: Rephrase one of the references to the
Itanium C++ ABI.
* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
* doc/html/*: Regenerate.
From-SVN: r247003
2017-04-19 17:49:21 +01:00
Jonathan Wakely
6a8446fa8b
* libsupc++/new: Update comment on #endif directive.
...
From-SVN: r246999
2017-04-19 16:18:24 +01:00
Jonathan Wakely
6cff9199c1
PR libstdc++/80448 remove noexcept from defaulted functions
...
PR libstdc++/80448
* include/experimental/bits/fs_dir.h (directory_iterator)
(recursive_directory_iterator): Remove noexcept from defaulted
constructors.
From-SVN: r246993
2017-04-19 12:03:43 +01:00
Jonathan Wakely
afa56c1751
PR libstdc++/80446 cope with libc defining __has_builtin
...
PR libstdc++/80446
* include/std/type_traits (is_aggregate): Change __has_builtin checks.
* libsupc++/new (launder): Likewise.
From-SVN: r246992
2017-04-19 11:49:12 +01:00
Jonathan Wakely
38d68cf0f5
Fix incorrect results from std::boyer_moore_searcher
...
* include/std/functional (default_searcher, __boyer_moore_array_base)
(__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
(boyer_moore_horspool_searcher): Remove redundant namespace
qualification.
(default_searcher::operator()): Construct return value early and
advance second member in-place.
(boyer_moore_horspool_searcher::operator()): Increment random access
iterator directly instead of using std::next.
(boyer_moore_searcher::operator()): Fix return value.
* testsuite/20_util/function_objects/searchers.cc: Check both parts
of return values.
From-SVN: r246964
2017-04-18 12:08:00 +01:00
Gerald Pfeifer
5ee26fce81
faq.xml: Update reference link to C++ ABI for Itanium.
...
* doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
* doc/xml/manual/abi.xml. Ditto (thrice).
From-SVN: r246860
2017-04-11 22:36:40 +00:00
Jonathan Wakely
b0dfb235e8
Remove duplicated entry in C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
* doc/html/*: Regenerate.
From-SVN: r246661
2017-04-03 19:58:32 +01:00
Jonathan Wakely
b1e282ca18
Uncomment std::reference_wrapper tests that no longer fail
...
* testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
that no longer fail.
From-SVN: r246658
2017-04-03 18:16:11 +01:00
Jonathan Wakely
59c06f4d56
Fix comments in libstdc++ header and test
...
* include/bits/ios_base.h: Correct comment.
* testsuite/util/testsuite_hooks.h: Likewise.
From-SVN: r246657
2017-04-03 18:16:06 +01:00
Jonathan Wakely
9d83c64b16
Update C++17 library status table in manual
...
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
* doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
directories for debug, parallel and profile headers.
* doc/html/*: Regenerate.
From-SVN: r246656
2017-04-03 18:16:01 +01:00
Jonathan Wakely
8c3b5c719f
Implement P0426R1 "Constexpr for std::char_traits" for C++17 (partial)
...
* include/bits/char_traits.h (__gnu_cxx::char_traits): Add
_GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
(std::char_traits<char>, std::char_traits<wchar_t>): Add
_GLIBCXX17_CONSTEXPR on assign.
(std::char_traits<char16_t>, std::char_traits<char32_t>): Add
_GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
* testsuite/21_strings/char_traits/requirements/
constexpr_functions_c++17.cc: New test.
From-SVN: r246655
2017-04-03 18:15:53 +01:00
Ville Voutilainen
c1e2889a32
re PR libstdc++/79141 (std::pair<int,int> p = {}; fails to compile due to ambiguous overload)
...
PR libstdc++/79141
* include/bits/stl_pair.h (__nonesuch_no_braces): New.
(operator=(typename conditional<
__and_<is_copy_assignable<_T1>,
is_copy_assignable<_T2>>::value,
const pair&, const __nonesuch&>::type)): Change __nonesuch
to __nonesuch_no_braces.
(operator=(typename conditional<
__not_<__and_<is_copy_assignable<_T1>,
is_copy_assignable<_T2>>>::value,
const pair&, const __nonesuch&>::type)): Likewise.
(operator=(typename conditional<
__and_<is_move_assignable<_T1>,
is_move_assignable<_T2>>::value,
pair&&, __nonesuch&&>::type)): Likewise.
* testsuite/20_util/pair/79141.cc: New.
From-SVN: r246653
2017-04-03 19:30:58 +03:00
Ville Voutilainen
e2ac6765db
Implement std::is_aggregate.
...
* include/std/type_traits (is_aggregate, is_aggregate_v): New.
* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
New.
* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_aggregate/value.cc: Likewise.
From-SVN: r246651
2017-04-03 18:57:06 +03:00
Ville Voutilainen
0000fd8cfd
Adjust optional's pretty printer for LWG 2900.
...
* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
Look at the nested payload in case of non-experimental optional.
From-SVN: r246566
2017-03-29 15:05:50 +03:00
Ville Voutilainen
250f5b6cc1
Implement LWG 2900, The copy and move constructors of optional are not constexpr.
...
Implement LWG 2900, The copy and move constructors
of optional are not constexpr.
* include/std/optional (_Optional_payload): New.
(_Optional_base): Remove the bool parameter.
(_Optional_base<_Tp, false>): Remove.
(_Optional_base()): Adjust.
(_Optional_base(nullopt_t)): Likewise.
(_Optional_base(in_place_t, _Args&&...)): Likewise.
(_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
Likewise.
(_Optional_base(const _Optional_base&)): Likewise.
(_Optional_base(_Optional_base&&)): Likewise.
(operator=(const _Optional_base&)): Likewise.
(operator=(_Optional_base&&)): Likewise.
(~_Optional_base()): Remove.
(_M_is_engaged()): Adjust.
(_M_get()): Likewise.
(_M_construct(_Args&&...)): Likewise.
(_M_destruct()): Likewise.
(_M_reset()): Likewise.
(_Optional_base::_Empty_byte): Remove.
(_Optional_base::_M_empty): Remove.
(_Optional_base::_M_payload): Adjust.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
* testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
From-SVN: r246556
2017-03-29 02:05:21 +03:00
Jonathan Wakely
92d85953a5
PR libstdc++/80137 use std::nextafter instead of looping
...
PR libstdc++/80137
* include/bits/random.tcc (generate_canonical): Use std::nextafter
or numeric_limits::epsilon() to reduce out-of-range values.
* testsuite/26_numerics/random/uniform_real_distribution/operators/
64351.cc: Verify complexity requirement is met.
From-SVN: r246542
2017-03-28 17:09:49 +01:00
Jonathan Wakely
a138d52a9b
Add _GLIBCXX_RELEASE macro to "Using" section of manual
...
* doc/xml/manual/abi.xml: Add xml:id anchor.
* doc/xml/manual/using.xml (manual.intro.using.macros): Document
_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
(concurrency.io.structure): Add markup.
* doc/html/*: Regenerate.
From-SVN: r246532
2017-03-28 13:43:06 +01:00
Jonathan Wakely
b1bd915843
PR libstdc++/80229 restore support for shared_ptr<function type>
...
PR libstdc++/80229
* include/bits/shared_ptr_base.h
(__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
non-const and then use remove_cv to get unqualified type.
* testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
cast away constness on object created const.
* testsuite/20_util/shared_ptr/cons/80229.cc: New test.
From-SVN: r246520
2017-03-28 08:35:04 +01:00
Markus Trippelsdorf
4f28d159c5
Fix PR80183 : _M_color not moved
...
PR libstdc++/80183
* include/bits/stl_tree.h:
(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
From-SVN: r246483
2017-03-26 12:33:35 +00:00
Jonathan Wakely
01e3c2296a
Fix Debug Mode test failures
...
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Adjust dg-error.
* testsuite/23_containers/list/operations/78389.cc: Fix less-than to
define a valid strict weak ordering.
* testsuite/23_containers/priority_queue/67085.cc: Disable test for
Debug Mode, due to debug checks making extra copies of predicate.
* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
Likewise.
From-SVN: r246426
2017-03-23 19:40:41 +00:00