2944621e2c
310 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Jonathan Wakely
|
2944621e2c |
Avoid including all of <random> in <algorithm>
PR libstdc++/69464 * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/random.h (uniform_int_distribution): Move to bits/uniform_int_dist.h. * include/bits/random.tcc (uniform_int_distribution::operator(), uniform_int_distribution::__generate_impl): Likewise. * include/bits/uniform_int_dist.h: New header. * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include <bits/uniform_int_dist.h> instead of <random>. * testsuite/20_util/specialized_algorithms/uninitialized_copy/ move_iterators/1.cc: Include correct header for uninitialized_copy. * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/ move_iterators/1.cc: Likewise. * testsuite/25_algorithms/nth_element/58800.cc: Include correct header for vector. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines. From-SVN: r232798 |
||
Jonathan Wakely
|
96e19adabc |
Add C++-conforming wrappers for stdlib.h and math.h
PR libstdc++/14608 PR libstdc++/60401 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for --enable-cheaders=c_global configs. * include/Makefile.in: Regenerate. * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C test and allow inclusion from C files. * include/c_compatibility/stdlib.h: Likewise. Support freestanding. (at_quick_exit, quick_exit): Add using directives. * include/c_global/cmath: Use #include_next for math.h. * include/c_global/cstdlib: Use #include_next for stdlib.h. * testsuite/26_numerics/headers/cmath/14608.cc: New. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Remove xfail for most targets. * testsuite/26_numerics/headers/cstdlib/60401.cc: New. From-SVN: r232586 |
||
Torvald Riegel
|
a04d5fc95d |
libstdc++: Make certain exceptions transaction_safe.
From-SVN: r232454 |
||
Edward Smith-Rowland
|
2be75957b8 |
Implement TR29124 C++ special Math Functions.
2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely <jwakely@redhat.com> Florian Goth <CaptainSifff@gmx.de> Implement TR29124 C++ special Math Functions. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/specfun.h: New. * include/c_global/cmath: Adjust for both tr1 and tr29124 maths. * include/tr1/bessel_function.tcc: Ditto. * include/tr1/beta_function.tcc: Ditto. * include/tr1/cmath: Ditto. * include/tr1/ell_integral.tcc: Ditto. * include/tr1/exp_integral.tcc: Ditto. * include/tr1/gamma.tcc: Ditto. * include/tr1/hypergeometric.tcc: Ditto. * include/tr1/legendre_function.tcc: Ditto. * include/tr1/modified_bessel_func.tcc: Ditto. * include/tr1/poly_hermite.tcc: Ditto. * include/tr1/poly_laguerre.tcc: Ditto. * include/tr1/riemann_zeta.tcc: Ditto. * include/tr1/special_function_util.h: Ditto. * testsuite/ext/special_functions/conf_hyperg: New. * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New. * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New. * testsuite/ext/special_functions/conf_hyperg/compile.cc: New. * testsuite/ext/special_functions/hyperg: New. * testsuite/ext/special_functions/hyperg/check_nan.cc: New. * testsuite/ext/special_functions/hyperg/check_value.cc: New. * testsuite/ext/special_functions/hyperg/compile.cc: New. * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory. * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New. * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New. * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New. * testsuite/special_functions/02_assoc_legendre/check_value.cc: New. * testsuite/special_functions/02_assoc_legendre/compile.cc: New. * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New. * testsuite/special_functions/03_beta/check_nan.cc: New. * testsuite/special_functions/03_beta/check_value.cc: New. * testsuite/special_functions/03_beta/compile.cc: New. * testsuite/special_functions/03_beta/compile_2.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New. * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New. * testsuite/special_functions/10_cyl_neumann/check_value.cc: New. * testsuite/special_functions/10_cyl_neumann/compile.cc: New. * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New. * testsuite/special_functions/11_ellint_1/check_nan.cc: New. * testsuite/special_functions/11_ellint_1/check_value.cc: New. * testsuite/special_functions/11_ellint_1/compile.cc: New. * testsuite/special_functions/11_ellint_1/compile_2.cc: New. * testsuite/special_functions/12_ellint_2/check_nan.cc: New. * testsuite/special_functions/12_ellint_2/check_value.cc: New. * testsuite/special_functions/12_ellint_2/compile.cc: New. * testsuite/special_functions/12_ellint_2/compile_2.cc: New. * testsuite/special_functions/13_ellint_3/check_nan.cc: New. * testsuite/special_functions/13_ellint_3/check_value.cc: New. * testsuite/special_functions/13_ellint_3/compile.cc: New. * testsuite/special_functions/13_ellint_3/compile_2.cc: New. * testsuite/special_functions/14_expint/check_nan.cc: New. * testsuite/special_functions/14_expint/check_value.cc: New. * testsuite/special_functions/14_expint/compile.cc: New. * testsuite/special_functions/14_expint/compile_2.cc: New. * testsuite/special_functions/15_hermite/check_nan.cc: New. * testsuite/special_functions/15_hermite/check_value.cc: New. * testsuite/special_functions/15_hermite/compile.cc: New. * testsuite/special_functions/15_hermite/compile_2.cc: New. * testsuite/special_functions/16_laguerre/check_nan.cc: New. * testsuite/special_functions/16_laguerre/check_value.cc: New. * testsuite/special_functions/16_laguerre/compile.cc: New. * testsuite/special_functions/16_laguerre/compile_2.cc: New. * testsuite/special_functions/17_legendre/check_nan.cc: New. * testsuite/special_functions/17_legendre/check_value.cc: New. * testsuite/special_functions/17_legendre/compile.cc: New. * testsuite/special_functions/17_legendre/compile_2.cc: New. * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New. * testsuite/special_functions/18_riemann_zeta/check_value.cc: New. * testsuite/special_functions/18_riemann_zeta/compile.cc: New. * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New. * testsuite/special_functions/19_sph_bessel/check_nan.cc: New. * testsuite/special_functions/19_sph_bessel/check_value.cc: New. * testsuite/special_functions/19_sph_bessel/compile.cc: New. * testsuite/special_functions/19_sph_bessel/compile_2.cc: New. * testsuite/special_functions/20_sph_legendre/check_nan.cc: New. * testsuite/special_functions/20_sph_legendre/check_value.cc: New. * testsuite/special_functions/20_sph_legendre/compile.cc: New. * testsuite/special_functions/20_sph_legendre/compile_2.cc: New. * testsuite/special_functions/21_sph_neumann/check_nan.cc: New. * testsuite/special_functions/21_sph_neumann/check_value.cc: New. * testsuite/special_functions/21_sph_neumann/compile.cc: New. * testsuite/special_functions/21_sph_neumann/compile_2.cc: New. * testsuite/util/specfun_testcase.h: New. * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases. * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New. Co-Authored-By: Florian Goth <CaptainSifff@gmx.de> Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r232377 |
||
Jonathan Wakely
|
0c3e5dd1e6 |
Rename bits/mutex.h to avoid clashing with glibc
* include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. * include/bits/mutex.h: Rename to bits/std_mutex.h. * include/std/condition_variable: Adjust include. * include/std/mutex: Likewise. From-SVN: r232101 |
||
Jakub Jelinek
|
818ab71a41 |
Update copyright years.
From-SVN: r232055 |
||
Jonathan Wakely
|
5ae465c530 |
Define std::experimental::randint etc.
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/random: New. * testsuite/experimental/random/randint.cc: New. From-SVN: r230332 |
||
Fan You
|
930d560203 |
Implement std::experimental::shared_ptr with array support
2015-11-13 Fan You <youfan.noey@gmail.com> Jonathan Wakely <jwakely@redhat.com> * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/bits/shared_ptr.h: New. * include/experimental/memory: Include new header. * testsuite/experimental/memory/shared_ptr/assign/assign.cc: New. * testsuite/experimental/memory/shared_ptr/cast/cast.cc: New. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: New. * testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/dest/dest.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: New. * testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc: New. * testsuite/experimental/memory/shared_ptr/observers/operators.cc: New. * testsuite/experimental/memory/shared_ptr/observers/owner_before.cc: New. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: New. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r230300 |
||
Jonathan Wakely
|
8014404589 |
Define alias templates using polymorphic memory resources
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory_resource: Add feature-test macro. * include/experimental/regex: New. * include/experimental/deque: Add alias template using PMR. * include/experimental/forward_list: Likewise. * include/experimental/list: Likewise. * include/experimental/map: Likewise. * include/experimental/set: Likewise. * include/experimental/string: Likewise. * include/experimental/unordered_map: Likewise. * include/experimental/unordered_set: Likewise. * include/experimental/vector: Likewise. From-SVN: r230295 |
||
Fan You
|
bfeffbd1ae |
Implement C++ LFTSv1 polymorphic memory resources
2015-11-13 Fan You <youfan.noey@gmail.com> * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/uses_allocator.h (__erased_type): Define. (__uses_allocator_helper): Check for __erased_type. * include/experimental/memory_resource: New. * include/experimental/utlity: New. * testsuite/experimental/type_erased_allocator/1.cc: New. * testsuite/experimental/type_erased_allocator/1_neg.cc: New. * testsuite/experimental/type_erased_allocator/2.cc: New. * testsuite/experimental/type_erased_allocator/uses_allocator.cc: New. From-SVN: r230294 |
||
Jonathan Wakely
|
ea4554eaea |
Add include/experimental/bits dir
From-SVN: r228645 |
||
Jonathan Wakely
|
f16081c2c6 |
Add portable timed_mutex and recursive_timed_mutex.
PR libstdc++/65704 * include/Makefile.am: Add <bits/mutex.h>. * include/Makefile.in: Regenerate. * include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock): New file containing types moved from <mutex>. * include/std/condition_variable: Include <bits/mutex.h> instead of <mutex>. * include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock): Move to <bits/mutex.h>. * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove dg-require-gthreads-timed. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/dest/ destructor_locked.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise. * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/requirements/standard_layout.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise. * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/unique_lock/cons/5.cc: Likewise. * testsuite/30_threads/unique_lock/cons/6.cc: Likewise. * testsuite/30_threads/unique_lock/locking/3.cc: Likewise. * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. From-SVN: r227490 |
||
Edward Smith-Rowland
|
20b5f0b3e6 |
Add C++11 header <cuchar>.
2015-09-04 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely <jwakely@redhat.com> * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Check for <uchar.h>. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/c/cuchar: New. * include/c_compatibility/uchar.h: New. * include/c_global/cuchar: New. * include/c_std/cuchar: New. * include/precompiled/stdc++.h: Include <cuchar>. * testsuite/17_intro/headers/c++200x/stdc++.cc: Include <uchar.h>. * testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc: Include <uchar.h>. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r227488 |
||
Ville Voutilainen
|
9638eccd55 |
Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array.
2015-08-13 Ville Voutilainen <ville.voutilainen@gmail.com> Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array. * include/Makefile.am: Add array. * include/Makefile.in: Add array. * include/experimental/array: New. * testsuite/experimental/array/make_array.cc: Likewise. * testsuite/experimental/array/neg.cc: Likewise. * doc/html/manual/status.html: Mark make_array as Y. * doc/xml/manual/status_cxx2017.xml: Likewise. From-SVN: r226865 |
||
Ville Voutilainen
|
e37e6813d5 |
Implement std::experimental::fundamentals_v2::propagate_const.
2015-07-03 Ville Voutilainen <ville.voutilainen@gmail.com> Implement std::experimental::fundamentals_v2::propagate_const. * include/Makefile.am: Add propagate_const. * include/Makefile.in: Regenerate. * include/experimental/propagate_const: New. * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/cons/copy.cc: Likewise. * testsuite/experimental/propagate_const/cons/default.cc: Likewise. * testsuite/experimental/propagate_const/cons/move.cc: Likewise. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/hash/1.cc: Likewise. * testsuite/experimental/propagate_const/observers/1.cc: Likewise. * testsuite/experimental/propagate_const/relops/1.cc: Likewise. * testsuite/experimental/propagate_const/requirements1.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. * testsuite/experimental/propagate_const/swap/1.cc: Likewise. * testsuite/experimental/propagate_const/typedefs.cc: Likewise. From-SVN: r225379 |
||
François Dumont
|
24167c42e6 |
stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29 François Dumont <fdumont@gcc.gnu.org> * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode. * include/debug/functions.h (__gnu_debug::__valid_range, __gnu_debug::__base): Move... * include/debug/safe_iterator.h (__gnu_debug::_Sequence_traits): New. (__gnu_debug::__get_distance_from_begin): New. (__gnu_debug::__get_distance_to_end): New. (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range distance information. Add optional check_dereferenceable parameter, default true. (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move default definition... (__gnu_debug::__get_distance): New overload for _Safe_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/helper_functions.h: ...here. New. (__gnu_debug::__unsafe): New helper function to remove safe iterator layer. * include/debug/stl_iterator.h: New. Include latter. * include/bits/stl_iterator.h: Include latter in debug mode. * include/debug/stl_iterator.tcc: Adapt. * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add overload for _Safe_local_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/safe_local_iterator.tcc: Adapt. * include/debug/macros.h (__glibcxx_check_valid_range2): New. (__glibcxx_check_insert_range): Add _Dist parameter. (__glibcxx_check_insert_range_after): Likewise. (__glibcxx_check_string, __glibcxx_check_string_len): Implement using _GLIBCXX_DEBUG_PEDASSERT. * include/debug/deque (deque<>::assign): Remove iterator debug layer when possible. (deque<>::insert): Likewise. * include/debug/forward_list (__glibcxx_check_valid_fl_range): New. (forward_list<>::splice_after): Use latter. (forward_list<>::assign): Remove iterator debug layer when possible. (forward_list<>::insert_after): Likewise. (__gnu_debug::_Sequence_traits<>): Partial specialization. * include/debug/list (list<>::assign): Remove iterator debug layer when possible. (list<>::insert): Likewise. [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI. * include/debug/map.h (map<>::insert): Remove iterator debug layer when possible. * include/debug/multimap.h (multimap<>::insert): Likewise. * include/debug/set.h (set<>::insert): Likewise. * include/debug/multiset.h (multiset<>::insert): Likewise. * include/debug/string (basic_string<>::append, basic_string<>::assign, basic_string<>::insert, basic_string<>::replace): Likewise. * include/debug/unordered_map (unordered_map<>::insert, unordered_multimap<>::insert): Likewise. * include/debug/unordered_set (unordered_set<>::insert, unordered_multiset<>insert): Likewise. * include/debug/vector (vector<>::assign, vector<>::insert): Likewise. * include/Makefile.am: Add new debug headers. * include/Makefile.in: Regenerate. From-SVN: r225143 |
||
François Dumont
|
adad2a7d90 |
2015-05-29 François Dumont fdumont@gcc.gnu.org>
* include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT, _GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition... * include/debug/assertions.h: ...here, new. * include/debug/formatter.h (_Error_formatter::_Is_iterator_value_type): New. (_Error_formatter::_Is_instance): New. (_Error_formatter::_Parameter): Make public and not friend anymore. (_Error_formatter::_Parameter::__instance): New _M_kind enum entry. (_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum entry. (_Error_formatter::_Parameter::_Type): New. (_Error_formatter::_Parameter::_Instance): New, inherit from latter. (union _Error_formatter::_Parameter::_M_variant): Reorganize. (_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all overloads take iterator through a const reference. (_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)): New. (_Parameter(const _Type&, const char*, _Is_instance)): New. (_Error_formatter::_M_print_type): Delete. (_Error_formatter::_M_iterator_value_type): New. (_Error_formatter::_M_instance): New. * include/Makefile.am: Add new above debug file. * include/Makefile.in: Regenerate. * include/debug/functions.h (__check_dereferenceable(const _Safe_iterator<>&), __valid_range(const _Safe_iterator<>&), __is_safe_random_iterator<_Safe_iterator<>>): Move... * include/debug/safe_iterator.h: ... here. Replace debug.h include with assertions.h. (__check_singular_aux): Move... * include/debug/safe_base.h: ... here. * include/debug/functions.h (__check_dereferenceable(const _Safe_local_iterator<>&), __valid_range(const _Safe_local_iterator<>&): Move... * include/debug/safe_local_iterator.h: ...here. * include/debug/safe_sequence.h: Replace debug.h with assertions.h. Remove _Safe_iterator declaration. * include/debug/safe_unordered_container.h: Replace debug.h with assertions.h. * include/debug/array: Replace safe_sequence.h include with formatter.h and macros.h. * include/debug/deque: Include functions.tcc. * include/debug/forward_list: Likewise. * include/debug/list: Likewise. * include/debug/string: Likewise. * include/debug/vector: Likewise. * include/bits/unique_ptr.h: Replace debug.h include with new assertions.h. * include/bits/stl_iterator_base_funcs.h: Likewise. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust dg-error line number. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. * src/c++11/debug.cc: Adapt. From-SVN: r223877 |
||
Jonathan Wakely
|
a623b6f011 |
iterator: New.
* include/experimental/iterator: New. Define ostream_joiner. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/iterator/make_ostream_joiner.cc: New. * testsuite/experimental/iterator/ostream_joiner.cc: New. * testsuite/experimental/iterator/requirements.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. From-SVN: r222727 |
||
Jonathan Wakely
|
6c0b8a537c |
numeric: New.
* include/experimental/numeric: New. Define gcd and lcm. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/numeric/gcd.cc: New. * testsuite/experimental/numeric/lcm.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. From-SVN: r222724 |
||
Ville Voutilainen
|
261b7e8af2 |
Implement observer_ptr.
2015-05-01 Ville Voutilainen <ville.voutilainen@gmail.com> Implement observer_ptr. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory: New. * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New. * testsuite/experimental/memory/observer_ptr/cons/cons.cc: New. * testsuite/experimental/memory/observer_ptr/hash/hash.cc: New. * testsuite/experimental/memory/observer_ptr/make_observer.cc: New. * testsuite/experimental/memory/observer_ptr/relops/relops.cc: New. * testsuite/experimental/memory/observer_ptr/requirements.cc: New. * testsuite/experimental/memory/observer_ptr/swap/swap.cc: New. * testsuite/experimental/memory/observer_ptr/typedefs.cc: New. From-SVN: r222706 |
||
Jonathan Wakely
|
0ca7ba9aa6 |
Implement N4100 File System TS
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define. (GLIBCXX_CHECK_FILESYSTEM_DEPS): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Enable filesystem TS and check its dependencies. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in, __str_codecvt_out): Move code conversion logic from wstring_convert into new global functions. (wstring_convert::to_bytes, wstring_convert::from_bytes): Use new functions. (wstring_convert::_M_conv): Remove. * include/bits/quoted_string.h (_Quoted_string): Split out of iomanip. * include/experimental/filesystem: New. * include/experimental/fs_dir.h: New. * include/experimental/fs_fwd.h: New. * include/experimental/fs_ops.h: New. * include/experimental/fs_path.h: New. * include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h. * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add. * src/Makefile.am (SUBDIRS): Add filesystem. * src/Makefile.in: Regenerate. * src/filesystem/Makefile.am: New. * src/filesystem/Makefile.in: New. * src/filesystem/dir.cc: New. * src/filesystem/ops.cc: New. * src/filesystem/path.cc: New. * testsuite/experimental/filesystem/operations/absolute.cc: New. * testsuite/experimental/filesystem/operations/copy.cc: New. * testsuite/experimental/filesystem/operations/current_path.cc: New. * testsuite/experimental/filesystem/path/append/path.cc: New. * testsuite/experimental/filesystem/path/assign/assign.cc: New. * testsuite/experimental/filesystem/path/assign/copy.cc: New. * testsuite/experimental/filesystem/path/compare/compare.cc: New. * testsuite/experimental/filesystem/path/compare/path.cc: New. * testsuite/experimental/filesystem/path/compare/strings.cc: New. * testsuite/experimental/filesystem/path/concat/path.cc: New. * testsuite/experimental/filesystem/path/concat/strings.cc: New. * testsuite/experimental/filesystem/path/construct/copy.cc: New. * testsuite/experimental/filesystem/path/construct/default.cc: New. * testsuite/experimental/filesystem/path/construct/locale.cc: New. * testsuite/experimental/filesystem/path/construct/range.cc: New. * testsuite/experimental/filesystem/path/decompose/extension.cc: New. * testsuite/experimental/filesystem/path/decompose/filename.cc: New. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: New. * testsuite/experimental/filesystem/path/decompose/relative_path.cc: New. * testsuite/experimental/filesystem/path/decompose/root_directory.cc: New. * testsuite/experimental/filesystem/path/decompose/root_name.cc: New. * testsuite/experimental/filesystem/path/decompose/root_path.cc: New. * testsuite/experimental/filesystem/path/decompose/stem.cc: New. * testsuite/experimental/filesystem/path/generic/generic_string.cc: New. * testsuite/experimental/filesystem/path/itr/traversal.cc: New. * testsuite/experimental/filesystem/path/modifiers/clear.cc: New. * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: New. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/swap.cc: New. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New. * testsuite/experimental/filesystem/path/query/empty.cc: New. * testsuite/experimental/filesystem/path/query/has_extension.cc: New. * testsuite/experimental/filesystem/path/query/has_filename.cc: New. * testsuite/experimental/filesystem/path/query/has_parent_path.cc: New. * testsuite/experimental/filesystem/path/query/has_relative_path.cc: New. * testsuite/experimental/filesystem/path/query/has_root_directory.cc: New. * testsuite/experimental/filesystem/path/query/has_root_name.cc: New. * testsuite/experimental/filesystem/path/query/has_root_path.cc: New. * testsuite/experimental/filesystem/path/query/has_stem.cc: New. * testsuite/experimental/filesystem/path/query/is_relative.cc: New. * testsuite/util/testsuite_fs.h: New. From-SVN: r222654 |
||
Edward Smith-Rowland
|
c0b12dad93 |
Add fundamentals TR container erasure.
2015-04-30 Edward Smith-Rowland <3dw4rd@verizon.net> Add fundamentals TR container erasure. * include/Makefile.am: Add new headers. * include/Makefile.in: Add new headers. * include/experimental/array: New. * include/experimental/deque: New. * include/experimental/erase_if.tcc: New. * include/experimental/forward_list: New. * include/experimental/list: New. * include/experimental/map: New. * include/experimental/set: New. * include/experimental/string: New. * include/experimental/unordered_map: New. * include/experimental/unordered_set: New. * include/experimental/vector: New. * testsuite/experimental/deque/erasure.cc: New. * testsuite/experimental/forward_list/erasure.cc: New. * testsuite/experimental/list/erasure.cc: New. * testsuite/experimental/map/erasure.cc: New. * testsuite/experimental/set/erasure.cc: New. * testsuite/experimental/string/erasure.cc: New. * testsuite/experimental/unordered_map/erasure.cc: New. * testsuite/experimental/unordered_set/erasure.cc: New. * testsuite/experimental/vector/erasure.cc: New. From-SVN: r222630 |
||
Jonathan Wakely
|
96d8c147aa |
locale_conv.h (wstring_convert, [...]): New.
* include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New. * include/std/locale: Include new header. * include/Makefile.am: Add it. * include/Makefile.in: Regenerate. * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/1.cc: New. * testsuite/22_locale/conversions/string/2.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc: New. From-SVN: r219780 |
||
Jonathan Wakely
|
28af1fb39d |
Implement C++11 <codecvt> header.
* config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add codecvt. * include/Makefile.in: Regenerate. * include/std/codecvt: New header. * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base, __codecvt_utf8_utf16_base): Define specializations. * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc: New. From-SVN: r219779 |
||
Torvald Riegel
|
eae801bacc |
libstdc++: Optimize synchronization in std::future if futexes are available.
* src/c++11/futex.cc: New file. * include/bits/atomic_futex.h: New file. * include/std/future (__future_base::_State_baseV2): Use atomic_futex_unsigned instead of mutex+condvar. * src/c++11/futex.cc: Likewise. * include/Makefile.am: Add atomic_futex.h. * include/Makefile.in: Likewise. * src/c++11/Makefile.am: Add futex.cc. * src/c++11/Makefile.in: Likewise. From-SVN: r219770 |
||
Jakub Jelinek
|
5624e564d2 |
Update copyright years.
From-SVN: r219188 |
||
Jonathan Wakely
|
34a2b7558b |
New std::string implementation.
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove. (GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add. * configure.ac: Use new macros. * configure: Regenerate. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI. * include/Makefile.in: Regenerate. * config/abi/pre/gnu.ver: Export symbols related to new std::string. Tighten old patterns to not match new symbols. * config/locale/generic/monetary_members.cc: Guard some definitions to not compile with new ABI. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/numeric_members.cc: Prevent double-free. * config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128 exports. Tighten old patterns. * doc/xml/manual/configure.xml: Document new configure options. * doc/html/*: Regenerate. * include/bits/basic_string.h (__cxx11::basic_string): Define new non-reference-counted implementation in inline namespace __cxx11. (stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use inline namespace. (literals::string_literals::operator"): Conditionally use abi-tag. * include/bits/basic_string.tcc (__cxx11::basic_string): Define. * include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and LDBL_CXX11_ABI namespace macros. * include/bits/locale_classes.h (locale::name()): Use abi_tag when new ABI is in use. (locale::_S_twinned_facets): New static member. (locale::facet::__shim): Declare new type. (locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New functions for creating shims. (locale::_Impl::_M_facet_unchecked): New member function for use during construction. (locale::_Impl::_M_init_extra): New member functions to create second version of some facets. (collate, collate_byname): Use abi_tag when new ABI is in use. * include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro. (numpunct, numpunct_byname): Use __cxx11 namespace. (num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag when new ABI is in use. (num_get::__do_get, num_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on definitions. (numpunct, numpunct_byname): Qualify explicit instantiations. * include/bits/locale_facets_nonio.h (time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new inline namespace macros. (money_get::__do_get, money_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets_nonio.tcc (money_get, money_put): Use new namespace macros. (money_get::__do_get, money_put::__do_put): Do not define for new ABI. * include/bits/localefwd.h (numpunct, numpunct_byname, collate, collate_byname, time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new namespace macros. * include/bits/regex.h: Use inline namespace macros. * include/bits/stl_list.h (_List_base, list): Use inline namespace instead of abi-tag. * include/bits/stringfwd.h (basic_string): Use namespace macros. * include/std/iosfwd (basic_stringbuf, basic_istringstream, basic_ostringstream, basic_stringstream): Likewise. * include/std/sstream: Likewise. (basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move. * include/std/stdexcept (__cow_string, __sso_string): New types for indirectly using std::string with either ABI. (logic_error, runtime_error): Replace std::string member with __cow_string when new ABI is in use. Declare non-inline copy constructor and assignment operator. Declare const char* constructors. (domain_error, invalid_argument, length_error, out_of_range, range_error, overflow_error, underflow_error): Declare const char* constructors. * include/std/system_error (error_category): Replace with new definition in inline namespace _V2. (error_code::message, error_condition::message): Use abi_tag on functions returning std::string. * python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI. * src/c++11/Makefile.am: Add new files. * src/c++11/Makefile.in: Regenerate. * src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI. Define old error_category symbols. * src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members using old std::string ABI. * src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define. * src/c++11/cow-shim_facets.cc: Define shim facets using old ABI. * src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old std::string ABI. * src/c++11/cow-stdexcept.cc: Define new constructors and assignment operators. (__cow_string, error_category::_M_message): Define. * src/c++11/cow-string-inst.cc: Explicit instantiations using old std::string. Include src/c++98/istream-string.cc. * src/c++11/cow-wstring-inst.cc: Explicit instantiations using old std::wstring. * src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new string. * src/c++11/cxx11-ios_failure.cc: Add sanity check. * src/c++11/cxx11-locale-inst.cc: Instantiate facets using new std::string. * src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI. * src/c++11/cxx11-stdexcept.cc: Define constructors taking new std::string. * src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using new std::wstring. * src/c++11/fstream-inst.cc: Compile with new ABI. * src/c++11/functexcept.cc: Compile with old ABI. * src/c++11/random.cc: Compile with new ABI. * src/c++11/sstream-inst.cc: Compile with new ABI. * src/c++11/string-inst.cc: Explicit instantiations for new string. * src/c++11/system_error.cc (__sso_string, error_category::_M_message): Define. * src/c++11/wstring-inst.cc: Compile with new ABI. * src/c++98/Makefile.am: Compile some host files twice for old and new std::string. Add new files. * src/c++98/Makefile.in: Regenerate. * src/c++98/compatibility-ldbl.cc: Compile with old ABI. * src/c++98/compatibility.cc: Likewise. * src/c++98/concept-inst.cc: Likewise. * src/c++98/hash_tr1.cc: Likewise. * src/c++98/istream-string.cc: New file defining functions that work with istream and std::string moved from ... * src/c++98/istream.cc: ... here. * src/c++98/cow-istream-string.cc: Recompile istream-string.cc with old ABI. * src/c++98/locale-inst.cc: Adjust facet instantiations to work for either ABI. * src/c++98/locale.cc (locale::_M_install_facet, locale::_M_install_cache): Handle twinned facets. * src/c++98/locale-facets.cc: Compile with old std::string ABI. (__verify_grouping): Define new overload and old std::string version. * src/c++98/locale_init.cc: Initialize twinned facets. * src/c++98/localename.cc: Likewise. * src/c++98/misc-inst.cc: Instantiate C++98-only std::string members. (__verify_grouping): Define new std::string version. * src/c++98/stdexcept.cc: Compile with old std::string ABI. * src/c++98/wlocale-inst.cc: Likewise. * testsuite/18_support/50594.cc: Adjust to work with SSO strings. * testsuite/21_strings/basic_string/capacity/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise. * testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Use inline namespace macros. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so correct exception type can be caught. * 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. * testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error. * testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. * testsuite/util/exception/safety.h: Adjust member function types for new std::string. * testsuite/util/testsuite_abi.cc: Add new version and ignore __float128 symbols in __cxx11 namespace. From-SVN: r218964 |
||
Jonathan Wakely
|
be8de8946e |
std::shared_ptr atomic operations
PR libstdc++/57250 * config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/shared_ptr_atomic.h: Define atomic access functions. * include/std/memory: Include new header. * src/c++11/shared_ptr.cc (_Sp_locker): Define and use mutex pool. * testsuite/20_util/shared_ptr/atomic/1.cc: New. * testsuite/20_util/shared_ptr/atomic/2.cc: New. * testsuite/20_util/shared_ptr/atomic/3.cc: New. From-SVN: r217452 |
||
Jonathan Wakely
|
43e9f72225 |
Add <experimental/algorithm> and <experimental/functional>.
* doc/xml/manual/status_cxx2014.xml: Update TS status. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/experimental/algorithm: New. * include/experimental/functional: New. * testsuite/experimental/algorithm/sample.cc: New. * testsuite/experimental/algorithm/search.cc: New. * testsuite/experimental/functional/not_fn.cc: New. * testsuite/experimental/functional/searchers.cc: New. * testsuite/experimental/functional/value.cc: New. * testsuite/experimental/feat-lib-fund.cc: Add headers and reorder. From-SVN: r216847 |
||
Ville Voutilainen
|
6b17203a20 |
Implement more Library Fundamentals v1 variable templates.
2014-10-21 Ville Voutilainen <ville.voutilainen@gmail.com> Implement more Library Fundamentals v1 variable templates. * include/Makefile.am: Add ratio, chrono and system_error. * include/Makefile.in: Regenerate. * include/experimental/chrono: New. * include/experimental/ratio: Likewise. * include/experimental/system_error: Likewise. * include/experimental/tuple (tuple_size_v): Likewise. * testsuite/experimental/chrono/value.cc: Likewise. * testsuite/experimental/ratio/value.cc: Likewise. * testsuite/experimental/system_error/value.cc: Likewise. * testsuite/experimental/tuple/tuple_size.cc: Likewise. From-SVN: r216513 |
||
Ville Voutilainen
|
37285913f3 |
Implement the Library Fundamentals v1 variable templates.
2014-10-17 Ville Voutilainen <ville.voutilainen@gmail.com> Implement the Library Fundamentals v1 variable templates. * include/Makefile.am: Add the new header. * include/Makefile.in: Regenerate. * include/experimental/type_traits: New. * testsuite/experimental/type_traits/value.cc: Likewise. From-SVN: r216397 |
||
Jonathan Wakely
|
375f837be1 |
re PR libstdc++/49561 ([C++0x] std::list::size complexity)
PR libstdc++/49561 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Define. * configure.ac: Use GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI. * configure: Regenerate. * include/Makefile.am (stamp-cxx11-abi): New target. (c++config.h): Set _GLIBCXX_USE_CXX11_ABI macro. * include/Makefile.in: Regenerate. * include/bits/c++config: Add _GLIBCXX_USE_CXX11_ABI placeholder and define _GLIBCXX_DEFAULT_ABI_TAG. * include/bits/list.tcc (list::emplace(const_iterator, _Args&...)): Increment size. (list::emplace(const_iterator, const value_type&)): Likewise. (list::merge(list&), list::merge(list&, _StrictWeakOrdering)): Adjust list sizes. * include/bits/stl_list.h (_List_base, list): Add ABI tag macro. (_List_base::_M_size): New data member in cxx11 ABI mode. (_List_base::_S_distance(_List_node_base*, _List_node_base*)): New function. (_List_base::_M_get_size(), _List_base::_M_set_size(size_t), _List_base::_M_inc_size(size_t), _List_base::_M_dec_size(size_t), _List_base::_M_distance, _List_base::_M_node_count): New functions for accessing list size correctly for the ABI mode. (_List_base::_List_base(_List_base&&)): Copy size and reset source. (_List_base::_M_init()): Initialize size member. (list::size()): Use _List_base::_M_node_count. (list::swap(list&)): Swap sizes. (list::splice(iterator, list&)): Update sizes. (list::splice(iterator, list&, iterator)): Likewise. (list::insert(iterator, const value_type&)): Update size. (list::insert(iterator, _Args&&...)): Likewise. (list::_M_erase(iterator)): Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Adjust. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust. From-SVN: r216094 |
||
Jonathan Wakely
|
22274fac01 |
Makefile.am: Add new header.
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/tuple: New * doc/xml/manual/status_cxx2014.xml: Update. * doc/html/manual/status.html: Regenerate. * testsuite/experimental/feat-lib-fund.cc: Test for new header. * testsuite/experimental/tuple/apply.cc: New. From-SVN: r215930 |
||
Jonathan Wakely
|
3cd4f356e9 |
re PR libstdc++/62159 (Missing headers for freestanding implementation)
PR libstdc++/62159 * include/Makefile.am (install-freestanding-headers): Add missing C++11 headers. * include/Makefile.in: Regenerate. From-SVN: r214580 |
||
Jonathan Wakely
|
b925bf594a |
Makefile.am: Add new header.
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/allocated_ptr.h (__allocated_ptr, __allocate_guarded): New RAII utilities for working with allocators. * include/bits/shared_ptr_base.h (_Sp_counted_deleter): Define __allocator_type typedef and use new __allocated_ptr type. (_Sp_counted_ptr_inplace): Likewise. (__shared_count::__shared_count, __shared_ptr::__shared_ptr): Use __allocate_guarded to to simplify exception handling. * include/experimental/any (any::_Manager_alloc::_S_alloc): Likewise. * include/std/future (_Result_alloc::_M_destroy): Likewise. (_Result_alloc::_S_allocate_result): Likewise. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line number. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. * testsuite/20_util/shared_ptr/creation/no_rtti.cc: New. * testsuite/20_util/shared_ptr/creation/alloc.cc: Test allocator with fancy pointer. * testsuite/30_threads/promise/cons/alloc.cc: Likewise. From-SVN: r211996 |
||
Jonathan Wakely
|
e8043fa674 |
status_cxx2014.xml: Update Fundamentals TS status.
* doc/xml/manual/status_cxx2014.xml: Update Fundamentals TS status. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/any: New. * include/ext/aligned_buffer.h (__aligned_buffer(nullptr_t)): New constructor. * testsuite/experimental/any/assign/1.cc: New. * testsuite/experimental/any/assign/2.cc: New. * testsuite/experimental/any/cons/1.cc: New. * testsuite/experimental/any/cons/2.cc: New. * testsuite/experimental/any/cons/3.cc: New. * testsuite/experimental/any/misc/any_cast.cc: New. * testsuite/experimental/any/misc/any_cast_neg.cc: New. * testsuite/experimental/any/misc/any_cast_no_rtti.cc: New. * testsuite/experimental/any/misc/swap.cc: New. * testsuite/experimental/any/modifiers/1.cc: New. * testsuite/experimental/any/observers/type.cc: New. From-SVN: r211669 |
||
François Dumont
|
f3de79d43a |
array: Clean useless white chars.
2014-05-24 François Dumont <fdumont@gcc.gnu.org> * include/profile/array: Clean useless white chars. * include/profile/base.h: Likewise. * include/profile/iterator_tracker.h: Likewise. * include/profile/bitset: Code cleanup and remove not instrumented code. * include/profile/deque: Likewise. * include/profile/forward_list: Likewise. * include/profile/list (std::__profile::_List_profile<>): New. (std::__profile::list<>): Inherit from latter and adapt. * include/profile/impl/profiler_map_to_unordered_map.h: Generalize advise to match any ordered to unordered container conversion. * include/profile/ordered_base.h (std::__profile::_Ordered_profile<>): New. * include/Makefile.am: Add latter. * include/Makefile.in: Regenerate. * include/profile/map.h (std::__profile::map<>): Inherit from latter, remove not instrumented code. * include/profile/multimap.h (std::__profile::multimap<>): Likewise. * include/profile/set.h (std::__profile::set<>): Likewise. * include/profile/multiset.h (std::__profile::multiset<>): Likewise. * include/profile/unordered_base.h: Add some line feed. * include/profile/unordered_map: Clean useless white chars and replace spaces with tabs. * include/profile/unordered_set: Likewise. * include/profile/vector (std::__profile::_Vector_profile_pre<>): New. (std::__profile::_Vector_profile_post<>): New. (std::__profile::vector<>): Inherit from latter and adapt. From-SVN: r210900 |
||
François Dumont
|
15ee1a7745 |
macros.h [...]: Add parameter to pass the 2 instances to check allocator equality.
2014-05-06 François Dumont <fdumont@gcc.gnu.org> * include/debug/macros.h [__glibcxx_check_equal_allocs]: Add parameter to pass the 2 instances to check allocator equality. * include/debug/safe_container.h: New, define _Safe_container<>. * include/Makefile.am: Add previous. * include/debug/deque (std::__debug::deque<>): Inherit _Safe_container<>. Use default implementation for all special functions. * include/debug/forward_list (std::__debug::forward_list<>): Likewise. * include/debug/list (std::__debug::list<>): Likewise. * include/debug/map.h (std::__debug::map<>): Likewise. * include/debug/multimap.h (std::__debug::multimap<>): Likewise. * include/debug/set.h (std::__debug::set<>): Likewise. * include/debug/multiset.h (std::__debug::multiset<>): Likewise. * include/debug/string (std::__debug::basic_string<>): Likewise. * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise. (std::__debug::unordered_multimap<>): Likewise. * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise. (std::__debug::unordered_multiset<>): Likewise. * include/debug/vector (std::__debug::vector<>): Likewise. * include/debug/safe_base.h (_Safe_sequence_base()): Add noexcept. (_Safe_sequence_base(_Safe_sequence_base&&): Remove. (~_Safe_sequence_base()): Add noexcept. * include/debug/safe_sequence.h (std::__debug::_Safe_node_sequence<>): New. * include/debug/safe_unordered_base.h (_Safe_unordered_container_base()): Add noexcept. (~_Safe_unordered_container_base()): Likewise. (_M_swap(_Safe_unordered_container_base&)): Likewise. * include/debug/safe_unordered_container.h: (_Safe_unordered_container<>::_M_invalidate_locals()): New. (_Safe_unordered_container<>::_M_invalidate_all()): New. * src/c++11/debug.cc: Limit includes, adapt methods noexcept qualifications. * testsuite/util/debug/checks.h (check_construct1): Just implement an invalid constructor invocation and no other operations potentially not supported by some types of container. (check_construct2): Likewise. (check_construct3): Likewise. * testsuite/23_containers/forward_list/allocator/move.cc: Add check on iterators to make sure they are correctly moved in debug mode. * testsuite/23_containers/forward_list/allocator/move_assign.cc: Likewise. * testsuite/23_containers/map/allocator/move.cc: Likewise. * testsuite/23_containers/map/allocator/move_assign.cc: Likewise. * testsuite/23_containers/multimap/allocator/move.cc: Likewise. * testsuite/23_containers/multimap/allocator/move_assign.cc: Likewise. * testsuite/23_containers/multiset/allocator/move.cc: Likewise. * testsuite/23_containers/multiset/allocator/move_assign.cc: Likewise. * testsuite/23_containers/set/allocator/move.cc: Likewise. * testsuite/23_containers/set/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/move_assign.cc: Likewise. * testsuite/23_containers/forward_list/debug/construct1_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct2_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct3_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct4_neg.cc: New. * testsuite/23_containers/forward_list/debug/move_assign_neg.cc: New. * testsuite/23_containers/forward_list/debug/move_neg.cc: New. * testsuite/23_containers/map/debug/construct5_neg.cc: New. * testsuite/23_containers/map/debug/move_assign_neg.cc: New. * testsuite/23_containers/map/debug/move_neg.cc: New. * testsuite/23_containers/multimap/debug/construct5_neg.cc: New. * testsuite/23_containers/multimap/debug/move_assign_neg.cc: New. * testsuite/23_containers/multimap/debug/move_neg.cc: New. * testsuite/23_containers/multiset/debug/construct5_neg.cc: New. * testsuite/23_containers/multiset/debug/move_assign_neg.cc: New. * testsuite/23_containers/multiset/debug/move_neg.cc: New. * testsuite/23_containers/set/debug/construct5_neg.cc: New. * testsuite/23_containers/set/debug/move_assign_neg.cc: New. * testsuite/23_containers/set/debug/move_neg.cc: New. * testsuite/23_containers/unordered_map/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_map/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_map/debug/move_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/move_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/move_neg.cc: New. * testsuite/23_containers/unordered_set/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_set/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_set/debug/move_neg.cc: New. * testsuite/23_containers/vector/debug/move_neg.cc: New. From-SVN: r210123 |
||
Richard Sandiford
|
aa118a03c4 |
Update copyright years in libstdc++-v3/
From-SVN: r206301 |
||
Edward Smith-Rowland
|
77cba5af77 |
Implement N3762 string_view: a non-owning reference to a string.
2013-11-16 Edward Smith-Rowland <3dw4rd@verizon.net> Implement N3762 string_view: a non-owning reference to a string. * include/Makefile.am: Add string_view and string_view.tcc. * include/Makefile.in: Regenerate. * include/experimental/string_view: Implement basic_string_view. * include/experimental/string_view.tcc: Implement basic_string_view. * testsuite/experimental/string_view/capacity/1.cc: New. * testsuite/experimental/string_view/cons/char/1.cc: New. * testsuite/experimental/string_view/cons/char/2.cc: New. * testsuite/experimental/string_view/cons/char/3.cc: New. * testsuite/experimental/string_view/cons/wchar_t/1.cc: New. * testsuite/experimental/string_view/cons/wchar_t/2.cc: New. * testsuite/experimental/string_view/cons/wchar_t/3.cc: New. * testsuite/experimental/string_view/element_access/char/1.cc: New. * testsuite/experimental/string_view/element_access/char/2.cc: New. * testsuite/experimental/string_view/element_access/char/empty.cc: New. * testsuite/experimental/string_view/element_access/char/front_back.cc: New. * testsuite/experimental/string_view/element_access/wchar_t/1.cc: New. * testsuite/experimental/string_view/element_access/wchar_t/2.cc: New. * testsuite/experimental/string_view/element_access/wchar_t/empty.cc: New. * testsuite/experimental/string_view/element_access/wchar_t/ front_back.cc: New. * testsuite/experimental/string_view/include.cc: New. * testsuite/experimental/string_view/inserters/char/1.cc: New. * testsuite/experimental/string_view/inserters/char/2.cc: New. * testsuite/experimental/string_view/inserters/char/3.cc: New. * testsuite/experimental/string_view/inserters/pod/10081-out.cc: New. * testsuite/experimental/string_view/inserters/wchar_t/1.cc: New. * testsuite/experimental/string_view/inserters/wchar_t/2.cc: New. * testsuite/experimental/string_view/inserters/wchar_t/3.cc: New. * testsuite/experimental/string_view/literals/types.cc: New. * testsuite/experimental/string_view/literals/values.cc: New. * testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc: New. * testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/ 1.cc: New. * testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc: New. * testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/ 1.cc: New. * testsuite/experimental/string_view/operations/compare/char/1.cc: New. * testsuite/experimental/string_view/operations/compare/char/13650.cc: New. * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc: New. * testsuite/experimental/string_view/operations/compare/wchar_t/ 13650.cc: New. * testsuite/experimental/string_view/operations/data/char/1.cc: New. * testsuite/experimental/string_view/operations/data/wchar_t/1.cc: New. * testsuite/experimental/string_view/operations/find/char/1.cc: New. * testsuite/experimental/string_view/operations/find/char/2.cc: New. * testsuite/experimental/string_view/operations/find/char/3.cc: New. * testsuite/experimental/string_view/operations/find/char/4.cc: New. * testsuite/experimental/string_view/operations/find/wchar_t/1.cc: New. * testsuite/experimental/string_view/operations/find/wchar_t/2.cc: New. * testsuite/experimental/string_view/operations/find/wchar_t/3.cc: New. * testsuite/experimental/string_view/operations/find/wchar_t/4.cc: New. * testsuite/experimental/string_view/operations/rfind/char/1.cc: New. * testsuite/experimental/string_view/operations/rfind/char/2.cc: New. * testsuite/experimental/string_view/operations/rfind/char/3.cc: New. * testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc: New. * testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc: New. * testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc: New. * testsuite/experimental/string_view/operations/substr/char/1.cc: New. * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc: New. * testsuite/experimental/string_view/operators/char/2.cc: New. * testsuite/experimental/string_view/operators/wchar_t/2.cc: New. * testsuite/experimental/string_view/range_access/char/1.cc: New. * testsuite/experimental/string_view/range_access/wchar_t/1.cc: New. * testsuite/experimental/string_view/requirements/ explicit_instantiation/1.cc: New. * testsuite/experimental/string_view/requirements/ explicit_instantiation/char/1.cc: New. * testsuite/experimental/string_view/requirements/ explicit_instantiation/char16_t/1.cc: New. * testsuite/experimental/string_view/requirements/ explicit_instantiation/char32_t/1.cc: New. * testsuite/experimental/string_view/requirements/ explicit_instantiation/wchar_t/1.cc: New. * testsuite/experimental/string_view/requirements/typedefs.cc: New. * testsuite/experimental/string_view/types/1.cc: New. From-SVN: r204902 |
||
Michael Brune
|
2b5ab1e438 |
enable_special_members.h: New.
2013-10-31 Michael Brune <lucdanton@free.fr> * include/bits/enable_special_members.h: New. * include/experimental/optional: New. * include/Makefile.am: Handle include/experimental. * include/Makefile.in: Regenerate. * testsuite/libstdc++-dg/conformance.exp: Run tests from testsuite/experimental sub-directory. * testsuite/experimental/optional/assignment/1.cc: New. * testsuite/experimental/optional/assignment/2.cc: New. * testsuite/experimental/optional/assignment/3.cc: New. * testsuite/experimental/optional/assignment/4.cc: New. * testsuite/experimental/optional/assignment/5.cc: New. * testsuite/experimental/optional/assignment/6.cc: New. * testsuite/experimental/optional/cons/copy.cc: New. * testsuite/experimental/optional/cons/default.cc: New. * testsuite/experimental/optional/cons/move.cc: New. * testsuite/experimental/optional/cons/value.cc: New. * testsuite/experimental/optional/constexpr/cons/default.cc: New. * testsuite/experimental/optional/constexpr/cons/value.cc: New. * testsuite/experimental/optional/constexpr/in_place.cc: New. * testsuite/experimental/optional/constexpr/make_optional.cc: New. * testsuite/experimental/optional/constexpr/nullopt.cc: New. * testsuite/experimental/optional/constexpr/observers/1.cc: New. * testsuite/experimental/optional/constexpr/observers/2.cc: New. * testsuite/experimental/optional/constexpr/observers/3.cc: New. * testsuite/experimental/optional/constexpr/observers/4.cc: New. * testsuite/experimental/optional/constexpr/observers/5.cc: New. * testsuite/experimental/optional/constexpr/relops/1.cc: New. * testsuite/experimental/optional/constexpr/relops/2.cc: New. * testsuite/experimental/optional/constexpr/relops/3.cc: New. * testsuite/experimental/optional/constexpr/relops/4.cc: New. * testsuite/experimental/optional/constexpr/relops/5.cc: New. * testsuite/experimental/optional/constexpr/relops/6.cc: New. * testsuite/experimental/optional/in_place.cc: New. * testsuite/experimental/optional/make_optional.cc: New. * testsuite/experimental/optional/nullopt.cc: New. * testsuite/experimental/optional/observers/1.cc: New. * testsuite/experimental/optional/observers/2.cc: New. * testsuite/experimental/optional/observers/3.cc: New. * testsuite/experimental/optional/observers/4.cc: New. * testsuite/experimental/optional/observers/5.cc: New. * testsuite/experimental/optional/relops/1.cc: New. * testsuite/experimental/optional/relops/2.cc: New. * testsuite/experimental/optional/relops/3.cc: New. * testsuite/experimental/optional/relops/4.cc: New. * testsuite/experimental/optional/relops/5.cc: New. * testsuite/experimental/optional/relops/6.cc: New. * testsuite/experimental/optional/requirements.cc: New. * testsuite/experimental/optional/swap/1.cc: New. From-SVN: r204299 |
||
Edward Smith-Rowland
|
6b8fe121af |
re PR libstdc++/58729 (tr2::dynamic_bitset::resize fails)
2013-10-18 Edward Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/58729 * include/tr2/dynamic_bitset (_M_resize, resize): Use input value to set bits; (_M_do_left_shift, _M_do_right_shift, _M_do_to_ulong, _M_do_to_ullong, _M_do_find_first, _M_do_find_next, _M_copy_from_ptr, operator>>): Move long methods outline to... * include/tr2/dynamic_bitset.tcc: New. * include/Makefile.am: Add dynamic_bitset.tcc. * include/Makefile.in: Add dynamic_bitset.tcc. * testsuite/tr2/dynamic_bitset/pr58729.cc: New. From-SVN: r203841 |
||
François Dumont
|
ea89b2482f |
predefined_ops.h: New.
2013-09-27 François Dumont <fdumont@gcc.gnu.org> * include/bits/predefined_ops.h: New. * include/bits/stl_heap.h: Include <bits/predefined_ops.h>. (__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove algo duplication. (__is_heap): Adapt. (__make_heap): New. (make_heap): Adapt to use latter. (__sort_heap): New. (sort_heap): Adapt to use latter. * include/bits/algobase.h: Include <bits/predefined_ops.h>. (__lexicographical_compare_impl): New. (__lexicographical_compare<false>::__lc): Adapt to use latter. (lexicographical_compare): Likewise. (__lower_bound): New. (lower_bound): Adapt to use latter. (equal): Use _GLIBCXX_STD_A::equal in N3671 overloads. (__mismatch): New. (mismatch): Use latter. * include/bits/algo.h: Include <bits/predefined_ops.h>. Remove <functional> include. (__move_median_first, __find, __find_if, __find_if_not): Remove algo duplication. (__find_end): Likewise. (__search_n): Rename into ... (__search_n_aux): ... this. (__search_n): Renew, use latter. (search_n): Use latter. (__search): New. (search): Use latter. (__find_end): Likewise. (__remove_copy_if): New. (remove_copy): Use latter. (__adjacent_find): New. (adjacent_find): Use latter. (__unique): New. (unique): Use latter. (__unique_copy): Remove algo duplication. (__stable_partition): New. (stable_partition): Use latter. (__heap_select): Remove algo duplication, use __make_heap. (__partial_sort): New, use latter. (partial_sort): Use latter. (__partial_sort_copy): New. (partial_sort_copy): Use latter. (__unguarded_linear_insert, __insertion_sort): Remove algo duplication. (__unguarded_insertion_sort, __final_insertion_sort): Likewise. (__unguarded_partition, __unguarded_partition_pivot): Likewise. (__partial_sort): New. (partial_sort): Use latter. (__sort): New. (sort): Use latter. (lower_bound): Use __lower_bound. (__upper_bound): New. (upper_bound): Use latter. (__equal_range): New. (equal_range): Use latter. (__move_merge_adaptive, __move_merge_adaptive_backward): Remove algo duplication. (__merge_adaptive, __merge_without_buffer): Likewise. (__inplace_merge): New. (inplace_merge): Use latter. (__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove algo duplication. (__merge_sort_with_buffer, __stable_sort_adaptive): Likewise. (__inplace_stable_sort): Likewise. (__include): New. (includes): Use latter. (__next_permutation): New. (next_permutation): Use latter. (__prev_permutation): New. (prev_permutation): Use latter. (__replace_copy_if): New. (replace_copy): Use latter. (__is_sorted_until): New. (is_sorted_unitl): Use latter. (__minmax_element): New. (minmax_element): Use latter. (__is_permutation): New. (is_permutation): Use latter. (__adjacent_find): New. (adjacent_find): Use latter. (__count_if): New. (count): Use latter. (count_if): Likewise. (__merge): New. (merge): Use latter. (__stable_sort): New. (stable_sort): Use latter. (__set_union): New. (set_union): Use latter. (__set_intersection): New. (set_intersection): Use latter. (__set_difference): New. (set_difference): Use latter. (__set_symmetric_difference): New. (set_symmetric_difference): Use latter. (__min_element): New. (min_element): Use latter. (__max_element): New. (max_element): Use latter. * include/Makefile.am: Add predefined_ops.h. * include/Makefile.in: Regenerate. * include/parallel/algobase.h (equal, mismatch): Add overloads from N3671. * testsuite/25_algorithms/is_permutation/vectorbool.cc: New. * testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise. * testsuite/25_algorithms/find/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_if/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise. * testsuite/25_algorithms/heap/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_end/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise. From-SVN: r202992 |
||
Tim Shen
|
c2669da93d |
Makefile.am: Add regex.tcc.
2013-09-24 Tim Shen <timshen91@gmail.com> * include/Makefile.am: Add regex.tcc. * include/Makefile.in: Regenerate. * include/bits/regex.h: Remove definitions to regex.tcc. * include/bits/regex.tcc: New. (match_results::format, regex_replace): Implement; * include/bits/regex_compiler.h: Move _M_flags to the top of class member list, because other members' initialization depend on it. * include/bits/regex_compiler.tcc (_Compiler<>::_Compiler): Adjust member initializations. (_Compiler<>::_M_quantifier): Fix ungreedy interval quantifier. * include/bits/regex_executor.h: Remove _RegexT from _*Executor classes. In the future, all regex classes may refactor to *Impl style. * include/bits/regex_executor.tcc (_Executor::_M_set_results): Merge identical code from _*Executor classes. * testsuite/28_regex/algorithms/regex_match/extended/ string_dispatch_01.cc (fake_match<>): Adjust the hacking-style testcase caller for new __get_executors interface. * testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc: New. * testsuite/28_regex/match_results/format.cc: New. * testsuite/28_regex/traits/char/lookup_collatename.cc: Remove digraph testcase. * testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: Likewise. From-SVN: r202858 |
||
Tim Shen
|
33fbbb766c |
Makefile.am: Add regex_scanner.{h,tcc}.
2013-08-26 Tim Shen <timshen91@gmail.com> * include/Makefile.am: Add regex_scanner.{h,tcc}. * include/Makefile.in: Regenerate. * include/bits/regex.h (match_search): Handle the `__first == __last` situation correctly. * include/bits/regex_compiler.h: Move _Scanner... * include/bits/regex_scanner.h: ...to here. New. * include/bits/regex_compiler.tcc: Move _Scanner... * include/bits/regex_scanner.tcc: ...to here, too. New. * include/bits/regex_executor.tcc: Use value instead of reference for submatch. * include/std/regex: Add regex_scanner.h * testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: New. * testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: New. * testsuite/28_regex/algorithms/regex_match/ecma/cstring_hex.cc: New. * testsuite/28_regex/algorithms/regex_match/ecma/empty_range.cc: New. * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: New. From-SVN: r202015 |
||
Tim Shen
|
6cb784b639 |
Makefile.am: Adjust to new files.
2013-08-07 Tim Shen <timshen91@gmail.com> * include/Makefile.am: Adjust to new files. * include/Makefile.in: Regenerate. * include/bits/regex.h: Adjust to new interfaces. * include/bits/regex_automaton.h: New. * include/bits/regex_automaton.tcc: New. * include/bits/regex_compiler.h: Adjust to new files. * include/bits/regex_compiler.tcc: New. * include/bits/regex_constants.h: Tail spaces. * include/bits/regex_error.h: Likewise. * include/bits/regex_executor.h: New. * include/bits/regex_executor.tcc: New. * include/std/regex: Adjust to new files. * testsuite/28_regex/algorithms/regex_match/extended/ string_dispatch_01.cc: Adjust to new interfaces. From-SVN: r201573 |
||
Caroline Tice
|
2077db1be5 |
Commit the vtable verification feature.
Commit the vtable verification feature. This feature is designed to detect, at run time, if/when the vtable pointer in a C++ object has been corrupted, before allowing virtual calls through that pointer. If pointer corruption is detected, execution of the program is halted. libstdc++-v3 ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * fragment.am: Add XTEMPLATE_FLAGS. * configure.ac: Add definitions for --enable-vtable-verify. * acinclude.m4: Add --enable-vtable-verify and --disable-vtable-verify; define --enable-vtable-verify; define VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS. * config/abi/pre/gnu.ver: Export symbols for vtable verification. * libsupc++/Makefile.am: Define vtv_sources and add it to libsupc___la_SOURCES and libsupc__convenience_la_SOURCES. * libsupc++/vtv_stubs.cc: New file. * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS. * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXLINKFLAGS to CXXLINK. * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK. * src/C++11/Makefile.am: Ditto. * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify. * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS. * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate libvtv if --enable-vtable-verify was used; set cxxvtvflags; add cxxvtvflags to cxx_final. * testsuite/18_support/bad_exception/23591_thread-1.c: Add -fvtable-verify=none to compiler flags. * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none to compiler flags. * configure: Regenerated. * Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * config.h.in: Regenerated. * po/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. top level ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * configure.ac: Add target-libvtv to target_libraries; disable libvtv on non-linux systems; add target-libvtv to noconfigdirs; add libsupc++/.libs to C++ library search paths. * configure: Regenerated. * Makefile.def: Add libvtv to target_modules; make libvtv depend on libstdc++ and libgcc. * Makefile.in: Regenerated. include/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * vtv-change-permission.h: New file. contrib/ChangeLog: 2013-08-06 Caroline Tice4 <cmtice@google.com> * gcc_update: Add libvtv files. libgcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> config.host (extra_parts): Add vtv_start.o, vtv_end.o vtv_start_preinit.o and vtv_end_preinit.o. configure.ac: Add code to check/set enable_vtable_verify. Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is true. vtv_start_preinit.c: New file. vtv_end_preinit.c: New file. vtv_start.c: New file. vtv_end.c: New file. configure: Regenerated. gcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * gcc.c (VTABLE_VERIFICATION_SPEC): New definition. (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC. * tree-pass.h: Add pass_vtable_verify. * varasm.c (assemble_variable): Add code to properly set the comdat section and name for the .vtable_map_vars section. (assemble_vtyv_preinit_initializer): New function. (default_sectin_type_flags): Make sure .vtable_map_vars section has LINK_ONCE flag. * output.h: Add function decl for assemble_vtv_preinit_initializer. * vtable-verify.c: New file. * vtable-verify.h: New file. * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify initialiation levels. * timevar.def (TV_VTABLE_VERIFICATION): New definition. * passes.def: Insert pass_vtable_verify. * aclocal.m4: Reorder includes. * doc/invoke.texi: Add documentation for the flags -fvtable-verify=, -fvtv-debug and -fvtv-counts. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o, as appropriate, if -fvtable-verify=... is used. (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if -fvtable-verify=... is used. * Makefile.in (OBJS): Add vtable-verify.o to list. (vtable-verify.o): Add new build rule. (GTFILES): Add vtable-verify.c to list. * common.opt (fvtable-verify=): New flag. (vtv_priority): Values for fvtable-verify= flag. (fvtv-counts): New flag. (fvtv-debug): New flag. * tree.h (save_vtable_map_decl): New extern function decl. gcc/cp/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to list. (vtable-class-hierarchy.o): Add build rule. * cp-tree.h (vtv_start_verification_constructor_init_function): New extern function decl. (vtv_finish_verification_constructor_init_function): New extern function decl. (build_vtbl_address): New extern function decl. (get_mangled_vtable_map_var_name): New extern function decl. (vtv_compute_class_hierarchy_transitive_closure): New extern function decl. (vtv_generate_init_routine): New extern function decl. (vtv_save_class_info): New extern function decl. (vtv_recover_class_info): New extern function decl. (vtv_build_vtable_verify_fndecl): New extern function decl. * class.c (finish_struct_1): Add call to vtv_save_class_info if flag_vtable_verify is true. * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. * vtable-class-hierarchy.c: New file. * mangle.c (get_mangled_vtable_map_var_name): New function. * decl2.c (start_objects): Update function comment. (cp_write_global_declarations): Call vtv_recover_class_info, vtv_compute_class_hierarchy_transitive_closure and vtv_build_vtable_verify_fndecl, before calling finalize_compilation_unit, and call vtv_generate_init_rount after, IFF flag_vtable_verify is true. (vtv_start_verification_constructor_init_function): New function. (vtv_finish_verification_constructor_init_function): New function. * init.c (build_vtbl_address): Remove static qualifier from function. libvtv/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> Initial check-in of new vtable verification feature. * configure.ac : New file. * acinclude.m4 : New file. * Makefile.am : New file. * aclocal.m4 : New file. * configure.tgt : New file. * configure: New file (generated). * Makefile.in: New file (generated). * vtv_set.h : New file. * vtv_utils.cc : New file. * vtv_utils.h : New file. * vtv_malloc.cc : New file. * vtv_rts.cc : New file. * vtv_malloc.h : New file. * vtv_rts.h : New file. * vtv_fail.cc : New file. * vtv_fail.h : New file. * vtv_map.h : New file. * scripts/run-testsuite.sh : New file. * scripts/sum-vtv-counts.c : New file. * testsuite/parts-test-main.h : New file. * testusite/dataentry.cc : New file. * testsuite/temp_deriv.cc : New file. * testsuite/register_pair.cc : New file. * testsuite/virtual_inheritance.cc : New file. * testsuite/field-test.cc : New file. * testsuite/nested_vcall_test.cc : New file. * testsuite/template-list-iostream.cc : New file. * testsuite/register_pair_inserts.cc : New file. * testsuite/register_pair_inserts_mt.cc : New file. * testsuite/event.list : New file. * testsuite/parts-test-extra-parts-views.cc : New file. * testsuite/parts-test-extra-parts-views.h : New file. * testsuite/environment-fail-32.s : New file. * testsuite/parts-test-extra-parts.h : New file. * testsuite/temp_deriv2.cc : New file. * testsuite/dlopen_mt.cc : New file. * testsuite/event.h : New file. * testsuite/template-list.cc : New file. * testsuite/replace-fail.cc : New file. * testsuite/Makefile.am : New file. * testsuite/Makefile.in: New file (generated). * testsuite/mempool_negative.c : New file. * testsuite/parts-test-main.cc : New file. * testsuite/event-private.cc : New file. * testsuite/thunk.cc : New file. * testsuite/event-defintiions.cc : New file. * testsuite/event-private.h : New file. * testsuite/parts-test.list : New file. * testusite/register_pair_mt.cc : New file. * testsuite/povray-derived.cc : New file. * testsuite/event-main.cc : New file. * testsuite/environment.cc : New file. * testsuite/template-list2.cc : New file. * testsuite/thunk_vtable_map_attack.cc : New file. * testsuite/parts-test-extra-parts.cc : New file. * testsuite/environment-fail-64.s : New file. * testsuite/dlopen.cc : New file. * testsuite/so.cc : New file. * testsuite/temp_deriv3.cc : New file. * testsuite/const_vtable.cc : New file. * testsuite/mempool_positive.c : New file. * testsuite/dup_name.cc : New file. From-SVN: r201555 |
||
Jonathan Wakely
|
8d2cddc125 |
shared_mutex: Implement N3659.
* include/std/shared_mutex: Implement N3659. * include/bits/c++14_warning.h: New. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * testsuite/30_threads/shared_lock/cons/1.cc: New. * testsuite/30_threads/shared_lock/locking/2.cc: New. * testsuite/30_threads/shared_lock/cons/2.cc: New. * testsuite/30_threads/shared_lock/locking/3.cc: New. * testsuite/30_threads/shared_lock/cons/3.cc: New. * testsuite/30_threads/shared_lock/locking/4.cc: New. * testsuite/30_threads/shared_lock/cons/4.cc: New. * testsuite/30_threads/shared_lock/modifiers/1.cc: New. * testsuite/30_threads/shared_lock/cons/5.cc: New. * testsuite/30_threads/shared_lock/modifiers/2.cc: New. * testsuite/30_threads/shared_lock/cons/6.cc: New. * testsuite/30_threads/shared_lock/requirements/ explicit_instantiation.cc: New. * testsuite/30_threads/shared_lock/locking/1.cc: New. * testsuite/30_threads/shared_lock/requirements/typedefs.cc: New. * testsuite/30_threads/shared_mutex/cons/1.cc: New. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New. * testsuite/30_threads/shared_mutex/requirements/ standard_layout.cc: New. * testsuite/30_threads/shared_mutex/try_lock/1.cc: New. * testsuite/30_threads/shared_mutex/try_lock/2.cc: New. From-SVN: r200134 |
||
Ed Smith-Rowland
|
1c9f675fd9 |
Implement N3642 - User-defined Literals for Standard Library Types
2013-05-30 Ed Smith-Rowland <3dw4rd@verizon.net> Implement N3642 - User-defined Literals for Standard Library Types * include/bits/parse_numbers.h: New. * include/std/chrono: Add duration literal operators. * include/bits/basic_string.h: Add string literal operators. * include/Makefile.in: Add parse_numbers.h. * include/Makefile.am: Ditto. * testsuite/20_util/duration/literals/values.cc: New. * testsuite/20_util/duration/literals/types.cc: New. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust. * testsuite/21_strings/basic_string/literals/values.cc: New. * testsuite/21_strings/basic_string/literals/types.cc: New. From-SVN: r199584 |
||
Matthias Klose
|
6ca935e617 |
Makefile.am (bits_headers): Remove ${bits_host_headers}.
2013-05-23 Matthias Klose <doko@ubuntu.com> * include/Makefile.am (bits_headers): Remove ${bits_host_headers}. (ext_headers): Remove ${ext_host_headers}. (stamp-${host_alias}): Create ${host_builddir}/../ext. (stamp-host): Link ${bits_host_headers} and ${ext_host_headers}. (install-headers): Install ${bits_host_headers} and ${ext_host_headers}. * include/Makefile.in: Regenerate. * include/ext/random: Include ext/opt_random.h. From-SVN: r199257 |